Linux
調整 ext4 分區大小而不會失去虛擬伺服器中的數據
我們有一個在 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,在其中啟動一個卷組和一個文件系統,將您的數據複製到新空間,然後將目前分區軟管,將其添加到卷組, 並展開它。
不管你做什麼,除非你有你的系統備份,否則不要做任何事情!