Linux: /lib/modules/4.16.13-1-ARCH/modules.devname not found и error: file ‘/grub/i386-pc/normal.mod’ not found

By | 06/07/2018
 

Наверно это самый страшный сон пользователя – когда комп выключается во время апгрейда системы.

Именно это и случилось – во время обновления ноут выключился от перегрева. И всё бы ничего, если бы он не вырубился как раз где-то на моменте сборки нового ядра.

В результате – система не грузится, а выдёт сообщение:

Warning: /lib/modules/4.16.13-1-ARCH/modules.devname not found – ignoring
starting version 238
ERROR: device ‘/dev/mapper/kubuntu_vg-root’ not found. Skipping fsck.
mount: you must specify the filesystem type
You are now being dropped into an emergency shell.

А так как в загрузочном образе (initramfs) не все модули (были бы все – нашёлся бы и модуль для загрузки LVM) – то не работает даже клавиатура.

Благо – под боком есть старая машинка с Windows, на которой я по выходным иногда играю и которая позволила погуглить.

Нагуглилось решение быстро – раз>>>, два>>>, три>>>.

“Ха! Раз плюнуть ваще!” – сказал я, вырубил ноут и отложил фикс на следующий вечер.

Но вы же понимаете – это было бы слишком просто 🙂

Собственно в этом посте – описание процесса восстановления загрузки системы, который затянулся на целых два вечера и ~4 часа времени.

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

Тем не менее – решение проблемы есть, и даже не одной.

Решение

Загружаемся с любого LiveCD, тут это установочная флешка с Arch Linux – с некоторых пор она у меня всегда в рюкзаке лежит.

Проверяем разделы:

[root@archiso ~]# fdisk -l /dev/sda
Disk /dev/sda: 596.2 GiB, 640135028736 bytes, 1250263728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6fa60981
Device     Boot      Start        End    Sectors  Size Id Type
/dev/sda1             2048    4196351    4194304    2G 83 Linux
/dev/sda2          4196352   37750783   33554432   16G 82 Linux swap / Solaris
/dev/sda3         37750784 1086326783 1048576000  500G 83 Linux
/dev/sda4  *    1086326784 1250260991  163934208 78.2G  7 HPFS/NTFS/exFAT

sda3 тут – это LVM раздел, в котором живут root и /home:

[root@archiso ~]# lvdisplay -c
/dev/kubuntu_vg/root:kubuntu_vg:3:1:-1:0:62914560:7680:-1:0:-1:254:0
/dev/kubuntu_vg/home:kubuntu_vg:3:1:-1:0:985653248:120319:-1:0:-1:254:1

kubuntu в имени раздела – т.к. раньше на ноуте была Ubuntu, а потом LVM переехал под Arch Linux, см. Arch: установка поверх Ubuntu с сохранением home в LVM

Тут sda1 – это /boot, sda2 – swap, sda4 – старый раздел со старой Windows7.

Монтируем разделы:

[root@archiso ~]# mount /dev/kubuntu_vg/root /mnt/
[root@archiso ~]# mount /dev/kubuntu_vg/home /mnt/home/
[root@archiso ~]# mount /dev/sda1 /mnt/boot/

Проверяем содержимое /boot:

[root@archiso ~]# ls -l /mnt/boot/
total 86536
-rw-r--r-- 1 root root  1313640 Jun 24  2016 abi-4.2.0-41-generic
-rw-r--r-- 1 root root  1313590 Jun 29  2016 abi-4.2.0-42-generic
-rw-r--r-- 1 root root   184897 Jun 24  2016 config-4.2.0-41-generic
-rw-r--r-- 1 root root   184934 Jun 29  2016 config-4.2.0-42-generic
drwxr-xr-x 5 root root     4096 Mar  8  2017 grub
-rw-r--r-- 1 root root 31649225 Dec 28  2016 initrd.img-4.2.0-41-generic
-rw-r--r-- 1 root root 32397264 Feb 11  2017 initrd.img-4.2.0-42-generic
drwx------ 2 root root    16384 Mar  7  2016 lost+found
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3759492 Jun 24  2016 System.map-4.2.0-41-generic
-rw------- 1 root root  3760051 Jun 29  2016 System.map-4.2.0-42-generic
-rw------- 1 root root  6734768 Jun 24  2016 vmlinuz-4.2.0-41-generic
-rw------- 1 root root  6736496 Jun 29  2016 vmlinuz-4.2.0-42-generic

