CentOS掛載分區表損壞的解決方法
分區表損壞后,需通過救援模式操作以避免系統干擾。使用CentOS安裝光盤或U盤啟動,進入BIOS設置將啟動順序調整為光盤/USB優先;選擇“Troubleshooting”→“Rescue a CentOS system”→“3) Skip to shell”,進入命令行救援環境。
TestDisk是開源分區恢復工具,支持MBR/GPT分區表及ext2/3/4、XFS、NTFS等多種文件系統,操作簡便且恢復率高。
sudo yum install testdisk -y
(CentOS 7及以下)或sudo dnf install testdisk -y
(CentOS 8及以上)。sudo testdisk
,選擇“Create”創建日志文件;選擇目標磁盤(如/dev/sda
)并按Enter;選擇分區表類型(Intel適用于MBR/GPT,EFI GPT適用于UEFI磁盤);依次選擇“Analyse”→“Quick Search”進行快速掃描(若未找到,可選擇“Deeper Search”深度掃描)。P
鍵預覽分區內的文件(確認文件完整);選中需恢復的分區,按Enter
標記為“*”(激活);選擇“Write”將新分區表寫入磁盤,輸入Y
確認;退出TestDisk并重啟系統。若系統采用LVM(邏輯卷管理),可通過LVM備份恢復邏輯卷:
cat /etc/lvm/backup/centos
(默認備份路徑),記錄物理卷(PV)、卷組(VG)、邏輯卷(LV)的名稱及大小。vgcfgrestore -f --test /etc/lvm/backup/centos centos
測試備份文件有效性,確認無誤后執行vgcfgrestore -f /etc/lvm/backup/centos centos
恢復VG配置。vgchange -ay centos
激活卷組;掛載邏輯卷(如mount /dev/mapper/centos-root /mnt
),若文件系統報錯,使用xfs_repair /dev/mapper/centos-root
(XFS文件系統)或fsck -y /dev/mapper/centos-root
(ext3/4文件系統)修復。若之前備份過分區表,可通過dd命令快速恢復:
dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446
(將MBR分區表備份到/data/dpt.img
)。dd if=/data/dpt.img of=/dev/sda bs=1 seek=446
(將備份的分區表寫入磁盤)。分區表恢復后,若仍無法掛載,需修復文件系統錯誤:
Ctrl+C
進入GRUB菜單,編輯啟動項(在linux16
行末尾添加rd.break
),按Ctrl+X
啟動;執行mount -o remount,rw /sysroot
重新掛載根分區為可寫;chroot /sysroot
切換到系統根環境。fsck -y /dev/sda1
(替換為損壞的分區設備名,如/dev/sda2
),自動修復文件系統錯誤;修復完成后執行exit
退出chroot,重啟系統。rsync
或移動硬盤),避免修復過程中數據覆蓋。dd
命令、parted mklabel
等操作會清除磁盤數據,僅在確認數據已備份時使用。