Arch-Linux

更新後無法啟動archlinux:找不到uuid

  • December 19, 2018

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

我試圖改變“/e​​tc/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,我也嘗試重新配置它。

我能做些什麼?

我只是忘記了安裝啟動(謝謝,jasonwryan)。

就我而言,這個問題的解決方案是:

  1. 使用 livecd 掛載所有分區並使用 chroot。
  2. 更新:

吃豆人-Syu 3. 使用以下命令重新生成 initramfs:

mkinitcpio -p linux 4. 如果你使用 grub:

grub-mkconfig -o /mnt/boot/grub/grub.cfg 5. 重新開始。

這對我有用(antergos,使用 Windows 10 雙啟動)。這是對上述答案的輕微修改。

  1. 使用 live usb 掛載根分區和引導分區。這些命令在這裡。在這種情況下,我的引導分區是 EFI-boot (fat) 分區。
  2. 更新:

吃豆人-Syu 3. 使用以下命令重新生成 initramfs:

mkinitcpio -p linux 4. 如果你使用 grub:

grub-mkconfig -o /boot/grub/grub.cfg 5. 重新開始。

引用自:https://unix.stackexchange.com/questions/377373