А где initramfs-linux.img?.. И почему такое старое ядро – vmlinuz-4.2.0-42? Давно уже 4.15 было установлено…

А – это от старой Ubuntu, видимо. Ладно.

И файлы хомика:

[root@archiso ~]# ls -l /mnt/home/
total 24
drwx------   2 root root 16384 Mar  6  2016 lost+found
drwxr-xr-x 111 1000 1000  4096 Jun  4 17:16 setevoy
drwxr-xr-x   9 root root  4096 May 29 19:04 timeshift

ОК, данные на месте, можно восстанавливать ядро.

Выполняем chroot в старую систему:

[root@archiso ~]# arch-chroot /mnt
20:33:03 [root@archiso /]  #

Можно проверить лог апгрейда, и посмотреть где именно оно “упало”:

20:42:19 [root@archiso /]  # cat /var/log/pacman.log | grep linux | tail -n 10
[2018-05-28 22:43] [ALPM-SCRIPTLET] ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
[2018-05-28 22:43] [ALPM-SCRIPTLET] ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
[2018-05-28 22:43] [ALPM-SCRIPTLET]   -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
[2018-05-28 22:43] [ALPM-SCRIPTLET] ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
[2018-05-29 19:05] [ALPM-SCRIPTLET] See 'archlinux-java help' to change it
[2018-05-29 19:05] [ALPM-SCRIPTLET] See 'archlinux-java help' to change it
[2018-05-29 19:05] [ALPM-SCRIPTLET] See 'archlinux-java help' to change it
[2018-06-04 20:40] [ALPM] upgraded linux (4.16.11-1 -> 4.16.13-1)
[2018-06-04 20:40] [ALPM] upgraded linux-headers (4.16.11-1 -> 4.16.13-1)
[2018-06-04 20:41] [ALPM] running '60-linux.hook'...

Пробуем просто собрать загрузочный образ – initramfs:

20:44:45 [root@archiso /]  # 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
==> ERROR: specified kernel image does not exist: `/boot/vmlinuz-linux'
==> 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
==> ERROR: specified kernel image does not exist: `/boot/vmlinuz-linux'

Тут я понял, что вечер затягивается – “по-быстрому” не выйдет.

Пробуем установить ядро:

20:48:07 [root@archiso /]  # pacman -S linux
error: failed to init transaction (unable to lock database)
error: could not lock database: File exists
if you're sure a package manager is not already
running, you can remove /var/lib/pacman/db.lck

Удаляем файл блокировки – остался после прерванного апгрейда:

20:48:29 [root@archiso /]  # rm /var/lib/pacman/db.lck

Закончим апргейд, на котором ноут и вырубился:

