Upgrade to x86_64 - словил 'grub_rescue' [Решено]

Да, сейчас попробую снова...
Не-а, фризится, даже фаллбэк не грузится.

set prefix=(hd0,msdos1)/grub
set root=(hd0,msdos1)
linux /vmlinuz-linux root=/dev/sda2
initrd /initramfs-linux-fallback.img
boot

...Failed to execute /sbin/init
...Failed to executs fallback shell, freezing.
В общем, fallback загружается только если указать root=/dev/sda1
Или для initrd надо указать какие-то дополнительные параметры, но пока не понимаю какие.
Если попадаю в Fallback консоль, df выдает, что /dev/sda1 смонтирован в /sysroot - дальше-то что, что толку. Если указываю ядру root=/dev/sda2 (где корневой раздел и есть) - загрузка фризится, не давая попасть даже в fallback-режим.
А так, корень вроде "на месте", глаз видит, а зуб неймёт...
Можно попробовать в /sysroot монтировать настоящий корень. Но я думаю, что проблема в другом.
Что-то не то сделал при переходе. Или мнит не обновил. Или еще что.
Проще уже из лайв загрузиться и отремонтировать.
Lupus pilum mutat, non mentem.
При текущем положении дела у меня либо фриз - в случае, когда указываю реальный корень в параметрах запуска ядра и так же меняю корень в параметрах груба - set root=(hd0,2) (ядру тогда приходится писать так: linux (hd0,2)/vmlinuz-linux root=/dev/sda2) - в этом случае фриз с сообщением о невозможности запуска fallback. В случае, если ставлю root=/dev/sda1 - получаю fallback mode.
Ну да, вариант монтирования корня в /sysroot рассматриваю, но пока не совсем понял, что с ним дальше делать. И как его вообще грамотно смонтировать? Ну, по идее, как-то так: mount -rw /dev/sda2 /sysroot. Сделать сначала /sysroot/mnt не выйдет, sysroot монтируется только на чтение: ro.
Не знаю что получится, когда смогу сделать загр. флешку, можно уже попытаться через chroot. Сейчас мне не понятно, что именно сломано кроме /sbin/init. Может через chroot переустановить всю группу base?
bobart
Сейчас мне не понятно, что именно сломано кроме /sbin/init.
Думаю, что это не срабатывают команды /initramfs/sbin/init и /initramfs/sbin/iswitch_root .... думаю, что ошибка закралась в initramfs-linux.img
Хотя initramfs-linux.img готовился из существующей системы, тогда да - выходит, что проблема в самой системе. Хотя все это гадание.
Ради интереса надо бы залезть в бинарники и посмотреть откуда берутся эти сообщения об ошибках ... но это морока ...
Ошибки не исчезают с опытом - они просто умнеют
Начнем с граба.
Так должна выглядеть последовательность команд:
set prefix=(hd0,msdos1)/grub
set root=(hd0,msdos1)
linux /vmlinuz-linux root=/dev/sda2
initrd /initramfs-linux-fallback.img
boot
prefix указывает на путь где граб должен искать свои недостающие модули.
root работает как cd в линуксовой консоли. Указан для удобства.
Можно написать без нее, указав полные пути до ведра и инитрам:
]set prefix=(hd0,msdos1)/grub
linux (hd0,msdos1)/vmlinuz-linux root=/dev/sda2
initrd (hd0,msdos1)/initramfs-linux-fallback.img
boot
А вот параметр передаваемый ведру root=/dev/sda2 уже указывает на корень твоей операционки.

bobart
И как его вообще грамотно смонтировать?
Попробуй просто
 mount /dev/sda2 /sysroot
Но, если не изменяет память, в досистемдешные времена корень монтировался в /newroot
Попробуй.
После монтирования нужно нажать Ctrl-d и подождать.
Lupus pilum mutat, non mentem.
"просто" mount /dev/sda2 /sysroot монтирует рид онли, 'ro' - толку от этого? Хотя, может я просто не понял еще, что с этим ридонли могу сделать. Команды типа cp, mv - соответственно не работают в режиме 'ro'.
Дальше. Как ты написал правильные параметры для груба - вот с ними я ловлю фриз без доступа к fallback mode. Если указываю root=/dev/sda1 - получаю fallback.
bobart
"просто" mount /dev/sda2 /sysroot монтирует рид онли, 'ro' - толку от этого?
Можно попробовать и так - mount -o remount,rw /sysroot

EDIT 1 - на это думаю выходил, а не пробовал в ручную запустить /sbin/init
Ошибки не исчезают с опытом - они просто умнеют
И еще было у тебя такое сообщение
bobart
archlinux-systemctl [225]: Failed to switch root: Specified switch root parh '/sysroot' does not seem to be an OS tree. os-release file is missing.
вроде бы указывает на то, что что есть не совпадение с файлом os-release , хотя не пойму причем тут это не совпадение (точнее отсутствие) и как оно может сказаться?
file /etc/os-release
/etc/os-release: symbolic link to ../usr/lib/os-release

В принципе можно в emergency посмотреть есть ли этот файл и что в нем.
Хотя никакой нагрузки этот файл не несет
cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
ID_LIKE=archlinux
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"

в initramfs файл /etc/initrd-release пустой
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.