在VirtualBox中调整Debian的大小

我有一个3GB大小的虚拟机,我想把它的HD放大到7GB。

所以我在主机上执行这个命令(在guest虚拟机closures的时候):

VBoxManage modifyhd debian.vdi --resize 7168 

然后我运行客户Debian 6,然后:

 smith@debian6:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 2.8G 2.6G 60M 98% / tmpfs 61M 0 61M 0% /lib/init/rw udev 57M 160K 57M 1% /dev tmpfs 61M 0 61M 0% /dev/shm smith@debian6:~$ sudo parted /dev/sda print Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 3221MB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 3035MB 3034MB primary ext3 boot 2 3036MB 3220MB 185MB extended 5 3036MB 3220MB 185MB logical linux-swap(v1) smith@debian6:~$ cat /proc/partitions major minor #blocks name 8 0 3145728 sda 8 1 2962432 sda1 8 2 1 sda2 8 5 180224 sda5 

所以,HD /分区没有自动resize(检测)(而主机中的VirtualBox现在显示为7GB)。 好…

那我呢:

 smith@debian6:~$ sudo resize2fs /dev/sda1 resize2fs 1.41.12 (17-May-2010) The filesystem is already 740608 blocks long. Nothing to do! smith@debian6:~$ sudo parted GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) select /dev/sda1 Using /dev/sda1 (parted) resize WARNING: you are attempting to use parted to operate on (resize) a file system. parted's file system manipulation code is not as robust as what you'll find in dedicated, file-system-specific packages like e2fsprogs. We recommend you use parted only to manipulate partition tables, whenever possible. Support for performing most operations on most types of file systems will be removed in an upcoming release. Partition number? 1 Start? 0 End? [3034MB]? 

在这里,我卡住了。 在上面的parted它要求我调整到3GB。 没有任何意义,对..

我应该怎么做才能扩大这个分区?

您将无法增加此特定实例中的/ dev / sda1分区的大小,因为与其相邻位于扩展分区(最终交换分区)。

如果目标分区周围存在连续的空间,则只能扩展空间,在这种情况下没有空间。 这当然是真的,如果你不想重新加载分区。

在这种情况下,你需要做的是删除交换分区,删除扩展分区,扩展分区1,为交换分区腾出空间,重新创build扩展分区,然后重新创build交换分区。 然后你可以在放大的分区上做resize2fs。 你可能必须在修改过的swap分区上进行mkswap,以使其正常工作。

如果您还没有重新启动虚拟机,则操作系统可能不知道该磁盘已被扩展。 所以我会从第一个开始(或者做一个完整的VM关机,然后启动)。 第二个问题是,在系统重新启动(或者驱动器没有被使用)之前,对正在使用的驱动器上的分区表进行的任何编辑都不会被看到。 所以假设硬盘在重新启动后显示为7GB,您将不得不放大分区,然后重新启动,最后发出您的resize2fs命令。 顺便说一句,我个人通常不使用parted,但它看起来像re-size命令试图重新调整分区和文件系统的大小 – 在这种情况下,你可能会更好的重新调整分区大小(通过fdisk),然后在操作系统能够重新读取分区表(通过重新启动)之后执行文件系统。 哦,并确保你有一个良好的备份第一。

编辑:我在VirtualBox中设置了一个3GB的Debian虚拟机,与您的相同,并logging了我用来将其扩展到7GB的步骤的日志。 总结:closures虚拟机,备份VDI文件,扩展VDI,重新启动虚拟机,使用fdisk-set单位到扇区(u命令)并显示分区表(p),删除现有分区,重新创build根分区(注意使用与原始扇区相同的起始扇区),重新创build扩展分区和交换,将主标记为可引导(a),写入,重新启动,然后调整文件系统的大小。

root @ debian:〜#cat / proc / partitions
主要次要#块名称

8 0 3145728 sda
8 1 2962432 sda1
8 2 1 sda2
8 5 180224 sda5

root @ debian:〜#exit

$ VBoxManage列表runningvms
“Debian”{b32e56f1-a6b9-4753-a67d-19f03503f884}