20:48:40 [root@archiso /]  # pacman -Syu
:: Synchronizing package databases...
core                                                                                                                 129.6 KiB   795K/s 00:00 [###] 100%
extra                                                                                                               1628.0 KiB  1149K/s 00:01 [###] 100%
community                                                                                                              4.4 MiB  1139K/s 00:04 [###] 100%
multilib                                                                                                             170.4 KiB  1114K/s 00:00 [###] 100%
archlinuxfr is up to date
:: Starting full system upgrade...
warning: dee: local (1.2.7-11) is newer than community (1.2.7-2)
resolving dependencies...
looking for conflicting packages...
Packages (42) aws-cli-1.15.33-1  bash-4.4.023-1  binutils-2.30-5  chrpath-0.16-2  elfutils-0.171-1  gcc-8.1.1+20180531-1  gcc-libs-8.1.1+20180531-1  geocode-glib-3.26.0-1  harfbuzz-1.8.0-1  harfbuzz-icu-1.8.0-1  hyphen-2.8.8-2
keyutils-1.5.10-2  lib32-gcc-libs-8.1.1+20180531-1  lib32-harfbuzz-1.8.0-1  libarchive-3.3.2-2  libelf-0.171-1  libtar-1.2.20-4  libtool-2.4.6+40+g6ca5e224-7  libunistring-0.9.10-1  linux-4.16.13-2  linux-headers-4.16.13-2
ltrace-0.7.3-3  mkinitcpio-busybox-1.28.4-1  nodejs-10.4.0-1  parallel-20180522-1  pcmciautils-018-8  pkcs11-helper-1.22-3  procps-ng-3.3.15-1  pulseaudio-alsa-2-4  python-botocore-1.10.33-1  python-pexpect-4.6.0-1
python-requests-2.18.4-2  python-urllib3-1.23-1  python2-notify-0.1.1-14  python2-pbr-4.0.4-1  python2-regex-2018.06.06-1  qrencode-4.0.1-1  readline-7.0.005-1  sbc-1.3-2  sound-theme-freedesktop-0.8-3  virtualbox-5.2.12-2
virtualbox-host-dkms-5.2.12-2
...

linux-4.16.13-2 есть, ждём.

И угадайте что? Он снова вырубился…

“Кажется, вечер перестаёт быть томным” (с)

И снова на том же месте:

(42/42) upgrading virtualbox [#######################################################################################] 100%
:: Running post-transaction hooks…
( 1/11) Updating linux module dependencies…
( 2/11) Install DKMS modules
==> dkms install vboxhost/5.2.12_OSE -k 4.16.13-2-ARCH

ОК, опять загружаемся, монтируем заново разделы:

[root@archiso ~]# mount /dev/kubuntu_vg/root /mnt/
[root@archiso ~]# mount /dev/kubuntu_vg/home /mnt/home/
[root@archiso ~]# mount /dev/sda1 /mnt/boot/

Теперь даже появился файл ядра – vmlinuz-linux:

[root@archiso ~]# ls -l /mnt/boot/
total 91656
-rw-r--r-- 1 root root  1313640 Jun 24  2016 abi-4.2.0-41-generic
-rw-r--r-- 1 root root  1313590 Jun 29  2016 abi-4.2.0-42-generic
-rw-r--r-- 1 root root   184897 Jun 24  2016 config-4.2.0-41-generic
-rw-r--r-- 1 root root   184934 Jun 29  2016 config-4.2.0-42-generic
drwxr-xr-x 5 root root     4096 Mar  8  2017 grub
-rw-r--r-- 1 root root 31649225 Dec 28  2016 initrd.img-4.2.0-41-generic
-rw-r--r-- 1 root root 32397264 Feb 11  2017 initrd.img-4.2.0-42-generic
drwx------ 2 root root    16384 Mar  7  2016 lost+found
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3759492 Jun 24  2016 System.map-4.2.0-41-generic
-rw------- 1 root root  3760051 Jun 29  2016 System.map-4.2.0-42-generic
-rw------- 1 root root  6734768 Jun 24  2016 vmlinuz-4.2.0-41-generic
-rw------- 1 root root  6736496 Jun 29  2016 vmlinuz-4.2.0-42-generic
-rw-r--r-- 1 root root  5240688 Jun  1 18:45 vmlinuz-linux

Чрутимся, повторяем попытку апгрейда (теперь с включенным в подставке ноута вентилятором):

21:01:35 [root@archiso /]  # pacman -Syu
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
multilib is up to date
archlinuxfr is up to date
:: Starting full system upgrade...
warning: dee: local (1.2.7-11) is newer than community (1.2.7-2)
there is nothing to do

Ага, ок.

Собираем initramfs:

21:01:39 [root@archiso /]  # 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.16.13-2-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> ERROR: module not found: `eata'
==> ERROR: module not found: `aoe'
==> ERROR: module not found: `brd'
==> ERROR: module not found: `nbd'
==> ERROR: module not found: `loop'
==> ERROR: module not found: `mtip32xx'
...
==> ERROR: module not found: `pcips2'
==> ERROR: module not found: `serio_raw'
-> Running build hook: [fsck]
==> WARNING: No modules were added to the image. This is probably not what you want.
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> WARNING: errors were encountered during the build. The image may not be complete.

Эм…

И самое тут плохое:


-> Running build hook: [lvm2]
==> ERROR: module not found: `dm_mod’
==> ERROR: module not found: `dm_snapshot’
==> ERROR: module not found: `dm_mirror’
==> ERROR: module not found: `dm_cache’
==> ERROR: module not found: `dm_cache_smq’
==> ERROR: module not found: `dm_thin_pool’

Не загрузится.

Хотя файл драйвера есть:

21:14:03 [root@archiso /]  # ls -l /lib/modules/4.16.13-2-ARCH/kernel/drivers/md/| grep dm-mod
-rw-r--r-- 1 root root    0 Jun  1 21:45 dm-mod.ko.xz

Пересобрать ядро? Хотя чем это тут поможет…

pacman -Syyu linux
:: Synchronizing package databases...
core                                                                                                                 129.6 KiB   571K/s 00:00 [###] 100%
extra                                                                                                               1628.0 KiB  1039K/s 00:02 [###] 100%
community                                                                                                              4.4 MiB  1131K/s 00:04 [###] 100%
multilib                                                                                                             170.4 KiB  1136K/s 00:00 [###] 100%
archlinuxfr                                                                                                           11.5 KiB  1152K/s 00:00 [###] 100%
warning: linux-4.16.13-2 is up to date -- reinstalling
...
linux: /usr/lib/modules/4.16.13-2-ARCH/kernel/sound/x86/snd-hdmi-lpe-audio.ko.xz exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/kernel/virt/lib/irqbypass.ko.xz exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.alias exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.alias.bin exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.builtin exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.builtin.bin exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.dep exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.dep.bin exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.devname exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.order exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.softdep exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.symbols exists in filesystem
linux: /usr/lib/modules/4.16.13-2-ARCH/modules.symbols.bin exists in filesystem
linux: /usr/lib/modules/extramodules-4.16-ARCH/version exists in filesystem
linux: /usr/share/libalpm/hooks/60-linux.hook exists in filesystem
linux: /usr/share/libalpm/hooks/90-linux.hook exists in filesystem
Errors occurred, no packages were upgraded.

Ну да…

Снести, и заново попробовать?

21:30:19 [root@archiso /home/setevoy/Backups]  # pacman -R linux
checking dependencies...
Packages (1) linux-4.16.13-2
:: Do you want to remove these packages? [Y/n]
:: Processing package changes...
(1/1) removing linux                                                                                                                           [###] 100%
ldconfig: file /usr/lib32/libgo.so is truncated
ldconfig: file /usr/lib32/libgo.so.13 is truncated
ldconfig: file /usr/lib32/libgo.so.13.0.0 is truncated
ldconfig: File /usr/lib/libpkcs11-helper.so is empty, not checked.
ldconfig: File /usr/lib/libpkcs11-helper.so.1 is empty, not checked.
ldconfig: File /usr/lib/libprocps.so.7.1.0 is empty, not checked.
ldconfig: File /usr/lib/libsbc.so.1.2.1 is empty, not checked.
ldconfig: File /usr/lib/libpkcs11-helper.so.1.0.0 is empty, not checked.
ldconfig: File /usr/lib/libprocps.so is empty, not checked.
ldconfig: File /usr/lib/libqrencode.so.4.0.1 is empty, not checked.
ldconfig: File /usr/lib/libsbc.so is empty, not checked.
ldconfig: File /usr/lib/libqrencode.so.4 is empty, not checked.
ldconfig: File /usr/lib/libsbc.so.1 is empty, not checked.
ldconfig: File /usr/lib/libqrencode.so is empty, not checked.
ldconfig: File /usr/lib/libprocps.so.7 is empty, not checked.

Устанавливаем:

21:30:28 [root@archiso /home/setevoy/Backups]  # pacman -Syyu linux

И ничего. Те же ошибки, типа “linux: /usr/lib/modules/4.16.13-2-ARCH/modules.symbols.bin exists in filesystem“.

ОК – переносим эти файлы в бекап:

21:30:59 [root@archiso /home/setevoy/Backups]  # mv /usr/lib/modules/4.16.13-2-ARCH/ .
21:31:52 [root@archiso /home/setevoy/Backups]  # mkdir KERNEL
21:32:13 [root@archiso /home/setevoy/Backups]  # mv /boot/vmlinuz-linux KERNEL/
21:32:20 [root@archiso /home/setevoy/Backups]  # mv /usr/lib/modules/extramodules-4.16-ARCH/version KERNEL/
21:32:24 [root@archiso /home/setevoy/Backups]  # mv /usr/share/libalpm/hooks/60-linux.hook KERNEL/
21:32:28 [root@archiso /home/setevoy/Backups]  # mv /usr/share/libalpm/hooks/90-linux.hook KERNEL/

Ещё раз пробем устанавить ядро:

21:32:33 [root@archiso /home/setevoy/Backups]  # pacman -S linux
resolving dependencies...
looking for conflicting packages...
Packages (1) linux-4.16.13-2
Total Installed Size:  113.86 MiB
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring                                                                                                                 [###] 100%
(1/1) checking package integrity                                                                                                               [###] 100%
(1/1) loading package files                                                                                                                    [###] 100%
(1/1) checking for file conflicts                                                                                                              [###] 100%
(1/1) checking available disk space                                                                                                            [###] 100%
:: Processing package changes...
(1/1) installing linux                                                                                                                         [###] 100%
Optional dependencies for linux
crda: to set the correct wireless channels of your country
ldconfig: file /usr/lib32/libgo.so is truncated
ldconfig: file /usr/lib32/libgo.so.13 is truncated
ldconfig: file /usr/lib32/libgo.so.13.0.0 is truncated
ldconfig: File /usr/lib/libpkcs11-helper.so is empty, not checked.
ldconfig: File /usr/lib/libpkcs11-helper.so.1 is empty, not checked.
ldconfig: File /usr/lib/libprocps.so.7.1.0 is empty, not checked.
ldconfig: File /usr/lib/libsbc.so.1.2.1 is empty, not checked.
ldconfig: File /usr/lib/libpkcs11-helper.so.1.0.0 is empty, not checked.
ldconfig: File /usr/lib/libprocps.so is empty, not checked.
ldconfig: File /usr/lib/libqrencode.so.4.0.1 is empty, not checked.
ldconfig: File /usr/lib/libsbc.so is empty, not checked.
ldconfig: File /usr/lib/libqrencode.so.4 is empty, not checked.
ldconfig: File /usr/lib/libsbc.so.1 is empty, not checked.
ldconfig: File /usr/lib/libqrencode.so is empty, not checked.
ldconfig: File /usr/lib/libprocps.so.7 is empty, not checked.
:: Running post-transaction hooks...
(1/4) Updating linux module dependencies...
(2/4) Install DKMS modules
==> Unable to install module vboxhost/5.2.12_OSE for kernel 4.16.13-2-ARCH: Missing kernel headers.
(3/4) Updating linux initcpios...
==> 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.16.13-2-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [lvm2]
-> 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.16.13-2-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
-> Running build hook: [lvm2]
-> 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
(4/4) Arming ConditionNeedsUpdate...

Вроде ОК? lvm2 есть, initramfs собрался:

21:33:25 [root@archiso /home/setevoy/Backups]  # ls -l /boot/
total 140164
-rw-r--r-- 1 root root  1313640 Jun 24  2016 abi-4.2.0-41-generic
-rw-r--r-- 1 root root  1313590 Jun 30  2016 abi-4.2.0-42-generic
-rw-r--r-- 1 root root   184897 Jun 24  2016 config-4.2.0-41-generic
-rw-r--r-- 1 root root   184934 Jun 30  2016 config-4.2.0-42-generic
drwxr-xr-x 5 root root     4096 Mar  8  2017 grub
-rw-r--r-- 1 root root 35455830 Jun  6 21:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 14212917 Jun  6 21:33 initramfs-linux.img
-rw-r--r-- 1 root root 31649225 Dec 28  2016 initrd.img-4.2.0-41-generic
-rw-r--r-- 1 root root 32397264 Feb 11  2017 initrd.img-4.2.0-42-generic
drwx------ 2 root root    16384 Mar  7  2016 lost+found
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3759492 Jun 24  2016 System.map-4.2.0-41-generic
-rw------- 1 root root  3760051 Jun 30  2016 System.map-4.2.0-42-generic
-rw------- 1 root root  6734768 Jun 24  2016 vmlinuz-4.2.0-41-generic
-rw------- 1 root root  6736496 Jun 30  2016 vmlinuz-4.2.0-42-generic
-rw-r--r-- 1 root root  5240688 Jun  1 21:45 vmlinuz-linux

Пробуем – ребут.

Снова нет…

Почему он пытается искать Warning: /lib/modules/4.16.13-1-ARCH/modules.devname not found – ignoring?

Ведь ядро 13-2:

21:39:48 [root@archiso /]  # ls -l /lib/modules/4.16.13-2-ARCH/modules.devname
-rw-r--r-- 1 root root 433 Jun  6 21:32 /lib/modules/4.16.13-2-ARCH/modules.devname

initramfs билдится теперь без проблем:

21:40:49 [root@archiso /boot]  # 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.16.13-2-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [lvm2]
-> 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.16.13-2-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
-> Running build hook: [lvm2]
-> 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

Что в образе?

Проверяем содержимое:

21:41:34 [root@archiso /boot]  # gunzip -c initramfs-linux.img > /tmp/initramfs
21:42:47 [root@archiso /boot]  # pacman -S cpio
21:43:53 [root@archiso /boot]  # cpio -it < /tmp/initramfs | grep modules
81632 blocks
usr/lib/modules
usr/lib/modules/4.16.13-2-ARCH
usr/lib/modules/4.16.13-2-ARCH/modules.devname
...

13-2, модули есть, всё верно.

Перегенерить конфиг GRUB? Да тоже не поможет…

Но попробуем:

21:57:09 [root@archiso /]  # grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found linux image: /boot/vmlinuz-4.2.0-42-generic
Found initrd image: /boot/initrd.img-4.2.0-42-generic
Found linux image: /boot/vmlinuz-4.2.0-41-generic
Found initrd image: /boot/initrd.img-4.2.0-41-generic
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
Found Windows 7 on /dev/sda4
done

Перезагружаемся – таже ошибка.

Ну, ок… Завтра…


Продолжаем.

Интересное вот что заметил.

Монтируем только рут:

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

И проверяем /boot:

[root@archiso ~]# ls -l /mnt/boot/
total 53564
drwxr-xr-x 6 root root     4096 Mar 17 07:15 grub
-rw-r--r-- 1 root root 35409377 May 28 19:43 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 14192101 May 28 19:43 initramfs-linux.img
-rw-r--r-- 1 root root  5240688 May 31 23:28 vmlinuz-linux

Что это за ядро? Откуда? Ведь старый /boot, с sda1, не смонтирован…

А если смонтировать старый бут – то там будут файлы с него…

Схожая ситуация была у парня вот тут>>>.

Глянем – что в этом ядре.

[root@archiso ~]# cd /mnt/boot/
[root@archiso boot]# gunzip -c initramfs-linux.img > /tmp/initramfs
[root@archiso boot]# pacman -Sy
[root@archiso boot]# pacman -S cpio
[root@archiso boot]# cpio -it < /tmp/initramfs | grep modules
81544 blocks
usr/lib/modules
usr/lib/modules/4.16.11-1-ARCH
usr/lib/modules/4.16.11-1-ARCH/modules.devname
...

Эм… 4.16.11-1???

Но ошибка при старте касается ядра Warning: /lib/modules/4.16.13-1-ARCH/modules.devname not found – ignoring

А сейчас вообще ядро 13-2

Думал, это ядро с ISO, с которого загружен – но тут 4.16.5.

Ладно.

Монтируем старый хомик, и переносим все файлы из этого /boot – бекапим их, just in case:

[root@archiso boot]# mount /dev/kubuntu_vg/home /mnt/home/
[root@archiso boot]# mkdir /mnt/home/setevoy/Backups/KERNEL/boot_4_11
[root@archiso boot]# mv /mnt/boot/* /mnt/home/setevoy/Backups/KERNEL/boot_4_11/

Монтируем старый /boot, с sda1:

[root@archiso boot]# mount /dev/sda1 /mnt/boot/
[root@archiso boot]# ls -l /mnt/boot/
total 140164
-rw-r--r-- 1 root root  1313640 Jun 24  2016 abi-4.2.0-41-generic
-rw-r--r-- 1 root root  1313590 Jun 29  2016 abi-4.2.0-42-generic
-rw-r--r-- 1 root root   184897 Jun 24  2016 config-4.2.0-41-generic
-rw-r--r-- 1 root root   184934 Jun 29  2016 config-4.2.0-42-generic
drwxr-xr-x 5 root root     4096 Jun  6 18:57 grub
-rw-r--r-- 1 root root 35453368 Jun  6 18:41 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 14213159 Jun  6 18:41 initramfs-linux.img
-rw-r--r-- 1 root root 31649225 Dec 28  2016 initrd.img-4.2.0-41-generic
-rw-r--r-- 1 root root 32397264 Feb 11  2017 initrd.img-4.2.0-42-generic
drwx------ 2 root root    16384 Mar  7  2016 lost+found
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3759492 Jun 24  2016 System.map-4.2.0-41-generic
-rw------- 1 root root  3760051 Jun 29  2016 System.map-4.2.0-42-generic
-rw------- 1 root root  6734768 Jun 24  2016 vmlinuz-4.2.0-41-generic
-rw------- 1 root root  6736496 Jun 29  2016 vmlinuz-4.2.0-42-generic
-rw-r--r-- 1 root root  5240688 Jun  1 18:45 vmlinuz-linux

Ну – вроде ОК…

Что дальше?

Переустановить grub?

Что там в его конфигах вообще?

И не почистить ли /boot вообще?

Ладно – просто перегенерим его конфиг, хотя уверен – не поможет:

[root@archiso ~]# arch-chroot /mnt
21:26:20 [root@archiso /]  # grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found linux image: /boot/vmlinuz-4.2.0-42-generic
Found initrd image: /boot/initrd.img-4.2.0-42-generic
Found linux image: /boot/vmlinuz-4.2.0-41-generic
Found initrd image: /boot/initrd.img-4.2.0-41-generic
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
Found Windows 7 on /dev/sda4
done

Ребут, и ужинать. Потом уже.


После ужина и ребута – новая ошибка при включении ноута:

error: file ‘/grub/i386-pc/normal.mod’ not found.
grub rescue>

О! Уже интереснее. Значит – что-то с /boot всё таки не так.

Тут пригодился вот этот ответ>>> – там хорошие примеры работы в консоли grub.

grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod

Файл есть…

Не помогло, да и время 10 вечера…

Ладно, последняя попытка, если не получится – то читать, и спать.

Переустановим grub.

Монтируемся заново с флешки:

[root@archiso ~]#  mount /dev/kubuntu_vg/root /mnt/
[root@archiso ~]# ls -l /mnt/boot/
total 0

OK…

Остальное:

[root@archiso ~]# mount /dev/kubuntu_vg/home /mnt/home/
[root@archiso ~]# ls -l /mnt/home/
total 24
drwx------   2 root root 16384 Mar  6  2016 lost+found
drwxr-xr-x 111 1000 1000  4096 Jun  4 17:16 setevoy
....
[root@archiso ~]# mount /dev/sda1 /mnt/boot/
[root@archiso ~]# ls -l /mnt/boot/
total 140164
-rw-r--r-- 1 root root  1313640 Jun 24  2016 abi-4.2.0-41-generic
-rw-r--r-- 1 root root  1313590 Jun 29  2016 abi-4.2.0-42-generic
-rw-r--r-- 1 root root   184897 Jun 24  2016 config-4.2.0-41-generic
-rw-r--r-- 1 root root   184934 Jun 29  2016 config-4.2.0-42-generic
drwxr-xr-x 5 root root     4096 Jun  7 18:27 grub
-rw-r--r-- 1 root root 35453368 Jun  6 18:41 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 14213159 Jun  6 18:41 initramfs-linux.img
-rw-r--r-- 1 root root 31649225 Dec 28  2016 initrd.img-4.2.0-41-generic
-rw-r--r-- 1 root root 32397264 Feb 11  2017 initrd.img-4.2.0-42-generic
drwx------ 2 root root    16384 Mar  7  2016 lost+found
-rw-r--r-- 1 root root   176500 Mar 12  2014 memtest86+.bin
-rw-r--r-- 1 root root   178176 Mar 12  2014 memtest86+.elf
-rw-r--r-- 1 root root   178680 Mar 12  2014 memtest86+_multiboot.bin
-rw------- 1 root root  3759492 Jun 24  2016 System.map-4.2.0-41-generic
-rw------- 1 root root  3760051 Jun 29  2016 System.map-4.2.0-42-generic
-rw------- 1 root root  6734768 Jun 24  2016 vmlinuz-4.2.0-41-generic
-rw------- 1 root root  6736496 Jun 29  2016 vmlinuz-4.2.0-42-generic
-rw-r--r-- 1 root root  5240688 Jun  1 18:45 vmlinuz-linux
[root@archiso ~]# swapon /dev/sda2

Ресетапим grub:

21:52:12 [root@archiso /]  # pacman -Sy
21:52:56 [root@archiso /]  # pacman -S grub
21:53:30 [root@archiso /]  # grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

Всё? Ну пробуем…

И – ура!

Вот такие вот увлекательные вечера… 🙂