Linux

調整 ext4 分區大小而不會失去虛擬伺服器中的數據

  • July 4, 2011

我們有一個在 VMWare vSphere 上執行的虛擬 Linux 伺服器(Fedora Core 2.6.35.6-45.fc14.x86_64)。最初它有 3 個 SCSCI 驅動器,每個驅動器 32Gb。現在我們已經將安裝在“/home”下的磁碟擴展為 256GB。但顯然,Linux 伺服器在重新啟動後看不到這種變化。有沒有一種安全的方法可以將 ext4 分區從 32GB 擴展到 256GB 而不會失去任何數據?

在提出這個問題和許多使用 GParted 的建議之前,我已經在 Google 上進行了搜尋。但現在似乎不是我的選擇,因為我目前只能通過 shell 訪問該伺服器。

編輯:這是 df 的輸出:

[root@d0001-prf01 dmr]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/mapper/vg_d0011prf01-lv_root
             ext4    31705024   3385376  27997620  11% /
tmpfs        tmpfs     4098300        88   4098212   1% /dev/shm
/dev/sda1     ext4      495844     31317    438927   7% /boot
/dev/mapper/vg_d0011prf01-lv_home
             ext4    23674012  11840672  10630756  53% /home

如果需要,我可以提供更多分區資訊。

編輯:我可以看到該 Linux 伺服器上設置了 LVM:

lvm> lvs
 LV      VG            Attr   LSize  Origin Snap%  Move Log Copy%  Convert
 lv_home vg_d0011prf01 -wi-ao 22.94g
 lv_root vg_d0011prf01 -wi-ao 30.72g
 lv_swap vg_d0011prf01 -wi-ao  9.81g

這是否意味著我可以使用 lvresize 命令?

是的,假設您在卷組中有空間,看起來您可以使用 lvresize。

看看你是否有一些空閒空間:-

sudo vgs -v vg_d0011prf01

如果你這樣做了,那麼你可以使用來調整捲的大小。以下將增加 2Gig 的大小。

sudo lvextend -L+2G /dev/mapper/vg_d0011prf01-lv_home

然後使用 resize2fs 調整捲大小,例如:-

sudo resize2fs /dev/mapper/vg_d0011prf01-lv_home

有幾種工具可以重新調整分區大小,parted(或gparted用於圖形界面)可能是最好的選擇。這裡有兩個步驟。首先,您必須將分區擴展到新空間,然後您必須擴展文件系統以使用整個分區。

我建議切換到使用 LVM。管理這種變化的靈活性是值得付出努力的。您甚至可以在新的空白空間中添加一個新分區,在其中配置 LVM,在其中啟動一個卷組和一個文件系統,將您的數據複製到新空間,然後將目前分區軟管,將其添加到卷組, 並展開它。

不管你做什麼,除非你有你的系統備份,否則不要做任何事情!

引用自:https://serverfault.com/questions/286746