$ VBoxManage controlvm Debian acpipowerbutton

$ cp Debian.vdi Debian.vdi.backup

$ VBoxManage modifyhd Debian.vdi 7168

$ VBoxManage startvm Debian

$ ssh root@192.168.56.101

root @ debian:〜# cat / proc / partitions
主要次要#块名称

8 0 7340032 sda
8 1 2962432 sda1
8 2 1 sda2
8 5 180224 sda5

root @ debian:〜# swapoff / dev / sda5
root @ debian:〜# fdisk / dev / sda

命令(米求救):
将显示/input单位更改为扇区

命令(m帮助): p

磁盘/ dev / sda:7516 MB,7516192768字节

设备引导启动结束块Id系统
/ dev / sda1 * 2048 5926911 2962432 83 Linux
分区1不会在圆柱体边界上结束。
/ dev / sda2 5928958 6289407 180225 5扩展
分区2不结束于柱面边界。
/ dev / sda5 5928960 6289407 180224 82 Linux swap / Solaris

命令(米求救): d
分区号(1-5): 5

命令(米求救): d
分区号(1-5): 2

命令(米求救): d
选定的分区1

命令(m for help): n
命令行动
e扩展
p主分区(1-4)
p
分区号(1-4): 1
第一部门(63-14680063,默认63): 2048
最后一个扇区+扇区或+大小{K,M,G}(2048-14680063,默认14680063): + 6G

#Impportant! 在这种情况下,Fdisk默认为63的起始扇区,但是原始的操作系统安装从扇区2048开始。您必须指定与原来相同的起始扇区(手动)。

命令(m帮助): p

磁盘/ dev / sda:7516 MB,7516192768字节

设备引导启动结束块Id系统
/ dev / sda1 2048 12584960 6291456+ 83 Linux

命令(m for help): n
命令行动
e扩展
p主分区(1-4)
Ë
分区号(1-4): 2
第一部门(63-14680063,默认63):12584961
最后一个扇区,+扇区或+大小{K,M,G}(12584961-14680063,默认14680063):
使用默认值14680063

命令(m for help): n
命令行动
l逻辑(5或以上)
p主分区(1-4)

第一部门(12585024-14680063,默认12585024):
使用默认值12585024
最后一个扇区+扇区或+大小{K,M,G}(12585024-14680063,默认14680063):
使用默认值14680063

命令(m帮助): p

设备引导启动结束块Id系统
/ dev / sda1 2048 12584960 6291456+ 83 Linux
分区1不结束于柱面边界。
/ dev / sda2 12584961 14680063 1047551+ 5扩展
分区2不结束于柱面边界。
/ dev / sda5 12585024 14680063 1047520 83 Linux

命令(米求救): a
分区号(1-5): 1

命令(m for help): t
分区号(1-5): 5
hex代码(inputL到列表代码): 82
将分区5的系统types更改为82(Linux swap / Solaris)

命令(m for help): w
分区表已被更改!

调用ioctl()重新读取分区表。

警告:重新读取分区表失败,错误16:设备或资源忙。
内核仍然使用旧表。 新表将用于
下一次重新启动或运行partprobe(8)或kpartx(8)后
同步磁盘。
root @ debian:〜# 重启

$ ssh root@192.168.56.101

root @ debian:〜# cat / proc / partitions
主要次要#块名称

8 0 7340032 sda
8 1 6291456 sda1
8 2 1 sda2
8 5 1047520 sda5
root @ debian:〜# df /
文件系统1K块已用可用使用%挂载
/ dev / sda1 2915832 809244 1958468 30%/

root @ debian:〜# resize2fs / dev / sda1
resize2fs 1.41.12(2010年5月17日)
/ dev / sda1上的文件系统安装在/上; 需要在线resize
旧的desc_blocks = 1,new_desc_blocks = 1
执行/ dev / sda1到1572864(4k)块的联机大小调整。
/ dev / sda1上的文件系统现在是1572864个块。

root @ debian:〜# df /
文件系统1K块已用可用使用%挂载
/ dev / sda1 6194240 810684 5071636 14%/

root @ debian:〜# mkswap / dev / sda5