Arch Linux: підключення розділів LVM та запуск mkinitcpio

Автор |  04/03/2025
 

Не часто, але іноді виникає потреба завантажити систему з usb, і перезібрати initramfs-linux.img.

Цей пост – скоріш просто невеликий нотаток для себе як, що, і куди маунтити на робочому ноуті, аби запустити mkinitcpio, бо в мене є розділи LVM, є окремі розділи на диску під /boot та swap.

iwctl та WiFi 

Отже, завантажуємось з флешки, і налаштовуємо WiFi, аби далі всі команди робити з іншого компа, де можна копіпастити з RTFM:

[root@archiso ~]# iwctl
# station wlan0 connect setevoy-linksys-5-0

Задаємо пароль root:

[root@archiso ~]# passwd root

Отримуємо IP:

[root@archiso ~]# ip a s wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 192.168.3.114/24 brd 192.168.3.255 scope global dynamic noprefixroute wlan0

І підключаємо з іншого ноута:

[setevoy@setevoy-home-laptop ~] $ ssh [email protected]

Підключення розділів LVM

Знаходимо volume group:

[root@archiso ~]# vgscan
  Found volume group "vg_arch" using metadata type lvm2

Активуємо його:

[root@archiso ~]# vgchange -ay
  2 logical volume(s) in volume group "vg_arch" now active

Згадуємо, які в системі є logical volumes, в мене їх два – один корневий під систему, інший під $HOME:

[root@archiso ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_arch/root
...
   
  --- Logical volume ---
  LV Path                /dev/vg_arch/home
...

Маунтимо /dev/vg_arch/root до /mnt:

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

Підключення /boot

Глянемо решту дисків і розділів:

[root@archiso ~]# lsblk 
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0              7:0    0 820.6M  1 loop /run/archiso/airootfs
sda                8:0    1  28.9G  0 disk 
└─sda1             8:1    1  28.9G  0 part 
nvme0n1          259:0    0 465.8G  0 disk 
├─nvme0n1p1      259:1    0   512M  0 part 
├─nvme0n1p2      259:2    0     1G  0 part 
├─nvme0n1p3      259:3    0    32G  0 part 
└─nvme0n1p4      259:4    0 432.3G  0 part 
  ├─vg_arch-root 254:0    0   100G  0 lvm  /mnt
  └─vg_arch-home 254:1    0 332.3G  0 lvm

Оце саме та трохи tricky part, де я постійно забуваю що і як в мене маунтиться – але у нас є fstab, де все описано.

Наприклад, я колись витратив багато часу перезбираючи initramfs-образ, але система все одно не завантажувалась.

І лише через деякий час я згадав, що в мене і /boot на окремому розділі:

[root@archiso ~]# cat /mnt/etc/fstab 
# /dev/mapper/vg_arch-root
UUID=8569a65c-d848-427d-bcd0-5046d0e07f2b       /               ext4            rw,relatime     0 1

# /dev/mapper/vg_arch-home
UUID=0ae5ba43-3bb3-4826-8570-8918a82bf27f       /home           ext4            rw,relatime     0 2

# /dev/nvme0n1p1
UUID=54C4-1990          /boot/EFI       vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro       0 2

# /dev/nvme0n1p2
UUID=6a42ffb4-6811-4176-b26e-873f49aea3b0       /boot           ext2            rw,relatime     0 2

# /dev/nvme0n1p3
UUID=08d2ae9d-28fa-4d20-9d06-72d1b7fdc21d       none            swap            defaults        0 0

Маунтимо /dev/nvme0n1p2 в /mnt/boot/:

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

Глянемо, що там зараз – а зараз нічого нема, бо під час апдейту не вистачило місця в /tmp, і не зібрався новий initramfs-linux.img:

[root@archiso ~]# ls -l /mnt/boot/
total 24
drwxr-xr-x 2 root root  4096 Dec  7  2020 EFI
drwxr-xr-x 6 root root  4096 Dec  7  2020 grub
drwx------ 2 root root 16384 Dec  7  2020 lost+found

Ну і власне тепер можна збирати систему.

Запуск mkinitcpio

Тут вже все просто – встановлюємо пакети в /mnt:

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

Виконуємо chroot, і запускаємо mkinitcpio:

[root@archiso ~]# arch-chroot /mnt/
11:27:22 [root@archiso /]  # mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
==> Using configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
...

Перевіряємо /boot ще раз – тепер все на місці:

11:28:48 [root@archiso /]  # ls -l /boot/
total 68000
drwxr-xr-x 2 root root     4096 Dec  7  2020 EFI
drwxr-xr-x 6 root root     4096 Dec  7  2020 grub
-rw------- 1 root root 41323222 Mar  3 11:28 initramfs-linux-fallback.img
-rw------- 1 root root 14137751 Mar  3 11:28 initramfs-linux.img
drwx------ 2 root root    16384 Dec  7  2020 lost+found
-rw-r--r-- 1 root root 14053888 Mar  3 11:26 vmlinuz-linux

Готово – перезавантажуємось в основну систему.