BTRFS文件系统超级块损坏导致LVM逻辑卷无法挂载,系统无法启动求助
BTRFS文件系统超级块损坏导致LVM逻辑卷无法挂载,系统无法启动求助
系统背景
我大概一个月前完成了新Arch系统的搭建,用了两块NVMe硬盘:
- nvme0n1:2TB的铠侠EXCERIA PLUS G2
- nvme3n1:1TB的英睿达P5
按照Arch Wiki的步骤,我把两块盘做成物理卷,创建了LVM逻辑卷,再在上面格式化了BTRFS分区作为系统盘。
故障发生过程
前几天系统盘突然变成只读模式,重启后恢复正常,当时没太在意。今天早上又出现只读,重启后直接无法启动,报错如下:
mount: /new_root: can't read superblock on /dev/mapper/vg.fermat-lv.fermat
ERROR: Failed to mount '/dev/mapper/vg.fermat-lv.fermat' on real root
You are now being dropped into an emergency shell.
现在我用Live CD启动,正在排查问题,但卡住了。
当前排查信息
LVM相关信息
[root@ArcoLinuxB-plasma liveuser]# pvdisplay --- Physical volume --- PV Name /dev/nvme0n1p2 VG Name vg.fermat PV Size <1.82 TiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 476803 Free PE 0 Allocated PE 476803 PV UUID 1yXIyW-r3kZ-TRRW-VyVs-dwtW-GtWZ-HA2BkO --- Physical volume --- PV Name /dev/nvme3n1p1 VG Name vg.fermat PV Size 931.51 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 238466 Free PE 0 Allocated PE 238466 PV UUID B4BQsn-pffm-fMfw-QjPb-22da-v13l-vbcoiz
[root@ArcoLinuxB-plasma liveuser]# vgdisplay --- Volume group --- VG Name vg.fermat System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size <2.73 TiB PE Size 4.00 MiB Total PE 715269 Alloc PE / Size 715269 / <2.73 TiB Free PE / Size 0 / 0 VG UUID ayLDzU-tD0J-AQyN-G3lV-BdgH-wn9D-TbRZsp
[root@ArcoLinuxB-plasma liveuser]# lvdisplay --- Logical volume --- LV Path /dev/vg.fermat/lv.fermat LV Name lv.fermat VG Name vg.fermat LV UUID NxCCrP-cA6K-4eZh-2O2p-gaBs-rSex-jh2MJR LV Write Access read/write LV Creation host, time archiso, 2023-11-27 15:49:45 +0000 LV Status available # open 0 LV Size <2.73 TiB Current LE 715269 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1
文件系统挂载与检测情况
尝试挂载逻辑卷失败:
[root@ArcoLinuxB-plasma liveuser]# mount /dev/vg.fermat/lv.fermat /mnt/test mount: /mnt/test: can't read superblock on /dev/mapper/vg.fermat-lv.fermat. dmesg(1) may have more information after failed mount system call.
用dumpe2fs检测(误操作,因为是BTRFS):
[root@ArcoLinuxB-plasma liveuser]# dumpe2fs -h /dev/vg.fermat/lv.fermat dumpe2fs 1.47.0 (5-Feb-2023) dumpe2fs: Bad magic number in super-block while trying to open /dev/vg.fermat/lv.fermat Couldn't find valid filesystem superblock. /dev/vg.fermat/lv.fermat contains a btrfs file system labelled 'Root'
检测物理盘同样报错:
[root@ArcoLinuxB-plasma liveuser]# dumpe2fs -h /dev/nvme0n1 dumpe2fs 1.47.0 (5-Feb-2023) dumpe2fs: Bad magic number in super-block while trying to open /dev/nvme0n1 Couldn't find valid filesystem superblock. /dev/nvme0n1 contains `DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x3ff,255,63), startsector 1, 3907029167 sectors, extended partition table (last)' data
[root@ArcoLinuxB-plasma liveuser]# dumpe2fs -h /dev/nvme3n1 dumpe2fs 1.47.0 (5-Feb-2023) dumpe2fs: Bad magic number in super-block while trying to open /dev/nvme3n1 Couldn't find valid filesystem superblock. /dev/nvme3n1 contains `DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x3ff,255,63), startsector 1, 1953525167 sectors, extended partition table (last)' data
磁盘分区信息(fdisk -l)
[root@ArcoLinuxB-plasma liveuser]# fdisk -l Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: T-FORCE 1TB 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: gpt Disk identifier: F844A08E-4F0E-46B5-B392-B36AAF2495D3 Device Start End Sectors Size Type /dev/sda1 2048 1953523711 1953521664 931.5G Linux filesystem Disk /dev/sdb: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: T-FORCE 1TB 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: gpt Disk identifier: 9D2D5B13-1C00-554A-9F37-400A05AC3B5F Device Start End Sectors Size Type /dev/sdb1 2048 1953521663 1953519616 931.5G Microsoft basic data Disk /dev/nvme0n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors Disk model: KIOXIA-EXCERIA PLUS G2 SSD 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: gpt Disk identifier: C61199F3-F473-42D5-80B5-60BD7C0DFE06 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 1050623 1048576 512M EFI System /dev/nvme0n1p2 1050624 3907028991 3905978368 1.8T Linux filesystem Disk /dev/nvme2n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors Disk model: Samsung SSD 960 PRO 512GB 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: gpt Disk identifier: 1E1A4C9E-E48E-4848-9EC6-DCB3FA1A5817 Device Start End Sectors Size Type /dev/nvme2n1p1 2048 206847 204800 100M EFI System /dev/nvme2n1p2 206848 239615 32768 16M Microsoft reserved /dev/nvme2n1p3 239616 998932479 998692864 476.2G Microsoft basic data /dev/nvme2n1p4 998932480 1000212479 1280000 625M Windows recovery environment Disk /dev/nvme1n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors Disk model: Samsung SSD 960 PRO 512GB 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: gpt Disk identifier: 8FCA4CDE-8E68-47B8-A973-991CCEE89354 Device Start End Sectors Size Type /dev/nvme1n1p1 40 409639 409600 200M EFI System /dev/nvme1n1p2 409640 1000215175 999805536 476.7G Apple APFS Disk /dev/nvme3n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: CT1000P5PSSD8 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: gpt Disk identifier: B76AA81C-93F9-4489-8E50-7AF9B725D84F Device Start End Sectors Size Type /dev/nvme3n1p1 2048 1953523711 1953521664 931.5G Linux filesystem Disk /dev/sdc: 58.59 GiB, 62914560000 bytes, 122880000 sectors Disk model: MyUSB Drive 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: 0xf70f22b6 Device Boot Start End Sectors Size Id Type /dev/sdc1 * 2048 122814463 122812416 58.6G 7 HPFS/NTFS/exFAT /dev/sdc2 122814464 122879999 65536 32M ef EFI (FAT-12/16/32) Disk /dev/mapper/ventoy: 2.45 GiB, 2634657792 bytes, 5145816 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: 0xfcb65ee5 Device Boot Start End Sectors Size Id Type /dev/mapper/ventoy-part1 * 64 5114431 5114368 2.4G 0 Empty /dev/mapper/ventoy-part2 5114432 5145151 30720 15M ef EFI (FAT-12/16/32) Disk /dev/loop0: 2.31 GiB, 2481229824 bytes, 4846152 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/mapper/vg.fermat-lv.fermat: 2.73 TiB, 3000055627776 bytes, 5859483648 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
后续排查更新
EDIT 1:找到备份超级块信息
我强行用mke2fs -n命令(本来是针对ext文件系统的),意外得到了备份超级块的位置:
[root@ArcoLinuxB-plasma liveuser]# mke2fs -n /dev/vg.fermat/lv.fermat mke2fs 1.47.0 (5-Feb-2023) /dev/vg.fermat/lv.fermat contains a btrfs file system labelled 'Root' Proceed anyway? (y,N) y Creating filesystem with 732435456 4k blocks and 183115776 inodes Filesystem UUID: 3964e616-a731-49c1-80e5-e27777a87a39 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 112
相关产品推荐
相关产品推荐

