Не удается запустить archlinux после обновления: не удается найти uuid

10

Я обновил archlinux с помощью "pacman -Syu", а затем, после перезапуска, система не может запуститься. Это отчет:

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

В этой оболочке моя клавиатура не работает.

Я пытаюсь с livecd Archlinux: монтирование разделов и использование chroot. Я проверяю uuid корневого раздела в "/ etc / 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

Я попытался изменить порядок HOOKS в "/etc/mkinitcpio.conf". Но это не работает. Это текущий заказ:

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 и тоже пытался перенастроить его.

Что я могу сделать?

Lifka
источник
3
/bootне был подключен при запуске обновления; отсюда и отсутствующие модули. Загрузите, убедитесь, что все правильно смонтировано, и снова запустите обновление.
Джейсонвриан
Вот в чем проблема ... Я не могу понять, как я не осознавал. Большое спасибо, Джейсонрайан.
Лифка

Ответы:

10

Я просто забыл смонтировать boot (спасибо, jasonwryan).

Решением этой проблемы в моем случае было:

  1. Используйте livecd для монтирования всех разделов и использования chroot.
  2. Обновить:

    Пакман -Сю

  3. Восстановите initramfs используя:

    mkinitcpio -p linux

  4. Если вы используете Grub:

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

  5. Запустить снова.

Lifka
источник
3
К вашему сведению, используйте arch-chrootарку, а не простоchroot
Nepoxx
Как дополнение к этому ответу: в случае, если fallback initramfsработает, и вы используете его для ремонта, используйте /boot/grub/grub.cfg. Тогда вам также не придется arch-chrootили прошивать ваш USB, если вы стерли его. (или потерял его :)
Linux4win
У меня тоже работает. Спасибо друг.
Марцин
0

Вот что у меня сработало (antergos, двойная загрузка с windows 10). Это небольшая модификация вышеуказанного ответа.

  1. Используйте live usb для монтирования корневых и загрузочных разделов. Команды для этого здесь . В этом случае мой загрузочный раздел был разделом EFI-boot (fat).
  2. Обновить:

    Пакман -Сю

  3. Восстановите initramfs используя:

    mkinitcpio -p linux

  4. Если вы используете Grub:

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

  5. Запустить снова.

фламандец
источник
1
Да, ваш ответ на несколько слов длиннее, чем ответ Лифки. Помимо некоторого многословия, что вы добавили, чтобы ваш пост выделялся как новый, другой ответ?
G-Man говорит «Восстановить Монику»