因此,我的 Fedora Linux 机器在更新期间崩溃了,现在无法正常启动。我在用着系统救援光盘尝试恢复硬盘驱动器的内容。
按照步骤进行在这篇文章中,我完成了以下操作,并与每个命令的相应输出一起显示。
首先我列出分区:
root@sysresccd /root % fdisk -l
Disk /dev/loop0: 338.5 MiB, 354885632 bytes, 693136 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x283f70c2
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 83 Linux
/dev/sda2 1026048 1000214527 999188480 476.5G 8e Linux LVM
Disk /dev/mapper/fedora-swap: 7.6 GiB, 8187281408 bytes, 15990784 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 7.5 GiB, 8076132352 bytes, 15773696 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x29ca9ce2
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 7641087 7639040 3.7G b W95 FAT32
我要访问的硬盘位于sda2,所以我尝试挂载它。
root@sysresccd /root % mkdir /mnt/old
root@sysresccd /root % mount /dev/sda2 /mnt/old
mount: unknown filesystem type 'LVM2_member'
因此无法安装硬盘,因为它无法识别文件系统。
使用 lvm2 工具,我进行磁盘扫描
root@sysresccd /root % lvmdiskscan
/dev/loop0 [ 338.45 MiB]
/dev/mapper/fedora-swap [ 7.62 GiB]
/dev/sda1 [ 500.00 MiB]
/dev/sda2 [ 476.45 GiB] LVM physical volume
/dev/sdb1 [ 3.64 GiB]
1 disk
3 partitions
0 LVM physical volume whole disks
1 LVM physical volume
使用 lvdisplay 我获取逻辑卷 (LV) 名称和卷组 (VG) 名称
root@sysresccd /root % lvdisplay
WARNING: Unrecognised segment type thin-pool
WARNING: Unrecognised segment type thin
--- Logical volume ---
LV Path /dev/fedora/pool00
LV Name pool00
VG Name fedora
LV UUID Ye2FvY-Sx80-znoh-aYdi-Q5wM-e0W3-UPaQtA
LV Write Access read/write
LV Creation host, time localhost, 2016-01-04 15:59:45 +0000
LV Status NOT available
LV Size 452.82 GiB
Current LE 115922
Segments 1
Allocation inherit
Read ahead sectors auto
--- Logical volume ---
LV Path /dev/fedora/root
LV Name root
VG Name fedora
LV UUID DLcLQA-VcRn-u7fQ-sWaL-v9cY-M5EW-F3ZFuN
LV Write Access read/write
LV Creation host, time localhost, 2016-01-04 15:59:46 +0000
LV Status NOT available
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
--- Logical volume ---
LV Path /dev/fedora/home
LV Name home
VG Name fedora
LV UUID aTrVab-urfB-u0xU-zoit-PK8H-l5Sf-2MfaXV
LV Write Access read/write
LV Creation host, time localhost, 2016-01-04 15:59:48 +0000
LV Status NOT available
LV Size 402.82 GiB
Current LE 103122
Segments 1
Allocation inherit
Read ahead sectors auto
--- Logical volume ---
LV Path /dev/fedora/swap
LV Name swap
VG Name fedora
LV UUID MuFrai-TMdG-uiap-y7fh-5lhU-dYlL-cjjBAZ
LV Write Access read/write
LV Creation host, time localhost, 2016-01-04 15:59:51 +0000
LV Status available
# open 0
LV Size 7.62 GiB
Current LE 1952
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
vgdisplay 命令也给出类似的信息
root@sysresccd /root % vgdisplay
WARNING: Unrecognised segment type thin-pool
WARNING: Unrecognised segment type thin
--- Volume group ---
VG Name fedora
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 476.45 GiB
PE Size 4.00 MiB
Total PE 121971
Alloc PE / Size 117932 / 460.67 GiB
Free PE / Size 4039 / 15.78 GiB
VG UUID WduLzz-NwqH-DXYy-8fQy-ojos-SDi4-EmmHs5
现在我尝试了一个新的挂载,使用 LV 名称路径:
root@sysresccd /root % mount /dev/fedora/home /mnt/old
mount: special device /dev/fedora/home does not exist
它仍然拒绝安装。
lvscan 显示逻辑卷的状态
root@sysresccd /root % lvscan
WARNING: Unrecognised segment type thin-pool
WARNING: Unrecognised segment type thin
inactive '/dev/fedora/pool00' [452.82 GiB] inherit
inactive '/dev/fedora/root' [50.00 GiB] inherit
inactive '/dev/fedora/home' [402.82 GiB] inherit
ACTIVE '/dev/fedora/swap' [7.62 GiB] inherit
如您所见,它仍然处于非活动状态并且未安装。此外,还有两个关于无法识别的段类型的警告。
因此,即使我继续执行给定的说明并将设备映射模块 dm-mod 添加到内核:
root@sysresccd /root % modprobe dm-mod
然后我更改卷组的属性:
root@sysresccd /root % vgchange -ay
WARNING: Unrecognised segment type thin-pool
WARNING: Unrecognised segment type thin
Refusing activation of LV pool00 containing an unrecognised segment.
Refusing activation of LV root containing an unrecognised segment.
Refusing activation of LV home containing an unrecognised segment.
1 logical volume(s) in volume group "fedora" now active
但由于无法识别的段,属性不会改变,并且逻辑卷保持不活动状态。
root@sysresccd /root % lvscan
WARNING: Unrecognised segment type thin-pool
WARNING: Unrecognised segment type thin
inactive '/dev/fedora/pool00' [452.82 GiB] inherit
inactive '/dev/fedora/root' [50.00 GiB] inherit
inactive '/dev/fedora/home' [402.82 GiB] inherit
ACTIVE '/dev/fedora/swap' [7.62 GiB] inherit
我不知道“thin”和“thin-pool”在这种情况下意味着什么,但很明显它们正在阻止对旧分区的访问。
因此,如果有人能发现问题,请告诉如何解决它。
答案1
这似乎是旧版本 LVM 中的一个错误。可以通过使用一组不同的标志从源代码进行编译来添加对瘦设备的支持来纠正该错误。我不能代表你提到的SystemRescueCD,因为我从未使用过它,但它可能使用旧版本的LVM,无论出于何种原因,这可能有这个错误。
既然您提到您正在运行 Fedora,您是否尝试过获取官方 Fedora ISO 映像来启动?在这里获取服务器版本:https://getfedora.org/en/server/download/
我建议使用服务器版本而不是桌面版本,因为可以使用故障排除选项。
只需从 ISO 映像(CD/DVD 或 USB 拇指驱动器)启动并启动救援模式即可。我测试的 Fedora 服务器 ISO 版本 23 似乎在读取我故意“破坏”文件系统的测试机器上的任何 LVM 卷时没有问题。当然,您的里程可能会有所不同。 :\
我还使用此处找到的精简配置工具取得了成功:https://github.com/jthornber/thin-provisioning-tools
从 Fedora ISO 启动后,您可能需要做一些跑腿工作才能让您的机器启动到足以安装工具的程度。如果可能的话,也许不在启动时安装损坏的安装点。