我在互联网上找到了大量关于此错误的帖子:
wrong fs type, bad option, bad superblock on /dev/xxx,missing codepage or helper program, or other error
但我从未发现过在启动时“有时”出现错误的情况。
每当我启动我的 Linux 机器时,我有时会收到提到的错误,有时它工作正常。这大约是 50/50 的机会,但我还没有以任何方式看到任何模式。
如果出现错误,我只需重新启动并重试;这半年来我一直在做这个事情。 3 靴子通常是最大的n。很多时候我必须启动才能到达桌面。
如果我尝试在紧急 shell 中安装驱动器,则不会弹出任何错误,并且我可以毫无问题地向驱动器写入/读取。
我想知道这是否是一个可修复的问题,或者我是否应该寄回 NVME 驱动器(它仍然有保修)。
Kernel: 6.2.8-alderlake-xanmod1-1 (Xanmod + GCC optimizations)
OS: ArchLinux
Drive: Kingston KC3000 PCIe 4.0, 1TB, bought separately from the laptop
Laptop: Rog Zephyrus m16
编辑:我有两个带有 Windows/Linux 双启动的驱动器。 Linux 尝试引导 /dev/nvme1n1p1,但我刚刚发现从紧急 shell 中我只能挂载 /dev/nvme0n1p1,这实际上是应该引导的 linux 根目录。每当我启动到桌面时, fdisk -l 都会显示 linux 驱动器被正确标记为 nvme1n1p1,因此我认为系统只有在 linux 驱动器被分配为“nvme1”并且 Windows 驱动器被分配时才能启动被分配为“nvme0”。我已使用 EFISTUB 手动指定内核命令行,如下所示:
root=/dev/nvme1n1p1 resume=/dev/nvme1n1p2 rw quiet modprobe.blacklist=nouveau ibt=off initrd=\initramfs-linux-xanmod.img
答案1
问题:我告诉内核启动“/dev/nvme1”,而不是使用标签或分区 UUID;这导致 Windows 驱动器有时被发现为“nvme0”,有时被发现为“nvme1”。每当 Windows 驱动器出现“nvme1”(大约 50% 的时间)时,系统就会因为 fat-fs 问题而无法启动它(幸运的是,我认为)。我现在正在通过使用分区标签或 UUID 而不是路径来解决,这实际上是建议的,现在我知道为什么了。
令人惊奇的是,在网上提出问题突然就能让你找到解决方案;抱歉,有毛病。