Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как восстановить GRUB2 если boot потерян  (Прочитано 2143 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ITicDigger

  • Автор темы
  • Любитель
  • *
  • Сообщений: 96
    • Просмотр профиля
Стоит KXStudio 14.04.5 на sda1 а загрузчик и каталог boot был на флешке, с которой и происходила загрузка. Сейчас этой флешки нет и нужно бы восстановить загрузчик на другую флешку. Делаю это по инструкции: https://help.ubuntu.ru/wiki/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_grub
Способом 2 (через chroot) так как ключ --root-directory у меня не работает
всё монтирую: корень в mnt, флешку в boot корня, dev, proc, sys куда положено,
sudo chroot /mnt
grub-install /dev/sdс
Всё отлично, только после некоторых команд появлялось "sudo: unable to resolve host kxstudio"
тем не менее в boot появляется папка grub на 4 MB а вот всё остальное что занимало раньше ещё 50 MB не появляется! Я перезагружаюсь с флешки - результат ожидаемый - меня встречает консоль Grub, никакого меню нет - в чём дело? Что ещё нужно установить чтобы появилось меню, или хотябы просто система загружаться начинала?
Находил в сети подобные темы - всем советуют: "найти другой мануал", но по ходу никто этот другой мануал так и не нашёл.

Вот если нужно список коменд которыми восстанавливаю:
sudo mount /dev/sda1 /mnt
sudo mount /dev/sdc1 /mnt/boot
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys  /mnt/sys
sudo chroot /mnt
grub-install /dev/sdc
exit
« Последнее редактирование: 29 Ноября 2018, 16:16:20 от ITicDigger »

Dzhoser

  • Гость
Re: Как восстановить GRUB2 если boot потерян
« Ответ #1 : 29 Ноября 2018, 16:10:57 »
А почему загрузчик не может быть на жестком?

Оффлайн ITicDigger

  • Автор темы
  • Любитель
  • *
  • Сообщений: 96
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #2 : 29 Ноября 2018, 16:14:13 »
Да просто у меня комп порой превращается в полигон для испытаний всего подряд в частности каких нибудь дистрибутивов которые любят мне загрузчик затирать, а когда он у меня от нужных осей на флешке - им ничего не грозит.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8046
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #3 : 29 Ноября 2018, 16:46:01 »
Цитировать
...советуют: "найти другой мануал", но по ходу никто этот другой мануал так и не нашёл.
Не там искал. Посмотри это:
https://forum.ubuntu.ru/index.php?topic=278535.msg2196127#msg2196127
А здесь много наговорили о конфигурации меню:
https://forum.ubuntu.ru/index.php?topic=267537.msg2357967#msg2357967

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7840
  • Eternally
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #4 : 29 Ноября 2018, 17:38:36 »
...
sudo chroot /mnt
grub-install /dev/sdc
update-grub
exit
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

alang

  • Гость
Re: Как восстановить GRUB2 если boot потерян
« Ответ #5 : 29 Ноября 2018, 18:52:27 »
В директории /boot находится не только загрузчик, но и /efi (если есть), ядро, initrd, system.map, и пр. Переустановкой загрузчика они, разумеется, не восстанавливаются.
В принципе, ядро можно пересобрать в папке /lib/modules/<версия ядра>/build
# make bzImage
# make modules
# make modules_install
# make install
Если я ничего не напутал. Директория /boot должна быть при этом доступна.

Оффлайн ITicDigger

  • Автор темы
  • Любитель
  • *
  • Сообщений: 96
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #6 : 29 Ноября 2018, 18:54:10 »
update-grub
Не. Определённо это я пробовал и это тоже не срабатывает.

Пользователь добавил сообщение 29 Ноября 2018, 18:55:11:
В принципе, ядро можно пересобрать в папке /lib/modules/<версия ядра>/build
Это полностью решит проблему и наполнит boot всем чем надо? Или надо будет ещё что-то?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8046
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #7 : 30 Ноября 2018, 05:51:17 »
Цитировать
меня встречает консоль Grub, никакого меню нет - в чём дело?
Нет файла grub.cfg. Создайте его. Как, смотри ссылки в "Ответ 3".
Цитировать
...наполнит boot всем чем надо?
Ядро и инитрд совершенно незачем ташить на загрузочную флешку.
В самой системе ядро и инитрд есть? Если есть, то в меню груб указать их расположение.
Если нет, то создавать их в корневом разделе системы. Там им место.

Оффлайн ITicDigger

  • Автор темы
  • Любитель
  • *
  • Сообщений: 96
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #8 : 30 Ноября 2018, 08:55:12 »
В папке boot лежит ядро... Довольно часто я встречал советы делать каталог boot отдельным разделом, и юзать его в качестве единого каталога boot для нескольких установленных систем и так мол будет меньше проблем при добавлении осей. Что-то, с учётом того, что в нём лежит ЯДРО, такие советы стали звучать для меня странно. Этож ядро! оно у каждого дистрибутива может быть разным! Я получается при установке очередного дистра буду затирать ядро последнего установленного. Так как правильно? Нужно ли выносить boot на отдельный диск и делить его между всеми дистрибутивами? Или оставлять его на разделе своей системы? ???

Пользователь добавил сообщение 30 Ноября 2018, 09:07:01:
Нет файла grub.cfg. Создайте его. Как, смотри ссылки в "Ответ 3".
Есть файл grub.cfg, он ведь создаётся при выполнении update-grub верно? Это я делал. В ответе 3 про создание grub.cfg сказано: " Создаем или копируем файл /mnt/sdb1/boot/grub/grub.cfg" ну и несколько раз даны примеры вашего grub.cfg, но мне то свой нужен.
« Последнее редактирование: 30 Ноября 2018, 09:07:01 от ITicDigger »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8046
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #9 : 30 Ноября 2018, 09:59:23 »
Цитировать
часто я встречал советы делать каталог boot отдельным разделом...
Лишний раздел - лишние проблемы.
Цитировать
Этож ядро! оно у каждого дистрибутива может быть разным!
Вот так правильно. Каждой системе свое ядро. Не нужно их смешивать.
Цитировать
Нужно ли выносить boot на отдельный дис...
Раз спрашиваете, то не нужно.
Цитировать
...мне то свой нужен.
Чем он так хорош? Чем он вам помог?
Присмотрись к примерам внимательней. Правда все они для Ubuntu, а у тебя "KXStudio". Я не знаю, что это такое и как это грузить.
Например:
(Нажмите, чтобы показать/скрыть)
Задаешь в src метку тома или ууид корневого раздела и этот код загрузит твою Ubuntu, где-бы она не находилась.
А если на том разделе есть файл /boot/grub/grub.cfg, то покажет меню из этого файла (твоего файла).
Или еще проще:
(Нажмите, чтобы показать/скрыть)
В prefix задаешь расположение груб на корневом разделе системы и опять попадаешь в "свой груб".
Этого примера явно по приведенным ссылкам нет, но вникнув в прочитанное можно сообразить.

Оффлайн ITicDigger

  • Автор темы
  • Любитель
  • *
  • Сообщений: 96
    • Просмотр профиля
Re: Как восстановить GRUB2 если boot потерян
« Ответ #10 : 30 Ноября 2018, 10:08:40 »
ВСЁ! Загрузочную флешку удалось "реконструировать"!
Задача была решена увы не в чистом виде - я заполучил содержимое старой флешеки - все файлы лежавшие в её корне кроме папки grub. Итак рецепт:
Загрузиться с LiveUSB
Скинуть на новую флешку все файлы со старой флешки кроме папки grub. ВНИМАНИЕ! Это, к сожалению, должны быть файлы именно от данного дистрибутива, созданные конкретно в момент его установки. Я пробовал брать файлы от того же дистра но установленного на вирт. машину и ничего не вышло. Вернее загрузка дошла до сплэшскрина KXStudio и повисла навсегда.
sudo mount раздел_с_нужной_ОС /mnt
sudo mount раздел_на_новой_флешке_под_папку_boot /mnt/boot (Пустая папка boot должна быть к этому моменту создана в mnt!)
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/новая_флешка_под_папку_boot (не раздел (sdc1 например) а именно сама флешка (cdc например))
update-grub
(тут он должен сказать что нашёл пару файлов из корня флшешки linuz_как_то_там и ещё какой-то а потом в последней строчке может ругнуться что чего-то не нашёл)
Дальше во всех манах говорят выйти из chroot и отмонтировать всё что примонтировал, но этого не делал и "выходил сухим из воды", возможно у меня просто хороший дистрибутив на LiveUSB, который вышел и отмонтировал всё за меня при перезагрузке, но на всякий пожарный можете всё это сделать:
exit
sudo umount /mnt/sys
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/boot
sudo umount /mnt
В командах могут быть ошибки, писал по памяти.
В общем берегите boot смолоду!
« Последнее редактирование: 30 Ноября 2018, 16:26:15 от ITicDigger »

 

Страница сгенерирована за 0.017 секунд. Запросов: 20.