如何在CentOS中恢復丟失的分區
分區丟失是CentOS系統中常見的問題,可能由誤操作、分區表損壞、硬盤故障等原因引起?;謴颓靶?strong>立即停止對目標磁盤的寫入操作(如卸載分區、斷開網絡),避免新數據覆蓋原有數據,降低恢復成功率。以下是具體恢復方法:
dd
命令或Rufus工具),用于進入救援模式。lsblk
或fdisk -l
命令查看磁盤分區情況,判斷丟失分區是否屬于LVM邏輯卷(需用LVM工具恢復)或普通分區(可用TestDisk、extundelete等工具)。TestDisk是一款開源分區恢復工具,支持恢復丟失的分區表、修復分區結構,適用于ext3/ext4、NTFS等文件系統。
步驟如下:
yum install testdisk -y
(需聯網)。sudo testdisk
,進入交互界面。/dev/sda
),按Enter確認。P
鍵查看分區內的文件(確認是否為目標分區),再按W
鍵將分區表寫入磁盤(此操作不可逆,需謹慎)。lsblk
命令檢查分區是否恢復。若分區未格式化且使用ext3/ext4文件系統,extundelete可通過文件系統日志恢復數據(需卸載分區,避免覆蓋)。
步驟如下:
yum install extundelete -y
。umount /dev/sdXY
(如/dev/sda1
),否則跳過。extundelete /dev/sdXY --restore-all
(數據將恢復到當前目錄下的RECOVERED_FILES
文件夾)。extundelete /dev/sdXY --restore-directory /path/to/deleted/dir
。extundelete /dev/sdXY --restore-file /path/to/deleted/file
。RECOVERED_FILES
目錄,查看恢復的文件。若丟失分區屬于LVM邏輯卷(如/
、/home
等掛載點),需通過LVM工具重建物理卷(PV)、卷組(VG)和邏輯卷(LV)。
步驟如下:
cat /etc/lvm/backup/centos
(默認備份文件路徑),記錄物理卷(PV)的UUID。pvcreate --uuid "備份中的UUID" --restorefile /etc/lvm/backup/centos /dev/sdX
(如/dev/sdb1
)重建PV。vgcfgrestore -f --test /etc/lvm/backup/centos centos
(centos
為卷組名,需替換為實際名稱)測試恢復,成功后執行vgcfgrestore -f /etc/lvm/backup/centos centos
正式恢復。vgchange -ay centos
激活卷組,使用lvscan
查看邏輯卷狀態。xfs_repair /dev/centos/root
(XFS文件系統)或fsck -y /dev/centos/root
(ext4文件系統)修復。pvdisplay
、vgdisplay
、lvdisplay
)。若上述工具無法恢復,可嘗試手動重建分區表(需熟悉分區結構,風險較高)。
步驟如下:
sfdisk -d /dev/sdX > partition_table.bak
(如/dev/sda
),保存當前分區表。fdisk /dev/sdX
,輸入d
刪除所有分區(謹慎操作)。n
創建新分區,選擇分區類型(如主分區p
、邏輯分區l
),設置分區大?。▍⒖荚謪^大?。?,最后輸入w
保存分區表。mkfs.ext4 /dev/sdXY
(如/dev/sda1
)格式化分區(若為LVM分區,需先加入VG并激活LV)。mkdir /mnt/recovered
),運行mount /dev/sdXY /mnt/recovered
掛載,檢查數據是否恢復。若/boot
分區丟失,系統無法啟動,需進入救援模式修復:
mount /dev/sdXY /mnt
(/dev/sdXY
為根分區,如/dev/sda3
)。/boot
目錄:mount /dev/sdXZ /mnt/boot
(/dev/sdXZ
為/boot
分區,如/dev/sda1
)。rpm -ivh /mnt/Packages/kernel-xxxx --force
(xxxx
為內核版本,需從/mnt/Packages/
目錄找到對應包)。chroot /mnt
→grub2-install /dev/sdX
(/dev/sdX
為磁盤,如/dev/sda
)→grub2-mkconfig -o /boot/grub2/grub.cfg
。/boot
分區是否恢復。/etc/lvm/backup/centos
),若備份文件丟失,恢復難度較大。通過以上方法,可根據分區類型和丟失場景選擇合適的恢復方案?;謴颓皠毡刈龊脗浞?,避免二次損失。