如何在centos中恢复丢失的分区
导读:如何在CentOS中恢复丢失的分区 分区丢失是CentOS系统中常见的问题,可能由误操作、分区表损坏、硬盘故障等原因引起。恢复前需立即停止对目标磁盘的写入操作(如卸载分区、断开网络),避免新数据覆盖原有数据,降低恢复成功率。以下是具体恢复方...
如何在CentOS中恢复丢失的分区
分区丢失是CentOS系统中常见的问题,可能由误操作、分区表损坏、硬盘故障等原因引起。恢复前需立即停止对目标磁盘的写入操作(如卸载分区、断开网络),避免新数据覆盖原有数据,降低恢复成功率。以下是具体恢复方法:
一、准备工作
- 备份重要数据:无论采用何种恢复方法,先备份磁盘中未丢失的重要数据(如通过Live USB挂载到其他存储设备),防止恢复过程中二次丢失。
- 准备恢复介质:下载CentOS安装ISO,制作Live USB(可使用
dd
命令或Rufus工具),用于进入救援模式。 - 确认分区类型:通过
lsblk
或fdisk -l
命令查看磁盘分区情况,判断丢失分区是否属于LVM逻辑卷(需用LVM工具恢复)或普通分区(可用TestDisk、extundelete等工具)。
二、使用TestDisk工具恢复普通分区
TestDisk是一款开源分区恢复工具,支持恢复丢失的分区表、修复分区结构,适用于ext3/ext4、NTFS等文件系统。
步骤如下:
- 安装TestDisk:在CentOS终端运行
yum install testdisk -y
(需联网)。 - 运行TestDisk:以root权限执行
sudo testdisk
,进入交互界面。 - 选择磁盘:按提示选择丢失分区的磁盘(如
/dev/sda
),按Enter确认。 - 选择分区表类型:默认选择“Intel”(适用于MBR分区表),若为GPT分区表则选“EFI GPT”,按Enter继续。
- 扫描丢失分区:选择“Analyze”(分析)→“Quick Search”(快速扫描),若未找到可尝试“Deep Search”(深度扫描)。
- 恢复分区:找到丢失分区后,按
P
键查看分区内的文件(确认是否为目标分区),再按W
键将分区表写入磁盘(此操作不可逆,需谨慎)。 - 重启系统:退出TestDisk,重启CentOS,通过
lsblk
命令检查分区是否恢复。
三、使用extundelete恢复ext3/ext4文件系统数据
若分区未格式化且使用ext3/ext4文件系统,extundelete可通过文件系统日志恢复数据(需卸载分区,避免覆盖)。
步骤如下:
- 安装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逻辑卷恢复(适用于LVM管理的分区)
若丢失分区属于LVM逻辑卷(如/
、/home
等挂载点),需通过LVM工具重建物理卷(PV)、卷组(VG)和逻辑卷(LV)。
步骤如下:
- 进入救援模式:使用CentOS安装光盘或Live USB启动,选择“Troubleshooting”→“Rescue a CentOS system”,进入救援环境。
- 查看LVM备份信息:运行
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文件系统)修复。 - 重启系统:退出救援模式,重启CentOS,检查LVM状态(
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分区恢复(特殊场景)
若/boot
分区丢失,系统无法启动,需进入救援模式修复:
- 进入救援模式:使用安装光盘启动,选择“Rescue a CentOS system”。
- 挂载根分区:运行
mount /dev/sdXY /mnt
(/dev/sdXY
为根分区,如/dev/sda3
)。 - 重新安装内核和GRUB:
- 挂载
/boot
目录:mount /dev/sdXZ /mnt/boot
(/dev/sdXZ
为/boot
分区,如/dev/sda1
)。 - 重新安装内核:
rpm -ivh /mnt/Packages/kernel-xxxx --force
(xxxx
为内核版本,需从/mnt/Packages/
目录找到对应包)。 - 修复GRUB:
chroot /mnt
→grub2-install /dev/sdX
(/dev/sdX
为磁盘,如/dev/sda
)→grub2-mkconfig -o /boot/grub2/grub.cfg
。
- 挂载
- 重启系统:退出救援模式,重启CentOS,检查
/boot
分区是否恢复。
注意事项
- 数据恢复成功率:取决于删除后是否有大量写入操作(如复制、下载文件),若数据非常重要,建议寻求专业数据恢复服务。
- LVM恢复前提:需有LVM备份文件(
/etc/lvm/backup/centos
),若备份文件丢失,恢复难度较大。 - 手动重建风险:手动重建分区表需准确记住原分区大小、类型,操作失误可能导致数据彻底丢失。
通过以上方法,可根据分区类型和丢失场景选择合适的恢复方案。恢复前务必做好备份,避免二次损失。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在centos中恢复丢失的分区
本文地址: https://pptw.com/jishu/715017.html