本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 [署名 4.0 国际 (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.zh) 本文作者: 苏洋 创建时间: 2023年11月08日 统计字数: 5739字 阅读时间: 12分钟阅读 本文链接: https://soulteary.com/2023/11/08/open-source-all-in-one-usb-flash-drive-maintenance-tool-ventoy.html ----- # 开源的全能维护 U 盘工具:Ventoy 本篇文章聊聊迄今为止,我用着最舒服的一款开源 U 盘启动工具,Ventoy。 ## 写在前面 好久不见,接下来计划写一个比较连续的内容,就先从最小的处着手吧。 经过长久的折腾,除非我们是在 ESXi 或者 PVE 这类虚拟机环境中维护操作系统,否则不论是购置新硬件设备,还是计划着手对家里的老设备进行系统翻新,系统安装盘总归是绕不开的一个话题。 ![折腾使用的 U 盘](https://attachment.soulteary.com/2023/11/08/disks.jpg) 但如果你的设备需要安装不同的操作系统,或者不同版本的操作系统,就需要准备多个安装光盘或者安装 U 盘了,即使 U 盘可以重新擦除,反复制作不同操作系统或者不同版本的操作系统的镜像,安装起来也总归是比较麻烦的。 关于安装 U 盘的折腾笔记,你可以参考这篇文章:《[硬件笔记:组装“固态 U 盘”的八年,从 100 块到 1000 块](https://soulteary.com/2023/09/16/eight-years-of-assembling-solid-state-usb-disk-from-100-to-1000.html)》,这里就不再赘述。 为了减少不必要的安装盘的刷写操作,我们可以借助一款开源的优秀工具:Ventoy。 ![开源项目:Ventoy](https://attachment.soulteary.com/2023/11/08/project-ventoy.jpg) 使用它来将你的普通 U 盘变成可启动的 U 盘,你只需要将你想要引导的操作系统镜像文件扔到 U 盘中,就能够完成操作系统的启动,而无需重复制作启动盘。如果你有多个不同版本的操作系统,那么只需要把不同的操作系统的镜像都放在 U 盘里就好了,它会自动扫描可引导的镜像文件,生成可供用户选择的启动列表。 ![兼容性非常棒](https://attachment.soulteary.com/2023/11/08/coverage.jpg) 同时,作者对他的兼容性做了非常多的工作,从传统的 x86 BIOS 引导到现代的各种 UEFI 引导它都支持,支持上千个系统的引导,覆盖了 [distrowatch.com 最流行操作系统中的 90%](https://distrowatch.com/dwres.php?resource=popularity)。 **不过,在开始使用前,我们首先要明确哪些场景使用它不会带来效率提升。** ### 不适合的场景 如果你手头的电脑或者接触到的设备,都是最近十年的设备,那么你可以放心使用 Ventoy。 但如果你希望使用它通杀二十年左右的设备,可能需要额外注意一些事情,包括你的 U 盘尺寸过大,或者不支持 USB 3.0 协议,只支持古早的 USB 2.0 ,或者设备供电不足,也可能导致启动失败。 如果你是 Windows 或者 Linux 用户,那么你使用 Ventoy 将会非常顺滑,但如果你是 Mac 全家桶用户,尤其是最近两三年的 M1 / M2 / M3 用户,连 Windows 虚拟机使用都比较麻烦的情况下,想使用 Ventoy 就需要费一些周折啦。 包括,如果你希望快速安装 macOS 操作系统,Ventoy 也并不是最优解,虽然它可以。 如果你使用了比较大的 U 盘或者 SSD 移动硬盘(2TB或以上),可能因为硬盘盒、设备 BIOS 限制,导致无法正常使用。 此外,如果你这块 U 盘或者硬盘还会当作一般的数据盘使用,比如在工作机、打印店的电脑上来回移动,那么其实有一些概率会遇到十年前很流行的 U 盘“病毒”,或者不慎点击到“勒索病毒”程序,我个人并不是十分建议在有这类场景的情况下,做 AIO (All In One)工具盘,因为可能会因为意外导致数据盘中的文件尽失,虽然 Ventoy 并不会被损坏,将引导光盘 ISO 等重新复制到数据盘中即可,但是数据盘中的文件越多,需要重新折腾的时间就会越久。 好了,上面大概是我使用过程中遇到的一些问题,如果你的场景不存在上述问题,或者可以使用其他方式规避一些情况,那么就可以愉快的进行下面的 Ventoy 工具 U 盘制作啦。 ## 最速上手 为了最快的完成 Ventoy 工具盘的制作,建议使用 Windows 操作系统作为折腾环境。我的 Windows 环境是在之前使用老的 Intel MacBook Pro 里的虚拟机制作的放在 U 盘里的 Win11ToGo,插在平时调试本地模型使用的台式机上。 ![软件最新发布版本 1.0.96](https://attachment.soulteary.com/2023/11/08/release.jpg) 首先,访问项目的[程序发布页面](https://github.com/ventoy/Ventoy/releases),获取最新的程序版本,截止文章发布时候,最新的版本是 1.0.96。 ![初始化启动盘](https://attachment.soulteary.com/2023/11/08/make-disk.jpg) 下载“ventoy-1.0.96-windows.zip”,然后在本地解压缩后,执行文件夹中的 “Ventoy2Disk” 程序。 ![Ventoy 默认界面](https://attachment.soulteary.com/2023/11/08/default.jpg) 默认界面十分简单,几乎只有设备列表可以下拉筛选,以及“安装”按钮是可点击的。不过,建议先点击不起眼的“配置选项”菜单,根据自己的情况做一些细节调整。 ![Ventoy 下拉菜单](https://attachment.soulteary.com/2023/11/08/dropmenu.jpg) 如果你之前安装过其他的 PE 操作系统,或者磁盘本身就具备引导功能,为了能够顺利创建启动 U 盘,建议点击这个下拉菜单中的“清除 Ventoy”,先将磁盘完整格式化一遍,并清除所有隐藏分区中的数据。 ![Ventoy 文件系统支持](https://attachment.soulteary.com/2023/11/08/fs-types.jpg) 在下拉菜单中,我们还可以根据自己的需求,调整启动分区的文件类型: - 如果你的 “U 盘” 容量比较大(比如大于等于 2TB)请选择 GPT 分区类型,否则可以保持 MBR 分区; - 如果你希望你的 U 盘只在 Windows 下愉快使用,可以考虑在“分区设置”中将文件系统从默认的 exFat 改为 NTFS; - 如果你希望你的 U 盘在古早的设备中也能比较好的支持,可以选择 FAT 格式的分区,唯一的代价是不能存放大于 4GB 的光盘文件; - 如果你希望完全模拟光盘,可以考虑使用 UDF (通用光盘格式)分区; - 除此之外,默认使用虽然可能存在丢失文件的可能性的 exFat 也未尝不可,因为这个 U 盘大概率也就只放安装文件罢了。 ![Ventoy 启动盘制作完毕](https://attachment.soulteary.com/2023/11/08/done.jpg) 完成调整之后,**再次确认要安装 Ventoy 的磁盘设备后**,点击安装按钮,即可完成 Ventoy 的安装。 ![创建一个存放镜像的目录](https://attachment.soulteary.com/2023/11/08/create-dir.jpg) 我个人不太喜欢镜像散落在盘根,所以一般会新建一个名为 `iso` 的目录,然后将镜像文件复制到目录中。 ![复制启动镜像文件](https://attachment.soulteary.com/2023/11/08/copy-iso.jpg) 在完成 Ventoy 启动盘的安装后,我们将一些系统的安装镜像复制到 U 盘中,等待镜像复制完毕,某一种或几种系统的安装/启动 U 盘就制作完毕了(**拷贝即安装,是不是很方便**)。你可以也将你喜欢的 PE 系统或者 Linux LiveCD 复制到 U 盘中,制作一个万能 PE 合集,而剩下来的 U 盘空间,作为传统 U 盘使用也未尝不可,但和上文中提到的一样,因为 U 盘的使用场景不确定,存在一些文件被篡改风险,会浪费时间来回重新折腾,所以不建议这样使用。 ![启动列表](https://attachment.soulteary.com/2023/11/08/boot-list.jpg) 为了演示启动效果,我在 U 盘中拷贝了两个镜像,分享是 Windows 11 和 Ubuntu 的安装镜像,将 U 盘插到目标设备后,重启设备,选择 U 盘启动,我们就能够看到一个简洁的启动界面了,界面中会根据我们 U 盘中的镜像来动态的生成启动列表。选择不同的镜像就能实现不同的操作啦。 ## 其他 聊聊 “U 盘选择”,和这个看起来“十分简单”的项目吧。 ## U 盘的选择 考虑到前文提到的“设备兼容性”,以及系统安装效率,在常用的安装工具盘的容量上,我选择了 32GB,一块很古早的三星 32GB MLC 硬盘,某宝不到 40 块钱,几乎我常用的所有的设备都能正常使用。 搭配之前文章《[硬件笔记:组装“固态 U 盘”的八年,从 100 块到 1000 块](https://soulteary.com/2023/09/16/eight-years-of-assembling-solid-state-usb-disk-from-100-to-1000.html)》中,我提到的 jiayi 的硬盘盒(相对便宜的版本,69 块),主控是 VLI716 (支持网上的量产工具) ,可以使用 SATA3 和硬盘进行交互,支持 UASP 协议。 ![硬盘信息](https://attachment.soulteary.com/2023/11/08/disk-info.jpg) 组装完毕,使用Crystal DiskInfo 查看信息如图所示。 ## 简单聊聊项目 这个项目虽然使用起来简单,但其实这个项目里整合了非常多的、实用的、大名鼎鼎的开源项目,除了常见的 Grub 和 BusyBox 外,还有它们: - [Tiny Core Linux](http://www.tinycorelinux.net/):20MB 左右的能够通过有线连接互联网的 Linux 桌面环境,在项目中,用于做 LiveCD,开源协议为 GPL v3.0。 - [fat\_io\_lib](https://github.com/ultraembedded/fat_io_lib):FAT16/32 文件操作系统库,纯 C 实现的 FAT16 & FAT 32 操作系统驱动,支持文件读写,使用 GPL v3.0 协议开源。 - [Squashfs](https://github.com/plougher/squashfs-tools):Squashfs 文件操作系统,以及创建和提取 Squashfs 文件系统的工具,使用 GPL v2.0 协议开源。 - [NTFS 3G](https://github.com/tuxera/ntfs-3g):安全的 NTFS 文件系统驱动,支持 NTFS 文件的读写,使用 GPL v2.0 协议开源。 - [exFat](https://github.com/relan/exfat):免费的 exFat 文件系统实现,使用 GPL v2.0 协议开源。 - [Win Boot](https://github.com/ipxe/wimboot):能够加载文件类型为`.win` 的 WinPE 文件并启动的启动加载器,用于启动能力增强,开源协议为 GPL v2.0。 - [XZ Embedded](https://tukaani.org/xz/embedded.html):XZ 压缩文件解压缩工具,作者使用放任自流的约定。 - [zstd](https://github.com/facebook/zstd):Facebook 开源的一种实时无损压缩算法,针对 zlib 级别的实时场景压缩提供更好的压缩比,使用 GPL v2.0 协议开源。 - [vblade](https://github.com/OpenAoE/vblade):简单可靠的,提供 AoE 协议的网络存储功能,让 PXE 功能得以实现,使用 GPL v2.0 协议开源。 - [civetweb](https://github.com/civetweb/civetweb):小巧的嵌入式 HTTP 服务器,让用户使用浏览器就能够维护 Ventoy,因为依赖多种开源软件,使用多种开源协议开源。 - [Porteus Kiosk](https://porteus-kiosk.org/index.html):增强界面功能,使用 GPL v2.0 协议开源。 除此列表中的软件,还有很多软件,可以在[编译说明文档](https://github.com/ventoy/Ventoy/blob/master/DOC/BuildVentoyFromSource.txt)中看到,作者在网站文档中也有[一些提及](https://www.ventoy.net/cn/doc_composition.html)。 ![硬盘分区模式](https://attachment.soulteary.com/2023/11/08/disk-layout.png) Ventoy 的[分区格式的设计](https://www.ventoy.net/cn/doc_disk_layout.html)还是非常合理的,以MBR 为例(GPT 类似),在磁盘最前端保存分区表,最后端保存 EFI 启动使用的分区和 Ventoy 相关程序,中间部分作为数据盘,提供给用户使用,让用户存放安装镜像文件或者普通数据。 除此之外,Ventoy 的[插件系统的设计](https://www.ventoy.net/cn/plugin_entry.html),也挺实用的,使用声明配置的方式,允许用户在有限范围对 Ventoy 进行必要调整:包括了赏心悦目的外观配置(主题、字体、菜单界面自定义),能够将 LiveCD 中的数据持久化的插件(Live CD 当普通系统使用)、Windows VHD 启动插件(Win2Go 基础)、用于自动部署使用的自动部署插件等等。 以及,更现代化的 PXE 服务器版本的 Ventoy:iVentoy。 ## 最后 这篇文章就先写到这里吧,接下来的几篇文章,或许,我们会用 Ventoy 来开启一些有趣的硬件。 --EOF