开源的全能维护 U 盘工具:Ventoy

2023-11-08 16:36

本文主要是介绍开源的全能维护 U 盘工具:Ventoy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开源的全能维护 U 盘工具:Ventoy

本篇文章聊聊迄今为止,我用着最舒服的一款开源 U 盘启动工具,Ventoy。

写在前面

好久不见,接下来计划写一个比较连续的内容,就先从最小的处着手吧。

经过长久的折腾,除非我们是在 ESXi 或者 PVE 这类虚拟机环境中维护操作系统,否则不论是购置新硬件设备,还是计划着手对家里的老设备进行系统翻新,系统安装盘总归是绕不开的一个话题。

折腾使用的 U 盘

但如果你的设备需要安装不同的操作系统,或者不同版本的操作系统,就需要准备多个安装光盘或者安装 U 盘了,即使 U 盘可以重新擦除,反复制作不同操作系统或者不同版本的操作系统的镜像,安装起来也总归是比较麻烦的。

关于安装 U 盘的折腾笔记,你可以参考这篇文章:《硬件笔记:组装“固态 U 盘”的八年,从 100 块到 1000 块》,这里就不再赘述。

为了减少不必要的安装盘的刷写操作,我们可以借助一款开源的优秀工具:Ventoy。

开源项目:Ventoy

使用它来将你的普通 U 盘变成可启动的 U 盘,你只需要将你想要引导的操作系统镜像文件扔到 U 盘中,就能够完成操作系统的启动,而无需重复制作启动盘。如果你有多个不同版本的操作系统,那么只需要把不同的操作系统的镜像都放在 U 盘里就好了,它会自动扫描可引导的镜像文件,生成可供用户选择的启动列表。

兼容性非常棒

同时,作者对他的兼容性做了非常多的工作,从传统的 x86 BIOS 引导到现代的各种 UEFI 引导它都支持,支持上千个系统的引导,覆盖了 distrowatch.com 最流行操作系统中的 90%。

不过,在开始使用前,我们首先要明确哪些场景使用它不会带来效率提升。

不适合的场景

如果你手头的电脑或者接触到的设备,都是最近十年的设备,那么你可以放心使用 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

首先,访问项目的程序发布页面,获取最新的程序版本,截止文章发布时候,最新的版本是 1.0.96。

初始化启动盘

下载“ventoy-1.0.96-windows.zip”,然后在本地解压缩后,执行文件夹中的 “Ventoy2Disk” 程序。

Ventoy 默认界面

默认界面十分简单,几乎只有设备列表可以下拉筛选,以及“安装”按钮是可点击的。不过,建议先点击不起眼的“配置选项”菜单,根据自己的情况做一些细节调整。

Ventoy 下拉菜单

如果你之前安装过其他的 PE 操作系统,或者磁盘本身就具备引导功能,为了能够顺利创建启动 U 盘,建议点击这个下拉菜单中的“清除 Ventoy”,先将磁盘完整格式化一遍,并清除所有隐藏分区中的数据。

Ventoy 文件系统支持

在下拉菜单中,我们还可以根据自己的需求,调整启动分区的文件类型:

  • 如果你的 “U 盘” 容量比较大(比如大于等于 2TB)请选择 GPT 分区类型,否则可以保持 MBR 分区;
  • 如果你希望你的 U 盘只在 Windows 下愉快使用,可以考虑在“分区设置”中将文件系统从默认的 exFat 改为 NTFS;
  • 如果你希望你的 U 盘在古早的设备中也能比较好的支持,可以选择 FAT 格式的分区,唯一的代价是不能存放大于 4GB 的光盘文件;
  • 如果你希望完全模拟光盘,可以考虑使用 UDF (通用光盘格式)分区;
  • 除此之外,默认使用虽然可能存在丢失文件的可能性的 exFat 也未尝不可,因为这个 U 盘大概率也就只放安装文件罢了。

Ventoy 启动盘制作完毕

完成调整之后,再次确认要安装 Ventoy 的磁盘设备后,点击安装按钮,即可完成 Ventoy 的安装。

创建一个存放镜像的目录

我个人不太喜欢镜像散落在盘根,所以一般会新建一个名为 iso 的目录,然后将镜像文件复制到目录中。

复制启动镜像文件

在完成 Ventoy 启动盘的安装后,我们将一些系统的安装镜像复制到 U 盘中,等待镜像复制完毕,某一种或几种系统的安装/启动 U 盘就制作完毕了(拷贝即安装,是不是很方便)。你可以也将你喜欢的 PE 系统或者 Linux LiveCD 复制到 U 盘中,制作一个万能 PE 合集,而剩下来的 U 盘空间,作为传统 U 盘使用也未尝不可,但和上文中提到的一样,因为 U 盘的使用场景不确定,存在一些文件被篡改风险,会浪费时间来回重新折腾,所以不建议这样使用。

