关于无损安装

  • 1. 背景介绍

有些情况下,U盘或移动硬盘中已经有大量的文件了,想安装 Ventoy 又不想花很长时间来备份恢复数据。
最新版本的 Ventoy 在 Windows 版本的 Ventoy2Disk.exe 以及 Linux 版本的 Ventoy2Disk.sh 中实验性提供了无损安装的功能。
在符合一定条件下,一般可以做到无损安装。同时支持 MBR 和 GPT 分区格式的设备。

请注意:
1、任何磁盘操作都有一定的风险,Ventoy 会尽可能的保证现有数据的安全,但是对于非常重要的数据强烈建议还是先进行备份。
2、无损安装只是保证现有分区内的数据不丢失,但是会覆盖 MBR 以及 MBR 到第1个分区之间的 1MB区域。因此不建议在有启动的磁盘上使用。
3、已经安装了 Ventoy 的U盘不能再进行无损安装(也不需要),菜单会置灰。

  • 2. 实现原理

无损安装的原理很简单。下面一张图就可以看明白。


  • 3. 使用条件

Ventoy 会自动对设备进行严格检查,如果不符合条件则不会进行无损安装。一般情况下需要满足以下条件:

  • 3.1 Windows 系统使用条件

3.1.1. 原盘内可以有多个分区、但必须要有1个空闲的分区表。
Ventoy 需要插入 VTOYEFI 分区,因此需要占用1个分区表。比如对于 MBR 分区格式,如果U盘上已经有4个分区了,就不行了。
类似的,对于 GPT 分区格式,如果U盘上已经有 128 个分区了,也不行(当然一般不会有这么多)。

3.1.2. 第1个分区必须是从 1MB 位置开始
对于MBR和GPT都有这个要求。这是为了符合 Ventoy 的分区布局需要。Windows 下新建的分区默认一般都是从 1MB 开始的。

3.1.3. 第1个分区只能是 NTFS 格式,不支持其他格式。
这是由于 Windows 系统原生只支持对 NTFS 分区进行无损缩小。
对于 FAT32/exFAT 分区可以使用 DiskGenius 或其他支持的第三方工具,先对其进行无损缩小,然后再进行无损安装。

3.1.4. 第1个分区内必须要有一定的剩余空间。
有剩余空间才有可能进行压缩调整。如果第1个分区已经完全用满了,则肯定就无法压缩调整了。
当然如果你原本第1个分区后面就有空闲空间的话,那也可以。总之要能找到空闲的空间来放 VTOYEFI 分区。

3.1.5. 第1个分区必须分配了盘符。
Ventoy 需要根据盘符获取相关信息。

  • 3.2 Linux 系统使用条件

3.2.1. 原盘内可以有多个分区、但必须要有1个空闲的分区表。
Ventoy 需要插入 VTOYEFI 分区,因此需要占用1个分区表。比如对于 MBR 分区格式,如果U盘上已经有4个分区了,就不行了。
类似的,对于 GPT 分区格式,如果U盘上已经有 128 个分区了,也不行(当然一般不会有这么多)。

3.2.2. 第1个分区必须是从 1MB 位置开始
对于MBR和GPT都有这个要求。这是为了符合 Ventoy 的分区布局需要。Windows 下新建的分区默认一般都是从 1MB 开始的。

3.2.3. 第1个分区支持 NTFS 或 EXT2/3/4 格式,不支持其他格式。
如果是 NTFS 格式,则系统中需要安装 ntfs-3g 包。 如果是 EXT2/3/4 格式,则系统中需要安装 e2fsprogs 包。

3.2.4. 第1个分区内必须要有一定的剩余空间。
有剩余空间才有可能进行压缩调整。如果第1个分区已经完全用满了,则肯定就无法压缩调整了。
当然如果你原本第1个分区后面就有空闲空间的话,那也可以。总之要能找到空闲的空间来放 VTOYEFI 分区。

  • 4. 使用方法
  • Windows 使用方法

选择对应设备、然后点击 配置选项 --> 无损安装 菜单,如下图所示:
注意:进行无损安装时、菜单里选择的 MBR/GPT 分区类型就无效了,原来U盘是什么分区类型安装之后还是什么类型,不会改变。


  • Linux 使用方法

Ventoy2Disk.sh 中新增 -n 参数,和 -i-I 选项一起使用。例如:sudo sh Ventoy2Disk.sh -i -n /dev/sdb
注意:进行无损安装时原来U盘是什么分区类型安装之后还是什么类型,不会改变。