在為虛擬磁碟提供額外空間後調整 Linux VM 根分割區的大小

在為虛擬磁碟提供額外空間後調整 Linux VM 根分割區的大小

系統

  • Debian 6 / 32 位
  • 虛擬空間

目標

調整主分割區的大小以利用現在可用的所有資源。

問題

我增加了 Vsphere 中虛擬機器實例的磁碟空間,但是我是 Linux 新手,不知道如何:

  1. 看看這個新的可用空間(額外 13 個演出空間)
  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可能位於不同的分割區上 - 這些對於正常運作的系統也非常重要(儘管您可以在緊急情況下需要時解決它)。

您可能想了解一下ext2在線調整/分割區大小。我從來沒有用過它。如果您由於某種原因無法使用它或類似的工具,您可以以救援模式啟動系統,將所有內容複製到/臨時外部磁碟區(或第二個虛擬磁碟)上,重新分割區,然後將所有內容複製回來。

至於調查有問題的文件,通常首先您要檢查/var並刪除或修剪不需要保留的任何日誌文件(並定期執行此操作)。您可能還想從中刪除不需要的東西/home,並嘗試aptitude刪除任何不需要的套件。最後您可以嘗試使用該cruft實用程式。 這個伺服器故障問題對一些 GUI 應用程式有很好的想法,這些應用程式可以為您提供有關係統上內容的視覺化報告。

答案2

如果您擴充了 vSphere 中正在執行的磁碟的大小,則需要使用下列命令重新掃描 scsi 總線:

echo "- - -" > /sys/class/scsi_host/host#/scan

其中 # 是主機編號(預設為 0)。

然後,您將看到磁碟的新大小,並且您將能夠使用 e2extend 擴充檔案系統

相關內容