启动列表

为了演示启动效果,我在 U 盘中拷贝了两个镜像,分享是 Windows 11 和 Ubuntu 的安装镜像,将 U 盘插到目标设备后,重启设备,选择 U 盘启动,我们就能够看到一个简洁的启动界面了,界面中会根据我们 U 盘中的镜像来动态的生成启动列表。选择不同的镜像就能实现不同的操作啦。

其他

聊聊 “U 盘选择”,和这个看起来“十分简单”的项目吧。

U 盘的选择

考虑到前文提到的“设备兼容性”,以及系统安装效率,在常用的安装工具盘的容量上,我选择了 32GB,一块很古早的三星 32GB MLC 硬盘,某宝不到 40 块钱,几乎我常用的所有的设备都能正常使用。

搭配之前文章《硬件笔记:组装“固态 U 盘”的八年,从 100 块到 1000 块》中,我提到的 jiayi 的硬盘盒(相对便宜的版本,69 块),主控是 VLI716 (支持网上的量产工具) ,可以使用 SATA3 和硬盘进行交互,支持 UASP 协议。

硬盘信息

组装完毕,使用Crystal DiskInfo 查看信息如图所示。

简单聊聊项目

这个项目虽然使用起来简单,但其实这个项目里整合了非常多的、实用的、大名鼎鼎的开源项目,除了常见的 Grub 和 BusyBox 外,还有它们:

  • Tiny Core Linux:20MB 左右的能够通过有线连接互联网的 Linux 桌面环境,在项目中,用于做 LiveCD,开源协议为 GPL v3.0。
  • fat_io_lib:FAT16/32 文件操作系统库,纯 C 实现的 FAT16 & FAT 32 操作系统驱动,支持文件读写,使用 GPL v3.0 协议开源。
  • Squashfs:Squashfs 文件操作系统,以及创建和提取 Squashfs 文件系统的工具,使用 GPL v2.0 协议开源。
  • NTFS 3G:安全的 NTFS 文件系统驱动,支持 NTFS 文件的读写,使用 GPL v2.0 协议开源。
  • exFat:免费的 exFat 文件系统实现,使用 GPL v2.0 协议开源。
  • Win Boot:能够加载文件类型为.win 的 WinPE 文件并启动的启动加载器,用于启动能力增强,开源协议为 GPL v2.0。
  • XZ Embedded:XZ 压缩文件解压缩工具,作者使用放任自流的约定。
  • zstd:Facebook 开源的一种实时无损压缩算法,针对 zlib 级别的实时场景压缩提供更好的压缩比,使用 GPL v2.0 协议开源。
  • vblade:简单可靠的,提供 AoE 协议的网络存储功能,让 PXE 功能得以实现,使用 GPL v2.0 协议开源。
  • civetweb:小巧的嵌入式 HTTP 服务器,让用户使用浏览器就能够维护 Ventoy,因为依赖多种开源软件,使用多种开源协议开源。
  • Porteus Kiosk:增强界面功能,使用 GPL v2.0 协议开源。

除此列表中的软件,还有很多软件,可以在编译说明文档中看到,作者在网站文档中也有一些提及。

硬盘分区模式

Ventoy 的分区格式的设计还是非常合理的,以MBR 为例(GPT 类似),在磁盘最前端保存分区表,最后端保存 EFI 启动使用的分区和 Ventoy 相关程序,中间部分作为数据盘,提供给用户使用,让用户存放安装镜像文件或者普通数据。

除此之外,Ventoy 的插件系统的设计,也挺实用的,使用声明配置的方式,允许用户在有限范围对 Ventoy 进行必要调整:包括了赏心悦目的外观配置(主题、字体、菜单界面自定义),能够将 LiveCD 中的数据持久化的插件(Live CD 当普通系统使用)、Windows VHD 启动插件(Win2Go 基础)、用于自动部署使用的自动部署插件等等。

以及,更现代化的 PXE 服务器版本的 Ventoy:iVentoy。

最后

这篇文章就先写到这里吧,接下来的几篇文章,或许,我们会用 Ventoy 来开启一些有趣的硬件。

–EOF


我们有一个小小的折腾群,里面聚集了一些喜欢折腾、彼此坦诚相待的小伙伴。

我们在里面会一起聊聊软硬件、HomeLab、编程上、生活里以及职场中的一些问题,偶尔也在群里不定期的分享一些技术资料。

关于交友的标准,请参考下面的文章:

致新朋友:为生活投票,不断寻找更好的朋友

当然,通过下面这篇文章添加好友时,请备注实名和公司或学校、注明来源和目的,珍惜彼此的时间 😄

关于折腾群入群的那些事


本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371105

相关文章

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in