LINUX.ORG.RU

Как правильно установить загрузчик (grub2)?

 , ,


0

2

Debian 9 был установлен на шифрованный раздел следующим образом: в шифрованном разделе LVM, в нём корень и раздел подкачки, /boot на отдельном разделе и не зашифрован. Делалось это при установке, из штатного установщика. Потом понадобилось установить на компьютер windows (по работе). Чтобы восстановить grub, я сделал следующее: загрузился с системы установленной на внешний HDD (подключенный по USB), расшифровал корень примонтировал в /mnt, а /boot примонтировал в /mnt/boot. после этого я выполнил следущие команды:

sudo grub-install --root-directory=/mnt /dev/sda

и

sudo update-grub --output=/mnt/boot/grub/grub.cfg

При загрузке вижу следущее?: https://hsto.org/webt/5b/7e/9c/5b7e9c87b35e0206438550.jpeg и ОС не грузится:https://hsto.org/webt/5b/7e/9f/5b7e9f236869e867206084.jpeg какие конфиги (и как) нужно редактировать, чтобы всё работало как после установки (включил, ввёл пароль шифрования, залогинился, работаешь)?

P.S Прошу прощения за качество фото, лучше не мог

sudo update-grub --output=/mnt/boot/grub/grub.cfg

смущает путь к /boot, и я бы проверил UUID разделов. Больше мыслей нет, надо смотреть что и на каких разделах. P.S. По моему чтобы установить grub вам надо было chroot,ится в систему, а вы кажется этого не сделали.

Wind ★★★
()
Последнее исправление: Wind (всего исправлений: 1)

Поддерживаю Wind: сначала надо было сделать

chroot /mnt
Потом
sudo update-grub --output=/boot/grub/grub.cfg

А сейчас grub, видимо ищет и не находит Ваш внешний диск USB. Я бы его подключил и включил комп. Думаю, что с него бы компьютер сразу загрузился. Дальше бы всё, как Вы делали повторил:

расшифровал корень примонтировал в /mnt, а /boot примонтировал в /mnt/boot

не уверен, что нужно снова выполнять

sudo grub-install --root-directory=/mnt /dev/sda
Но, выполнил бы пару необязательных «некрасивых» команд ( на «случай» :)
lsblk -f >>/home/user/uuid.lst
( потом можно будет понять «кто есть кто»; а сохранять его лучше в удобное Вам место)
cp /mnt/boot/grub/grub.cfg /mnt/boot/grub/bad.cfg
( тоже как бы бэкап — сделать хуже всегда возможно; не уверен, что в /boot/grub/ ему место — другого предложить не могу)

chroot /mnt
sudo update-grub --output=/boot/grub/grub.cfg

Должно бы поправить grub.cfg

P.S. я бы ещё посмотрел на правильность «новый» /boot/grub/grub.cfg (с учётом списка UUID ), и только потом перезагрузился.

anymouze ★★
()

Еще перед chroot обычно монтируют dev, proc и sys. dev через -o bind, остальное как обычно.

mount -o bind /dev /mnt/dev
mount -t proc proc /mnt/proc
...

chroot /mnt /bin/bash
...

samson ★★
()
Последнее исправление: samson (всего исправлений: 2)
Ответ на: комментарий от Wind

чтобы установить grub вам надо было chroot,ится в систему, а вы кажется этого не сделали.

не-не, там специальный ключ командной строки есть, чтобы не chroot-ится

--boot-directory (но это на память, не точно - надо man прочитать)

Einstok_Fair ★★☆
()
Последнее исправление: Einstok_Fair (всего исправлений: 1)

ну там что-то вроде grub2-install <target device> --no-floppy --force только надо ещё добавить GRUB_PRELOAD_MODULES=lvm и GRUB_CMDLINE_LINUX_DEFAULT=«dolvm» (или в ядро пихнуть)

anonymous
()
Ответ на: комментарий от anymouze

Как-то сразу не вспомнил — GRUB же позволяет конфиг править вовремя загрузки.

anymouze ★★
()
Ответ на: комментарий от anymouze

Помогла статья: согласно ей, после монтирования системы, вместо монтирования /proc и /sys нужно сделать:

 for f in dev proc sys; do mount -o bind /$f /mnt/$f; done
а потом:
chroot /mnt dpkg-reconfigure grub-pc
и всё заработало. Или же через установочный диск.

P.S. Статья расположена на lorwiki.org.ru, это официальная вики лора?

spellman
() автор топика
Ответ на: комментарий от anonymous

Почему?

[offtop_mod=on]А почему?[/offtop_mod]

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.