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


10

我用“ 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

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

我正在尝试使用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

这是“ 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

我已经使用“ 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

我试图在“ /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,我也尝试重新配置它。

我能做什么?


3
/boot运行升级时未挂载;因此缺少模块。Chroot进入,确保一切都正确安装,然后重新运行更新。
jasonwryan

那就是问题……我无法理解我是怎么意识到的。谢谢你,杰森
Lifka

Answers:


10

我只是忘了挂载启动了(谢谢你,jasonwryan)。

在我的情况下,此问题的解决方案是:

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

    吃豆人

  3. 使用以下方法重新生成initramfs:

    mkinitcpio -p Linux

  4. 如果您使用grub:

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

  5. 重新开始。


3
仅供参考arch-chroot,而不是简单地在拱门上使用chroot
Nepoxx '18年

作为此答案的补充:万一fallback initramfs您使用该作品进行维修,请使用/boot/grub/grub.cfg。然后,arch-chroot如果您擦除了USB,也不必或不刷新USB。(或丢失了它:)
Linux4win '19

也为我工作。谢了哥们。
Marcin

0

这是对我有用的东西(antergos,使用Windows 10双启动)。这是上述答案的略微修改。

  1. 使用实时USB挂载根分区和引导分区。这些命令在这里。在这种情况下,我的启动分区是EFI-boot(fat)分区。
  2. 更新:

    吃豆人

  3. 使用以下方法重新生成initramfs:

    mkinitcpio -p Linux

  4. 如果使用grub:

    grub-mkconfig -o /启动/grub/grub.cfg

  5. 重新开始。


1
是的,您的答案比Lifka的答案长了几个字。除了冗长之外,您还添加了哪些内容来使您的帖子作为新的不同答案脱颖而出?
G-Man说'Resstate Monica''De​​c
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.