我的整体问题是我当前的虚拟硬盘已经满了,所以我想把所有内容移到一个更大的 VDI 文件中,然后从该文件启动。
如果重要的话,我有 XP 主机和 Crunchbang(基于 Debian statler)客户机,VirtualBox 版本 4.1.2r73507。
我第一次尝试本指南,但在 dd 了 /dev/sda1 的内容后,gparted 无法分辨出较大磁盘上有一个较小的分区。但是,我确实将 /dev/sda1 的所有内容复制到了 /dev/sdb1,唯一的问题是 /dev/sdb1 认为它只有 8 GB,而不是 32 GB。
然后我发现档案归档,它声称能够将存档文件还原到更大的分区,因此我使用以下命令创建了 /dev/sdb1 的存档
fsarchiver savefs -A /media/sf_C_DRIVE/temp/backup.fsa /dev/sdb1
然后我用 gparted 清除了 /dev/sdb1(将整个东西重新格式化为 ext4),并使用以下方法恢复了存档文件
fsarchiver restfs /media/sf_C_DRIVE/temp/backup.fsa id=0,dest=/dev/sdb1
根据 df,我认为这个方法有效。它显示使用的块数大致相同,但使用的百分比要小得多。但是,当我进入虚拟机设置并将较大的驱动器切换为主要主驱动器时,我无法启动(甚至 GRUB 也无法启动)
更糟糕的是,我决定从 LiveCD 启动机器,再次清除 /dev/sdb1,重新创建存档(这次从真正的 /dev/sda1 开始),然后 restfs /dev/sdb1。不幸的是,我没有注意,所以我擦除了 /dev/sda1。如果没有 LiveCD 上的 Guest Additions,我无法访问 C:\temp 中的 fsa 文件以将映像还原到任一 VDI 文件。
有什么建议么?
答案1
不要复制,只需使现有的虚拟驱动器文件更大,然后启动虚拟机(可能从 livecd 启动)并添加/扩展分区。