在虚拟磁盘获得额外空间后调整 Linux VM 根分区的大小

在虚拟磁盘获得额外空间后调整 Linux VM 根分区的大小

系统

  • Debian 6 / 32 位
  • VSphere

目标

调整主分区的大小以利用现在可用的所有资源。

问题

我增加了 Vsphere 中虚拟机实例的磁盘空间,但是我是 Linux 新手,不知道如何操作:

  1. 查看这个新的可用空间(额外 13 GB)
  2. 找出哪个分区是主分区(我相信是 /dev/sda1)
  3. 弄清楚如何调整大小,使其达到现在可用的 20g
  4. 首先确定是否存在占用所有磁盘空间的违规文件

故障排除

文件系统

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=15a985ca-91ce-48ca-b235-cc0dad9418ef /               ext3    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=296256d8-f84a-4f4e-8511-1c2b9ea986d3 none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
overflow on /tmp type tmpfs (rw,size=1048576,mode=1777)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

DF-A

/dev/sda1              7867856   7474208         0 100% /
tmpfs                  1557572         0   1557572   0% /lib/init/rw
proc                         0         0         0   -  /proc
sysfs                        0         0         0   -  /sys
udev                   1553124       120   1553004   1% /dev
tmpfs                  1557572         0   1557572   0% /dev/shm
devpts                       0         0         0   -  /dev/pts
overflow                  1024        68       956   7% /tmp
fusectl                      0         0         0   -  /sys/fs/fuse/connections
binfmt_misc                  0         0         0   -  /proc/sys/fs/binfmt_misc

答案1

如果您更改了 Linux 所运行的虚拟磁盘的大小,那么您所做的就是更改了底层块设备(即)的大小/dev/sda。分区会导致创建“子”块设备(即)/dev/sda1等。但当然,由于这些是从分区表派生出来的,而分区表在您添加空间时可能不会改变,因此它们不会改变。要找出“底层”磁盘的大小,您需要做的是查询主块/dev/sda设备的大小。 请参阅此 unix.stackexchange.com 答案如何做到这一点。

在 Linux 中,“主”分区是安装的分区/。因此,根据上述内容,它是/dev/sda。请注意,在某些其他系统上,、/var/usr可能/home位于不同的分区上 - 这些对于正常运行的系统也非常重要(尽管您可以在紧急情况下根据需要解决这个问题)。

您可能需要查看ext2online调整/分区大小。我从未使用过它。如果出于某种原因您无法使用它或类似操作,您可以在救援模式下启动系统,将所有内容复制到/临时外部卷(或第二个虚拟磁盘)上,重新分区,然后将所有内容复制回来。

至于查看有问题的文件,通常首先您要检查/var并删除或修剪不需要保留的任何日志文件(并定期执行此操作)。您可能还想删除不需要的内容,/home并尝试aptitude删除任何不需要的包。最后,您可以尝试使用该cruft实用程序。 这个 Serverfault 问题对一些 GUI 应用程序有很好的想法,可以为您提供有关系统内容的可视化报告。

答案2

如果您在 vSphere 中扩展了正在运行的磁盘的大小,则需要使用以下命令重新扫描 scsi 总线:

回显“- - -”> /sys/class/scsi_host/host#/scan

其中 # 是主机号码(默认为 0)。

然后,您将看到磁盘的新大小,并且您将能够使用 e2extend 扩展文件系统

相关内容