有很多关于如何调整Virtualbox磁盘映像(VDI),然后启动Live CD以调整其文件系统大小的说明,从现已调整大小的磁盘重新启动并且瞧瞧:你已经扩展了VDI中文件系统的大小。
我想使用主机操作系统,只有Linux(Ubuntu 12.04 LTS)。这样做的目的是能够实现自动化,并使流程花费更少的时间。我怎么能这样做?
答案 0 :(得分:2)
看起来这可以使用Qemu的NBD工具实现(并不总是具有可预测/稳定/可靠的结果),正如Jeff Waugh在http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/中描述的那样,基本上是这样的:
sudo aptitude install qemu-utils
sudo modprobe nbd
VBoxManage modifyhd <vdi-file> --resize <new_size>
sudo qemu-nbd -c /dev/nbd0 <vdi-file>
sudo gparted /dev/nbd0
sudo qemu-nbd -d /dev/nbd0
答案 1 :(得分:0)
我尝试了各种关于如何通过网络进行此操作的建议,但是在嵌入式发行版(例如OpenWrt)上,来自客户端的gparted
技巧不起作用(尽管不可否认{{1}因为你没有安装所有的先决条件。所以你必须在客人外面这样做。
我最终做的是回到图像文件。如果你没有原始图像,可以从.vdi获取它:
parted
现在您可以执行以下操作:
VBoxManage internalcommands converttoraw file.vdi disk.img
例如,将10 GiB添加到磁盘。然后:
qemu-img resize disk.img +10G
kpartx -av disk.img
应该输出它用于块设备的回送设备(例如kpartx
,AKA loop0
)。然后这样做:
/dev/loop0
查看设备ls -la /dev/mapper/loop0p*
已插入到kpartx
树下(例如/dev
),用于磁盘映像中的每个分区。您需要了解这些内容,假冒/dev/dm-8
喜欢它的其他分区,例如gparted
x 。因此,为/dev/loop0_part
gparted
所以你最终可以在ln -s /dev/dm-8 /dev/loop0_part1
...
gparted
在图像完全符合您的要求后,不要忘记清理:
gparted /dev/loop0
并重新导入kpartx -d disk.img
rm /dev/loop0_part1
...
作为.vdi。
disk.img
BTW,我尝试接受了答案,但VBoxManage convertfromraw --format VDI disk.img disk.vdi
只是不会调整大小。
答案 2 :(得分:-1)
只需按照以下步骤操作:
祝贺你,享受你的自由空间。
这个视频将帮助您:
https://youtu.be/ikSIDI535L0