更新后无法启动archlinux:找不到uuid

Lif*_*fka 11 boot kernel arch-linux kernel-modules

我用“pacman -Syu”更新了archlinux,然后当我重新启动时,系统无法启动。这是报告:

Warning: /lib/modules/4.11.9-1-ARCH/modules.devname not found - ignoring
version 232
Error: device 'UUID=b5a9a977-e9a7-4d3d-96a9-dcf9c3a9010d' not found. Skipping fsck.
Error: can't find UUID=b5a9a977-e9a7-4d3d-96a9-dcf9c3a9010d 
You are now being dropped into a emergency shell.
Can't access tty: job control turned off
Run Code Online (Sandbox Code Playgroud)

在那个外壳中,我的键盘不起作用。

我正在尝试使用 archlinux 的 livecd:安装分区并使用 chroot。我在“/etc/fstab”中检查了根分区的 uuid。这是我的 fstab:

# /dev/sda2 UUID=b5a9a977-e9a7-4d3d-96a9-dcf8c3a9010d   /           ext4        rw,relatime,data=ordered    0 1  
# /dev/sda1 UUID=FBA9-977B          /boot       vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2  
# /dev/sda4 UUID=a43b8426-c93a-4f32-99c8-9dd5cf645373   /home       ext4        rw,relatime,data=ordered    0 2  
# /dev/sda3 UUID=9eec735e-3157-4e0e-a5c6-ef3a7c674201   none        swap        defaults    0
Run Code Online (Sandbox Code Playgroud)

这是“lsblk -f”的结果

NAME   FSTYPE   LABEL       UUID                                 MOUNTPOINT
loop0  squashfs                                                  /run/archiso/sfs/airootfs
sda                                                              
??sda1 vfat                 FBA9-977B                            
??sda2 ext4                 b5a9a977-e9a7-4d3d-96a9-dcf8c3a9010d /mnt
??sda3 swap                 9eec735e-3157-4e0e-a5c6-ef3a7c674201 
??sda4 ext4                 a43b8426-c93a-4f32-99c8-9dd5cf645373 /mnt/home
Run Code Online (Sandbox Code Playgroud)

我已经用“pacman -Syu”再次更新了系统,并尝试制作“mkinitcpio -p linux”,但它没有解决问题(尽管命令的结果没问题)。这是报告:

==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 4.11.9-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [block]
  -> Running build hook: [block]
WARNING: Possubly missing firmware for module: aic94xx
WARNING: Possubly missing firmware for module: wd719x
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 4.11.9-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [block]
WARNING: Possubly missing firmware for module: aic94xx
WARNING: Possubly missing firmware for module: wd719x
  -> Running build hook: [modconf]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
Run Code Online (Sandbox Code Playgroud)

我试图更改“/etc/mkinitcpio.conf”中 HOOKS 的顺序。但它不起作用。这是当前的顺序:

base udev block autodetect modconf filesystems keyboard fsck

“uname -r”返回:

4.11.7-1-ARCH

“pacman -Q linux”返回:

linux 4.11.9-1

存在警告文件“/lib/modules/4.11.9-1-ARCH/modules.devnam”。

我尝试安装并使用“linux-lts”,但结果是一样的。我使用 grub,我也尝试重新配置它。

我能做什么?

Lif*_*fka 12

我只是忘记了安装引导(谢谢你,jasonwryan)。

这个问题的解决方案,就我而言是:

  1. 使用 livecd 挂载所有分区并使用 chroot。
  2. 更新:

    吃豆子-Syu

  3. 使用以下命令重新生成 initramfs:

    mkinitcpio -p linux

  4. 如果您使用 grub:

    grub-mkconfig -o /mnt/boot/grub/grub.cfg

  5. 重新开始。

  • 仅供参考,在 arch 上使用 `arch-chroot` 而不是简单的 `chroot` (3认同)