Arch:启动时未找到根分区

Arch:启动时未找到根分区

由于未知原因,我的系统停止启动。
现在,10 秒后它无法找到我的根分区,并将我置于无法检测到键盘的紧急 shell 中

系统崩溃

到目前为止,我所做的是从 Live CD 启动并运行以下命令。

使用 sdc7 我的根分区
sudo su mkdir /mnt mount /dev/sdc7 /mnt

使用 sdc2 我的 EFI 分区
mkdir /mnt/boot mount /dev/sdc2 /mnt/boot

modprobe efivars mount -t proc proc /mnt/proc mount -t sysfs sys /mnt/sys mount -o bind /dev /mnt/dev mount -t devpts pts /mnt/dev/pts/ mount -t efivarfs efivarfs /sys/firmware/efi/efivars chroot /mnt

pacman -Syu mkinitcpio -P grub-mkconfig -o /boot/grub/grub.cfg "$@"

没有成功

注意:我认为照片上的 acpi 错误并不新鲜

谢谢

答案1

这是 systemd 的 udev 中的一个错误(更准确地说是udevadm和之间的通信udevd),影响发行版 udev 240,但不影响 initramfs 中的 systemd 240。

对于 Archlinux: FS#61328 - udev 240 无法识别键盘

我对 Debian 的回答那里

结果是枚举/dev缺失或不完整。这可以防止/dev/disk/树被填充,包括 UUID 符号链接。它还会阻止键盘检测等。

通常的修复方法是恢复到 udev 239(因此在您的 之后chroot)并重建 initramfs。如果在 Archlinux 上可行的话,让 systemd(不是 busybox)在 initramfs 期间处理启动也可能解决这个问题(因为某些设置会获得更大的缓冲区用于然后之间的通信udevadm) 。udevd

上游错误报告、修复建议并修复提交。它归结为允许更大的通信缓冲区(并且可能不是最好的解决方案):

udev 无法触发模块加载 #11314
将 systemd-udevd 监视器缓冲区大小设置为 128MB #11389
sd-device-monitor:修复设置缓冲区大小的顺序

相关内容