Arch Linux: failed to mount on real root

Автор |  25/07/2023
 

Оновлював вчора Arch Linux, і за 9 років корисування ціюєю системою вперше зіткнувся с помилкою, коли після ребуту система не змогла підключити диск:

ERROR: device UUID not found.
mount: /new_root: can’t find UUID.
ERROR: Failed to mount UUID on real root.
You are now being dropped into an emergency shell.

В принципі проблема ясна – або змінився UUID диска, або “щось пішло не так” з ядром.

Трапилось це через те, що під час апргейду в /tmp закінчилось місце, і mkinitcpio не зміг зібрати нове ядро.

Завантажуємость с USB, і будемо пробувати фіксити.

Першим перевіряємо, чи правильний UUID вказано в fstab.

Перевіряємо розділи:

[simterm]

[root@archiso ~]# lsblk 
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0         7:0    0 693.5M  1 loop /run/archiso/airootfs
sda           8:0    1  14.3G  0 disk 
├─sda1        8:1    1   798M  0 part 
└─sda2        8:2    1    15M  0 part 
nvme0n1     259:0    0 953.9G  0 disk 
├─nvme0n1p1 259:1    0   512M  0 part 
├─nvme0n1p2 259:2    0   900G  0 part 
└─nvme0n1p3 259:3    0  53.4G  0 part

[/simterm]

/dev/nvme0n1p2 – мій рутовий роздил.

Підключаємо його:

[simterm]

[root@archiso ~]# mount /dev/nvme0n1p2 /mnt/

[/simterm]

Перевіряємо UUID в /etc/fstab старої системи:

[simterm]

[root@archiso ~]# cat /mnt/etc/fstab 
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/nvme0n1p2
UUID=31268b66-5fca-44f6-8e22-acc281026eaf       /               ext4            rw,relatime     0 1

[/simterm]

І перевіряємо реальний UUID розділу:

[simterm]

[root@archiso ~]# blkid  /dev/nvme0n1p2
/dev/nvme0n1p2: UUID="31268b66-5fca-44f6-8e22-acc281026eaf" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="519b201a-02"

[/simterm]

Все вірно.

Окей, запускаємо iwctl, налаштовуємо WiFi.

Знаходимо ім’я інтерфейсу:

[simterm]

[iwd] station list

[/simterm]

Перевіряємо доступні мережі:

[simterm]

[iwd]# station wlan0 get-networks

[/simterm]

Підключаємось – пароль спитає під час підключення:

[simterm]

[iwd]# station wlan0 connect setevoy-linksys-5-0

[/simterm]

Встановлюємо пакети ядра:

[simterm]

[root@archiso ~]# pacstrap /mnt base linux linux-firmware

[/simterm]

Та збираємо initramfs:

[simterm]

[root@archiso ~]# arch-chroot /mnt/
[root@archiso /]# mkinitcpio -p linux

[/simterm]

Ребутаємось – все завелось.