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

news2024/11/25 23:01:31

开源的全能维护 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1186575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker本地镜像发布到阿里云或私有库

本地镜像发布到阿里云流程 : 1.自己生成个要传的镜像 2.将本地镜像推送到阿里云: 阿里云开发者平台:开放云原生应用-云原生(Cloud Native)-云原生介绍 - 阿里云 2.1.创建仓库镜像: 2.1.1 选择控制台,进入容器镜像服…

Makefile 总述

目录 一、Makefile 里有什么? 1、显式规则 2、隐晦规则 3、变量的定义 4、文件指示 5、注释 二、Makefile 的文件名 三、引用其它的 Makefile 四、环境变量 MAKEFILES 五、make 的工作方式 一、Makefile 里有什么? Makefile 里主要包含了五个东…

Ps:图层蒙版的基本操作

点击图层蒙版缩览图选中图层蒙版之后,方可进行图层蒙版的操作。 反相蒙版 Invert 将图层蒙版上的白色转换为黑色,黑色转换为白色。 方法一: Ps菜单:图像/调整/反相 Adjustments/Invert 方法二: 快捷键:Ctrl…

window10单机部署hbase-2.5.5-hadoop3

一、介绍 hbase是什么,Hbase是一个分布式,可扩展,支持海量数据存储的noSQL数据库 二、下载hbase https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.5.6/ 三、配置hbase环境变量 三、修改hbase配置文件 在hbase-env.cmd添加如下配置…

【算法-链表2】反转链表 和 两两交换链表节点

今天,带来链表相关算法的讲解。文中不足错漏之处望请斧正! 理论基础点这里 反转链表 1. 思路 链表操作的本质是修改连接关系,本题我们需要反转链表,也就是每次都让当前节点的next指向自己的上一个。而题目给的是单链表&#xf…

Linux tail命令:显示文件结尾的内容

tail 命令和 head 命令正好相反,它用来查看文件末尾的数据,其基本格式如下: [rootlocalhost ~]# tail [选项] 文件名 此命令常用的选项及含义 【例 1】查看 /etc/passwd 文件最后 3 行的数据内容。 [rootlocalhost ~]# tail -n 3 /etc/passwd…

jmeter接口自动化部署jenkins教程

首先,保证本地安装并部署了jenkins,jmeter,xslproc 我搭建的自动化测试框架是jmeterjenkinsxslproc ---注意:原理是,jmeter自生成的报告jtl文件,通过xslproc工具,再结合jmeter自带的模板修改&…

Linux - 进程程序替换 - C/C++ 如何实现与各个语言之间的相互调用 - 替换环境变量

前言 我们之前利用 fork()函数来创建子进程,这种方式是 父子进程 共用一个代码,只是在代码当中使用了 if-else 语句来分流,达到父子进程运行不同的代码块的目的。但是其实本质上,还是父子共用一个代码和数…

C进阶-编译环境与预处理

本章重点: 程序的翻译环境 程序的执行环境 详解:C语言程序的编译链接 预定义符号介绍 预处理指令#define 宏和函数的对比 预处理操作符#和##的介绍 命令定义 预处理指令#include 预处理指令#undef 条件编译 1. 程序的翻译环境和执行环境 在ANSI C的任何一…

基层医院、民营医院、二级医院his系统源码,云计算技术B/S架构

在我国,基层医院和民营医院在总体数量上占据很大比例,但信息化水平普遍偏低。造成这一现状的原因有很多,如对信息化的重视度不够、缺乏足够的资金投入等,严重局限了自己在市场上对系统的选择面,而且难以保证有效的维护…

PDF Expert for mac(苹果电脑专业pdf编辑器)兼容12系统

PDF Expert是macOS平台上的一款优秀的PDF阅读和编辑工具,由Readdle公司开发。它不仅拥有方便、易用的界面,还具备诸多功能,比如编辑PDF文件、添加批注、填写表格、签署文件、合并文档等。安装:PDF Expert for Mac(PDF编辑阅读转换器)v3.5.2中…

Springer LaTeX 模板,及使用Texworks编译参考文献不显示问题

模板下载地址:Manuscripts with mathematical content can also be submitted in LaTeX. We recommend using Springer Nature’s LaTeX template. 下载的压缩包中包含以下文件: 使用Texworks打开.tex文件,生成的PDF有参考文献,但…

一个界面现代美观,色彩年轻化的Vue3+SpringBoot3前后端分离中后台管理脚手架

📚 在线文档 | ✨ 提交需求 | 🚀 演示地址(账号/密码:admin/admin123) 简介 ContiNew Admin (Continue New Admin)中后台管理框架/脚手架,持续以最新流行技术栈构建,拥…

PCL点云处理(008)-euc_cluster

欧式聚类是一种基于距离的聚类算法,可以将点云中距离较近的点聚集在一起,形成一个簇。 在PCL库中,欧式聚类的实现原理是将点云中的每个点看作一个向量,然后计算这些向量之间的欧式距离。欧式距离是指两个向量之间的距离&#xff0…

视频电影和字幕如何合并?

我们在看一些国外的电影或者电视剧有时是没有字幕文件的,而对于普通人来说,没有字幕意味着我们无法看懂电影的剧情,好不容易获得的视频资源没有意义了,这种情况该怎么办呢? 其实这种情况完全不用怕,要知道…

【应用前沿】360QPaaS 精彩亮相首届中国航空制造设备博览会 | 数智航空

近日,首届“中国航空制造设备博览会”(CAEE2023)在宁波国际会展中心顺利召开,本届大会以“数智产融 开放发展”为主题,以“新技术、新产品、新服务、新企业”为定位,以特色化、专业化、品牌化、高端化为方向…

k8s-服务网格实战-配置 Mesh(灰度发布)

istio-02.png 在上一篇 k8s-服务网格实战-入门Istio中分享了如何安装部署 Istio,同时可以利用 Istio 实现 gRPC 的负载均衡。 今天我们更进一步,深入了解使用 Istio 的功能。从 Istio 的流量模型中可以看出:Istio 支持管理集群的出入口请求&a…

flutter生态一统甜夏 @Android @ios @windowse @macos @linux @Web

(愿景)G o o g l e 中 国flutter生态一统天下(IT) Web Android ios Windowse Macos Linux Google中国https://space.bilibili.com/64169458 https://pub-web.flutter-io.cn 构建 Flutter Web 应用 构建 Flutter Web 应用 - Flutter 中文文档 - Flutter 中文开发者网站 …

2023年下半年架构案例真题及答案

案例的考点: 大数据架构 Lambda架构和Kappa架构 jwt特点 数据持久层,Redis数据丢失,数据库读写分离方案 Hibernat架构 SysML七个关系,填需求图 大数据的必选题: 某网作为某电视台在互联网上的大型门户入口&#…

【vue 仿百度分页】

vue 仿百度分页 效果图 代码 公用组件 <template><nav class"pagination_nav"><ul class"pagination"><li :class"{ disabled: current 1 }"><a href"javascript:;" click"setCurrent(current - …