原因:/boot文件系统损坏:开机时两根可启动硬盘的连接线意外与主板断开,导致硬盘/boot文件系统崩溃。操作系统7可启动 2 x 320GB 整个硬盘由 LVM2 镜像(/dev/mapper/cl-root、/dev/mapper-cl-home 和 swap)在安装过程中。
我用 CD-ROM 启动,尝试修复损坏的根分区超级块,但没有成功。现在我把SATA->USB连接的驱动器连接到另一台CentOS 7服务器的USB端口,显示如下:
[root@localhost ~]# fdisk -l
..... (**ignore the current server internal drivers info here**)
--- below is the external USB SATA 320GB corrupted /boot drive -----
......
Disk /dev/sdg: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disk label type: dos
Disk identifier: 0xe9e67578
Device Boot Start End Blocks Id System
/dev/sdg1 * 2048 2099199 1048576 83 Linux
/dev/sdg2 606116385 625137344 9510480 7 HPFS/NTFS/exFAT
/dev/sdg3 2099200 606115839 302008320 8e Linux LVM
我的主要目的是从崩溃的启动盘中恢复主目录数据。我正在寻求您对以下可以实现此目标之一的帮助:
- 从损坏的硬盘中复制数据。
- 修复超级块以像以前一样启动(为了使这个问题尽可能简短,如果您认为这比 1 更容易,请告诉我,所以我有一个更长的故障排除代码可以粘贴在这里);
以下是我在 1) 上所做的详细信息:
- 从崩溃的硬盘中复制数据:
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2.7T 0 disk
......(ignore the internal disk, below is the USB HDD)....
sdg 8:96 0 298.1G 0 disk
├─sdg1 8:97 0 1G 0 part
├─sdg2 8:98 0 9.1G 0 part
└─sdg3 8:99 0 288G 0 part
sr0 11:0 1 4.1G 0 rom
我将所有 3 个切片安装到安装点上:但 /dev/sdg3 失败并出现以下错误 <<-- 这是我的关键问题:如何安装此切片以查看 HOME 数据? (显然数据不在 sdg1 和 sdg2 上)。
[root@localhost ~]# mount /dev/sdg1 /media/1
[root@localhost ~]# mount /dev/sdg2 /media/2
[root@localhost ~]# mount /dev/sdg3 /media/3
mount: unknown filesystem type 'LVM2_member'
[root@localhost ~]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
......
/dev/sdg2 9510476 8211864 1298612 87% /media/2
/dev/sdg1 1038336 300072 738264 29% /media/1
我尝试使用 testdisk 从 sdg3 转储数据,并输出文件 image.dd。然而,最后我发现这个 image.dd 文件仍然用 LVM2_member 包装:
[root@localhost home-gwu-old]# ls -l
total 302008328
-rw-r--r--. 1 root root 309256519680 Jan 5 19:34 image.dd
[root@localhost]# mount -o loop image.dd /media/3
mount: unknown filesystem type 'LVM2_member
任何您的帮助将不胜感激!戈登
答案1
通常,支持 LVM 的 Linux 系统可能会自动检测并激活它看到的任何 LVM 卷组,但在数据恢复情况下,您需要知道如何手动激活 VG/LV。
当处理健康状况不确定的 LVM 卷组时,将手册vgscan
作为第一步应该不会有什么坏处。如果它返回错误消息,您就会知道卷组因某种原因而损坏。
vgscan 之后,您可以vgchange -ay --activationmode degraded
先尝试。在大多数发行版中,这将是默认的自动激活,但您的发行版可能默认使用更严格的complete
激活模式。
如果这不起作用,请尝试vgchange -ay --activationmode partial
。如果此命令成功而上一个命令失败,请注意某些已激活的 LV 的一部分可能会丢失。
激活 VG 还会导致各个 LV 的设备节点出现。不过,在某些特殊情况下,您可能必须使用 显式创建设备节点vgscan --mknodes
。
如果 VG 成功激活(即使是部分激活),任何 LV 都应该在输出中可见lvs
。之后,您可以像往常一样尝试使用/dev/VGname/LVname
或/dev/mapper/VGname-LVname
命名方案安装 LV。