老实说,我不知道这是怎么发生的,据我所知,我只使用 openSUSE Tumbleweed(我的第一个发行版),但在某些时候我无法再在 Fedora(我的第二个发行版)上启动。
我无法真正理解日志和错误,因此这里有一些信息,请随意询问更多信息:
正确启动的 Fedora 的挂载树是(当它仍然有效时):
/dev/nvme0n1p1
镶嵌在/boot/efi
/dev/nvme0n1p2
镶嵌在/boot
/dev/nvme0n1p4
镶嵌在/
- 和
swapon
/dev/nvme0n1p3
。
我目前正在运行 openSUSE Tumbleweed /dev/sda1
(并且有一个/dev/sda2
交换分区)。这些是我的两个磁盘上的所有分区。
发现问题的最简单方法是在 openSUSE 中执行此操作:
> sudo mount /dev/nvme0n1p4 /mnt
mount: /mnt: can't read superblock on /dev/nvme0n1p4.
dmesg(1) may have more information after failed mount system call.
另一种方法是在 Fedora 上启动,并在进入修复控制台后查找错误。我也这样做了,这是日志的最后几行(rdsosreport.txt
):
[ 5.974350] gamestation systemd[1]: Mounting sysroot.mount - /sysroot...
[ 5.984799] gamestation kernel: BTRFS info (device nvme0n1p4): using crc32c (crc32c-intel) checksum algorithm
[ 5.984820] gamestation kernel: BTRFS info (device nvme0n1p4): using free space tree
[ 6.016320] gamestation kernel: BTRFS info (device nvme0n1p4): enabling ssd optimizations
[ 6.016329] gamestation kernel: BTRFS info (device nvme0n1p4): auto enabling async discard
[ 6.016333] gamestation kernel: BTRFS info (device nvme0n1p4): start tree-log replay
[ 6.016557] gamestation kernel: BTRFS error (device nvme0n1p4): parent transid verify failed on logical 75616649216 mirror 1 wanted 3774 found 3773
[ 6.016741] gamestation kernel: BTRFS error (device nvme0n1p4): parent transid verify failed on logical 75616649216 mirror 2 wanted 3774 found 3773
[ 6.016755] gamestation kernel: BTRFS warning (device nvme0n1p4): failed to read log tree
[ 6.019725] gamestation mount[509]: mount: /sysroot: can't read superblock on /dev/nvme0n1p4.
[ 6.019725] gamestation mount[509]: dmesg(1) may have more information after failed mount system call.
[ 6.019962] gamestation kernel: BTRFS error (device nvme0n1p4): open_ctree failed
[ 6.020361] gamestation systemd[1]: sysroot.mount: Mount process exited, code=exited, status=32/n/a
[ 6.020489] gamestation systemd[1]: sysroot.mount: Failed with result 'exit-code'.
[ 6.027539] gamestation systemd[1]: Failed to mount sysroot.mount - /sysroot.
[ 6.027691] gamestation systemd[1]: Dependency failed for initrd-root-fs.target - Initrd Root File System.
[ 6.027749] gamestation systemd[1]: Dependency failed for initrd-parse-etc.service - Mountpoints Configured in the Real Root.
[ 6.027796] gamestation systemd[1]: initrd-parse-etc.service: Job initrd-parse-etc.service/start failed with result 'dependency'.
[ 6.027841] gamestation systemd[1]: initrd-parse-etc.service: Triggering OnFailure= dependencies.
[ 6.028086] gamestation systemd[1]: initrd-root-fs.target: Job initrd-root-fs.target/start failed with result 'dependency'.
[ 6.028137] gamestation systemd[1]: initrd-root-fs.target: Triggering OnFailure= dependencies.
[ 6.028698] gamestation systemd[1]: Stopped target basic.target - Basic System.
[ 6.028859] gamestation systemd[1]: Reached target initrd-fs.target - Initrd File Systems.
[ 6.028909] gamestation systemd[1]: Stopped target sysinit.target - System Initialization.
[ 6.028965] gamestation systemd[1]: dracut-initqueue.service: Deactivated successfully.
[ 6.039256] gamestation systemd[1]: Stopped dracut-initqueue.service - dracut initqueue hook.
[ 6.039569] gamestation systemd[1]: dracut-pre-udev.service: Deactivated successfully.
[ 6.048075] gamestation systemd[1]: Stopped dracut-pre-udev.service - dracut pre-udev hook.
[ 6.048196] gamestation systemd[1]: dracut-cmdline.service: Deactivated successfully.
[ 6.054063] gamestation systemd[1]: Stopped dracut-cmdline.service - dracut cmdline hook.
[ 6.054162] gamestation systemd[1]: dracut-cmdline-ask.service: Deactivated successfully.
[ 6.060064] gamestation systemd[1]: Stopped dracut-cmdline-ask.service - dracut ask for additional cmdline parameters.
[ 6.070201] gamestation systemd[1]: Started emergency.service - Emergency Shell.
[ 6.070605] gamestation systemd[1]: Reached target emergency.target - Emergency Mode.
[ 6.070690] gamestation systemd[1]: Startup finished in 9.729s (firmware) + 7.721s (loader) + 1.540s (kernel) + 0 (initrd) + 4.529s (userspace) = 23.521s.
[ 6.087557] gamestation systemd[1]: Received SIGRTMIN+21 from PID 426 (plymouthd).
[ 6.100118] gamestation systemd[1]: Received SIGRTMIN+21 from PID 426 (plymouthd).
最后输出结束dmesg
:
[ 17.184467] sddm-greeter[1856]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set
[ 22.770519] wlp1s0: authenticate with 7c:16:89:d7:b9:b4
[ 22.817934] wlp1s0: send auth to 7c:16:89:d7:b9:b4 (try 1/3)
[ 22.818996] wlp1s0: authenticated
[ 22.823705] wlp1s0: associate with 7c:16:89:d7:b9:b4 (try 1/3)
[ 22.826980] wlp1s0: RX AssocResp from 7c:16:89:d7:b9:b4 (capab=0x511 status=0 aid=117)
[ 22.830069] wlp1s0: associated
[ 22.830376] ath: EEPROM regdomain: 0x80fa
[ 22.830383] ath: EEPROM indicates we should expect a country code
[ 22.830387] ath: doing EEPROM country->regdmn map search
[ 22.830391] ath: country maps to regdmn code: 0x37
[ 22.830395] ath: Country alpha2 being used: FR
[ 22.830400] ath: Regpair used: 0x37
[ 22.830404] ath: regdomain 0x80fa dynamically updated by country element
[ 22.873404] wlp1s0: Limiting TX power to 23 (23 - 0) dBm as advertised by 7c:16:89:d7:b9:b4
[ 31.647894] warning: `kded5' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211
[ 32.940643] Bluetooth: RFCOMM TTY layer initialized
[ 32.940654] Bluetooth: RFCOMM socket layer initialized
[ 32.940660] Bluetooth: RFCOMM ver 1.11
[ 810.731875] BTRFS info (device sda1): qgroup scan paused
[ 845.654708] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
这就是我的处境。我已经在所有四个分区上以 root 身份运行fsck
,但只有dev/nvme0n1p2
( /boot
) 我得到了真正的输出。对于/dev/nvmesd4
,唯一的输出是fsck some-version-number
,并且我仍然遇到这个超级块问题。
有人可以帮忙吗? (如果我能尽快拿回我的 Fedora,我真的很感激,因为我有一些事情需要它......)
谢谢!
编辑:我终于发现重新排列分区的正确工具是btrfs
或btrfs filesystem
。所以我在网上做了一些研究,尝试了一些命令,现在一切正常。我不太记得了(而且我现在无法检查我的 TW 的历史记录),但我想我跑了:
sudo btrfs rescue super-recover -v /dev/nvme0n1p4
;sudo btrfs rescue zero-log /dev/nvme0n1p4
我不知道这些命令是否是我使用的确切命令,但一旦你知道了这一点,我想用谷歌搜索你需要的东西就非常简单了。
我希望有一天这会对某人有所帮助!