0

    国产开源工具:U盘启动工具Ventoy v1.0.35发布——墨涩网

    2023.05.08 | admin | 157次围观

    Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把ISO文件拷贝到U盘里面就可以启动了,无需其他操作。你可以一次性拷贝很多个不同类型的ISO文件,在启动时Ventoy会显示一个菜单来选择。无差异支持Legacy BIOS和UEFI模式。目前已经测试了各类超过200+ 个ISO文件,

    背景介绍

    从相关文档中可以知道,Ventoy在启动时会基于ISO文件创建一个虚拟设备然后启动它。但是这个虚拟设备仅仅是BIOS层面的(Legacy或者UEFI)。大多数情况下它只在启动阶段存在。绝大多数现代操作系统的内核在启动之后都是使用它们自身的驱动来访问硬件,因此这个虚拟设备对于内核来说是不可见的。一般情况下,ISO里面的系统起来之后会遍历所有的硬件设备(CDROM/USB/HD …) 去寻找安装源。但是在Ventoy启动的环境下是找不到的,因为没有这样一个实际的安装介质,是虚拟的设备嘛。但是系统内核不知道这个情况提示u盘有写保护,它们不知道当前是 Ventoy使用虚拟设备引导起来的,并不是传统的物理光驱或者U盘引导起来的。所以,如果不做特殊处理的话,大部分ISO文件启动以后就会报找不到安装源的错误而停止。因此,Ventoy必须做很多hook的工作,帮助内核找到、挂载安装源。其实就是告诉内核,当前是Ventoy从一个虚拟的设备引导起来的,你的安装源并不在常规的介质中,而是在XX硬盘的XXX.iso文件提示u盘有写保护, 你把它挂载起来当做安装源就可以啦。。。。。但是这个hook工作是非常枯燥而且麻烦的,因为系统种类实在太多而且有各种各样的特殊情况。

    Ventoy Compatible 概念

    实际上,Ventoy在启动之前,把相关的信息都保存在了运行时内存中(保留内存段),同时还提供了一个工具可以在系统下获取这些信息。这样,操作系统调用一下这个工具就可以知道,当前是Ventoy环境启动的,而且还能详细知道是基于哪个磁盘的哪个ISO文件启动而来的。这样,系统就可以直接去找到对应的ISO文件,挂载起来作为安装源就可以了。不需要再用常规的方式去寻找。当然,如果是常规方式启动起来的,系统下调用这个工具是获取不到任何数据的,这种情况下就按照常规的启动步骤往下走就可以了。

    因此,如果ISO里面的系统集成了这个工具,并且做了上述处理的话,对于Ventoy就很简单了,只需要做好这个虚拟设备就可以了,不用再费力做那些hook工作了。另一方面,还有一个问题就是,就算ISO里面的系统做了这些工作,Ventoy怎么知道呢?因此Ventoy提供了几种方式让ISO文件来标识自己。

    我把集成了这个工具并且做了上述处理的操作系统或者ISO文件称之为“Ventoy Compatible”的。

    Ventoy 特点使用说明

    下载安装包,例如 ventoy-1.0.00-windows.zip 然后解压开。

    直接执行Ventoy2Disk.exe如下图所示,选择U盘设备,然后点击 Install 按钮即可。

    安装包内 Ventoy 版本:当前安装包中的Ventoy版本号

    设备内部 Ventoy 版本:U盘中已安装的Ventoy版本号,如果为空则表示未安装

    安装:把Ventoy安装到U盘,只有第一次的时候需要,其他情况就只需要Update升级即可

    升级:升级U盘中的Ventoy版本,升级不会影响ISO文件

    下载安装包,例如 ventoy-1.0.00-linux.tar.gz, 然后解压开.

    在终端以root权限执行sh Ventoy2Disk.sh -i /dev/XXX 其中 /dev/XXX 是U盘对应的设备名,比如 /dev/sdb

    Ventoy2Disk.sh  选项  /dev/XXX
    选项含义:
    -i 安装ventoy到磁盘中 (如果对应磁盘已经安装了ventoy则会返回失败)
    -I 强制安装ventoy到磁盘中,(不管原来有没有安装过)
    -u 升级磁盘中的ventoy版本

    针对Linux系统有几点需要特殊说明一下:

    1. 执行脚本时需要有root权限, 对一些系统比如ubuntu/deepin 执行的时候需要在前面加 sudo 比如sudo sh Ventoy2Disk.sh -i /dev/sdb

    2. 必须cd到ventoy解压之后的目录下执行此脚本

    3. 请务必输入正确的设备名称,ventoy不会检查你输入的设备是U盘还是本地硬盘,如果输错了有可能会把你的系统盘格式化掉哦!

    请注意:选择安装的时候,U盘将会被格式化,里面所有的数据都会丢失!

    你只需要安装一次Ventoy即可,剩下的就只需要把各种ISO文件拷贝到U盘中就可以了.

    你也可以把它当成普通U盘使用,保存普通文件,不会影响Ventoy的功能。

    安装完成之后,U盘会被分成两个区。第一个分区将会被格式化为exFAT文件系统,你只需要把ISO文件拷贝到这里面即可。你可以把ISO文件放在任意目录以及子目录下。Ventoy会遍历所有的目录和子目录,找出所有的ISO文件,并按照字母排序之后显示在菜单中。

    请注意:ISO文件的全路径中(包括目录、子目录和文件名)不能包含中文或者空格

    如果Ventoy发布了新版本之后,你可以点击 Update 按钮进行升级,或者Linux系统中使用 -u 选项进行升级。

    需要说明的是,升级操作是安全的,不会影响原有的ISO文件

    更新日志

    vtoyboot-1.0.8发布。说明

    vdiskchain-1.2发布。说明

    当ventoy.json文件放错分区时显示一个提示信息。

    当 ISO 文件大小非法时显示告警提示信息。

    修复了 secureboot 使能时启动 vdisk 文件的一个BUG (issue #714)

    VentoyLiveCD 从 i686 升级到 x86_64

    优化了slax系统的启动过程。

    新增image_blacklist选项。说明

    新增ISO文件支持

    启动扫描文件时打印一个提示信息(避免被误认为卡死)

    优化了启动 TinyCore 系列系统。

    修复了一个会误报 ISO 文件大小不合法的 BUG。

    优化了安全启动开启的情况下 vtoyboot 的处理流程。

    新增 ISO 支持

    下载地址

    或(蓝奏云)

    (天翼云)

    提取码: vtoy(百度网盘)

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论