页次: 1
我的系统分区使用的是btrfs,使用linux-lts(5.10.56-1)和linux-lily(5.10.52-1)内核可以进入系统,但是用linux和linux-zen(都是5.13.9)启动后会出现以下情况:
系统不认识根目录的文件系统,所以挂载根目录失败,于是系统启动失败;但是用5.10.x版本内核启动,一点问题都没有。
这是/etc/fstab里面根目录的条目:
# /dev/nvme0n1p5 LABEL=\134xe4\134xb8\134x8d\134xe7\134x9f\134xa5\134xe7\134x81\134xab\134xe6\134xad\134xa6\134xe5\134x99\134xa8\134xe8\134xbf\134x90\134xe8\134xbd\134xbd\134xe8\134xbd\134xa6
UUID=d7b8c7bb-e63e-4e21-b926-01f8ab106733 / btrfs rw,relatime,ssd,space_cache,subvolid=256,subvol=/system-root 0 0
下面是lsblk的输出:
NAME FSTYPE FSVER UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1 vfat FAT32 198E-4FD3 4.9G 2% /boot/efi
├─nvme0n1p2 ntfs 7E5A06C61CB44D8D
├─nvme0n1p3 ntfs E2920E69FDFB2F6A
├─nvme0n1p4 ext4 1.0 b3ee3e21-e589-4813-ba7b-cfa1b5b6911f
├─nvme0n1p5 btrfs d7b8c7bb-e63e-4e21-b926-01f8ab106733 210.4G 46% /
├─nvme0n1p6 ext4 1.0 b1a6d6a7-d24b-487a-87fb-28c6669972ed 15.2G 17% /mnt/LFS
└─nvme0n1p8 swap 1 bca466bf-8051-4b3a-9a0b-a38b982bcc0f [SWAP]
这样的情况怎么解决?
最近编辑记录 Negativ (2021-08-11 10:47:43)
离线
没仔细看fstab的愚蠢发言,编辑了fstab 里面把label换成uuid试试?我用的uuid,之前改过好几次btrfs根文件系统都没事(在保持uuid不变的情况下)
我系统目前只有linux-zen内核,并且实时更新
最近编辑记录 matrikslee (2021-08-11 21:43:04)
离线
你的 lsblk 是哪个内核列出来的?
在 emengency shell 里, ls /dev/nvme0* 看看?
离线
你的 lsblk 是哪个内核列出来的?
在 emengency shell 里, ls /dev/nvme0* 看看?
lsblk是用正常启动的内核列出来的(linux-lily和linux-lts)
emergency shell下可以看到/dev/nvme0,/dev/nvme0n1,/dev/nvme0n1p1到/dev/nvme0n1p8
离线
补充一下,即便在emergency shell里面手动挂载也会失败,不仅是系统分区,任何分区都不行
离线
fstab 里面把label换成uuid试试?我用的uuid,之前改过好几次btrfs根文件系统都没事(在保持uuid不变的情况下)
我系统目前只有linux-zen内核,并且实时更新
fstab里面使用的一直是uuid,grub.cfg里面也是按照uuid查找分区,grub里面几个启动菜单项,除了内核和initrd文件不一样,其它包括内核参数在内的所有内容完全一致
最近编辑记录 Negativ (2021-08-10 13:08:28)
离线
补充一下,即便在emergency shell里面手动挂载也会失败,不仅是系统分区,任何分区都不行
lsinitcpio /boot/initramfs-linux.img | grep btrfs 看看 initramfs 里是不是没有 btrfs 内核模块?
离线
Negativ 说:补充一下,即便在emergency shell里面手动挂载也会失败,不仅是系统分区,任何分区都不行
lsinitcpio /boot/initramfs-linux.img | grep btrfs 看看 initramfs 里是不是没有 btrfs 内核模块?
> lsinitcpio /boot/initramfs-linux.img | grep btrfs
usr/bin/fsck.btrfs
usr/lib/modules/5.13.9-arch1-1/kernel/btrfs.ko.zst
usr/lib/udev/rules.d/64-btrfs.rules
> lsinitcpio /boot/initramfs-linux-zen.img | grep btrfs
usr/bin/fsck.btrfs
usr/lib/modules/5.13.9-zen1-1-zen/kernel/btrfs.ko.zst
usr/lib/udev/rules.d/64-btrfs.rules
> lsinitcpio /boot/initramfs-linux-lily.img | grep btrfs
usr/bin/fsck.btrfs
usr/lib/modules/5.10.52-1-lily/kernel/btrfs.ko
usr/lib/udev/rules.d/64-btrfs.rules
> lsinitcpio /boot/initramfs-linux-lts.img | grep btrfs
usr/bin/fsck.btrfs
usr/lib/modules/5.10.56-1-lts/kernel/btrfs.ko
usr/lib/udev/rules.d/64-btrfs.rules
离线
咦, zst 压缩的模块,它就用不了了?
离线
我试了一下, btrfs.ko.zst 没问题呀。
离线
此帖终结,问题已解决:
在emergency shell里面用dmesg抓内核日志,发现btrfs报错:
BTRFS error (device nvme0n1p5): device total_bytes should at most 395136991232 but found 416611827712
BTRFS error (device nvme0n1p5): failed to read chunk tree: -22
BTRFS error (device nvme0n1p5): open_ctree_failed
然后我找到有人给Arch官方上报的bugFS#69778,按照评论建议运行了
sudo btrfs filesystem resize max /
,现在可以进入新内核了
离线
页次: 1