Linux文件系統縮小分區操作指南
縮小Linux分區是一項需要謹慎操作的任務,不當操作可能導致數據丟失或系統損壞。以下是詳細的操作流程及注意事項,覆蓋非LVM和LVM環境:
備份重要數據
縮小分區存在數據丟失風險,必須提前備份目標分區上的所有重要數據??墒褂?code>rsync(增量備份)或tar(歸檔備份)工具,例如:
sudo rsync -av /path/to/target_partition /path/to/backup_location
確認分區狀態
lsblk查看磁盤及分區布局,確認目標分區的設備名稱(如/dev/sda3);df -h檢查分區是否已掛載,若已掛載需先卸載(見下一步)。卸載目標分區
若分區正在使用(如/home、/),需卸載以修改分區表。例如:
sudo umount /dev/sda3
若分區無法卸載(如提示“設備忙”),可使用fuser查找并終止占用進程:
sudo fuser -km /dev/sda3 # 終止占用進程
sudo umount /dev/sda3 # 再次嘗試卸載
檢查文件系統完整性
縮小文件系統前,需修復潛在錯誤。對于ext4/ext3文件系統,使用e2fsck:
sudo e2fsck -f /dev/sda3 # -f強制檢查,即使文件系統看起來正常
對于XFS文件系統,使用xfs_repair(但XFS不支持縮小,需備份后重新格式化):
sudo xfs_repair /dev/sda3
非LVM(傳統分區)環境下,需先縮小文件系統,再調整分區大小。
使用resize2fs工具調整文件系統大小,需指定目標容量(如50G):
sudo resize2fs /dev/sda3 50G
注:
resize2fs會自動檢測分區大小,但手動指定更安全。若分區未卸載,可使用-p選項(適用于ext4)。
進入parted交互模式,調整分區結束位置:
sudo parted /dev/sda
(parted) print # 查看分區表,確認分區號(如3)
(parted) resizepart 3 # 調整分區3的大小
End? [當前結束位置] 50GB # 輸入新的結束位置(如50GB)
(parted) quit # 退出并保存更改
注:
parted的resizepart命令會自動調整分區大小,無需手動計算起始位置。
重新掛載分區并檢查容量:
sudo mount /dev/sda3 /mnt
df -h /mnt # 確認分區大小已縮小至50G
LVM(邏輯卷管理)環境下,操作更靈活,需按“文件系統→邏輯卷”的順序調整。
與美國非LVM環境相同,先縮小文件系統:
sudo umount /dev/vg0/lv0 # 卸載邏輯卷(如掛載在/mnt/data)
sudo e2fsck -f /dev/vg0/lv0
sudo resize2fs /dev/vg0/lv0 20G # 縮小至20G
使用lvreduce工具調整邏輯卷大小,需指定目標容量(如20G):
sudo lvreduce -L 20G /dev/vg0/lv0
注:
-L后可跟絕對大?。ㄈ?code>20G)或相對大?。ㄈ?code>-5G,減少5G)。若邏輯卷上有數據,建議添加-r選項(自動調整文件系統,但僅支持ext4)。
重新掛載邏輯卷并檢查容量:
sudo mount /dev/vg0/lv0 /mnt
df -h /mnt # 確認邏輯卷大小已縮小至20G
若偏好圖形界面,可使用gparted(需安裝:sudo apt install gparted):
gparted:sudo gparted;/dev/sda);Resize/Move;Apply執行操作(需確認)。注:
gparted支持ext4、XFS等多種文件系統,但XFS縮小仍需備份數據。
文件系統兼容性:
分區順序:
縮小分區時,必須先縮小文件系統,再縮小分區。反之可能導致文件系統損壞。
系統分區處理:
若需縮小系統分區(如/),需使用Live CD/USB啟動(避免分區被占用),再進行操作。
數據備份:
所有操作前必須備份數據,尤其是XFS等不支持縮小的文件系統。
通過以上步驟,可安全縮小Linux分區。操作前務必確認分區類型、文件系統及數據備份,降低風險。