我只有 4.6GB VDI 映像。我必须将其复制到 FAT32 文件系统中。我不能使用 VMDK 格式,只能使用 VDI 映像。
我如何将 VDI 分割成更小的 VDI 块,以便可以将其复制到 USB 中。
答案1
您是否只需要将其分割成足够小的块以适合 FAT32 文件系统,以便传输或复制它?如果是这种情况,您可以:
- 用于
split
将文件分割成几部分。 - 或者用来
dd
做同样的事情。 - 或者将其存档(例如多部分 RAR 或多部分 ZIP 文件)。
如果您需要虚拟机真正从 U 盘运行:
- 更改文件系统。FAT32 仅限于 4GiB 或更小的文件,因为这是文件系统的限制。
- 或者更改为可以分割的文件格式。(为什么 VMDK 不是一个选项?)。
- 或者完全使用环回文件系统,将 FAT32 格式的 pendrive 上的多个 4GiB 文件 RAID 到足够大的单个分区中,然后在其上使用不同的文件系统。
编辑于 2014 年 5 月 25 日:添加有关第三个选项的更多信息。
使用 dd 创建≤4GiB 文件:
dd if=/dev/null of=/mnt/myPenDrive/RAID_part_1.diskimage bs=1M count=3072
dd if=/dev/null of=/mnt/myPenDrive/RAID_part_2.diskimage bs=1M count=3072
解释:
- 从 /dev/null 读取 1M 块,它提供了无尽的零源。
- 重复 3072 次。
- 将得到的 3TiB 零写入名为 RAID_part_1.diskimage 的文件中
请注意,文件大小几乎可以是任意大小,但由于我们正在写入 FAt32 文件系统,因此文件大小必须小于 4GiB。因此,不要将计数增加到 4095 以上。
接下来我们告诉操作系统我们希望将这些文件视为块设备。
losetup /dev/loop0 /mnt/myPenDrive/RAID_part_1.diskimage
losetup /dev/loop1 /mnt/myPenDrive/RAID_part_2.diskimage
现在我们可以像普通磁盘一样访问这些文件。例如,然后运行 fdisk,以我们想要的任何方式格式化它们,然后挂载格式化的卷。
再说一遍:我们可以用 FAT32 以外的其他格式格式化此环回设备。因此 FAT32 限制不再适用。由于或假“磁盘”小于 4GiB,如果我们尝试创建 6GiB 文件,磁盘仍会变满。所以让我们扩展磁盘。
我们可以通过连接多个设备来实现这一点。把它想象成一本纸质笔记本,你可以把两个笔记本粘在一起。第一个笔记本的最后一页贴到第二个笔记本的第一页上。现在你已经把两个小笔记本(磁盘)变成了一个大笔记本。
可以找到更详细、更全面的描述在我们的姊妹网站上。
对于 Linux,你可能想要使用管理。
首先确保您有可用的 mdadm(例如尝试运行它,如果未找到,请尝试使用您的发行版的相关命令来安装它。例如apt-get install mdadm
对于 Ubuntu、yum install mdadm
RedHat 或emerge mdadm
Gentoo)。
mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1
您现在应该有一个名为 /dev/md0 的新 6GiB 块设备。根据需要对其进行格式化和挂载。