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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: GRUB потерял одну систему из трёх  (Прочитано 4246 раз)

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

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #15 : 02 Мая 2022, 06:21:05 »
"Раз уж ты такой искусный. В энтом деле полиглот!"

Цитировать
Да, в таких вопросах нужна конкретика...
...и опять, никакой конкретики.

Цитировать
пытаюсь поднять систему через этот "граб-терминал".
А что, нормально работающего груба под рукой нет?

Оффлайн swampy_earl

  • Автор темы
  • Активист
  • *
  • Сообщений: 324
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #16 : 02 Мая 2022, 09:19:39 »
Прошу прощения. Если говорить более конкретно - система на диске SSD с таблицей msdos. В разделе /dev/sda3. После моих попыток "поднять" "граб2" я его в итоге инсталлировал в /dev/sda, как это и положено делать. Отдельный бут-партишен теперь есть - с ядром, инитрфс и папкой grub2. Это всё на /dev/sda1.

Но "граб2" всё равно не загружается как надо. И тут я отвечаю на Ваш вопрос, нет ли нормального "граба" у меня под рукой. К сожалению, нет.  :) При загрузке я вижу только строчку "grub" на чёрном фоне.  :)

На даже этому я рад. Этого пришлось долго добиваться. Это хоть какой-то шанс.

(Нажмите, чтобы показать/скрыть)


Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1794
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #17 : 02 Мая 2022, 10:40:50 »
Но как файлы могут находиться на неразмеченном пространстве?
На любом диске есть служебная загрузочная область и там не файлы, не папки. У тебя "Суть проблемы - удалён boot-раздел (partition), где лежали "граб2", ядро." А я устанавливая несколько систем на диск в легаси никогда не делаю boot-раздел, просто всегда для установки граба указываю диск. И по сути всегда предыдущие установленные подхватываются при установке крайней установленной. Из предыдущих в конфиги никогда не лезу. Возможно что-то не правильно делаю, но у меня системы никогда не обновляются и проблем не бывает.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #18 : 02 Мая 2022, 13:34:47 »
Цитировать
пытаюсь поднять систему через этот "граб-терминал".
Для истинных "Дон Кихотов", здесь весьма показательная история.
Цитировать
нормального "граба" у меня под рукой
А как-же в самом первом сообщении: "Загрузчик отображает только Kubuntu 18.04 и Ubuntu Mate 20.04."
Я принял это за нормально работающий груб, но "умерла, так умерла". Тем более был резон начать с установки груба, независимого от системы. Чтобы работал всегда и везде, даже если систем вообще не будет.


Пользователь добавил сообщение 02 Мая 2022, 13:48:09:
Цитировать
Где находятся его файлы, например?
Говоришь, у тебя БИОС. Только для этого случая.
Груб - это более двухсот файлов. Большинство находится в каталоге /boot/grub/i386-pc. И один находится в MBR, или на специальном боот-разделе, если таблица разделов GPT.
Собственно, в MBR уже давно ни один загрузчик не поместится. Там находится только его "начало" и указание, где искать "продолжение". Обычно, "продолжение" в пустом пространстве, 1мб оставляемый перед первым разделом.


Пользователь добавил сообщение 03 Мая 2022, 10:10:21:
Цитировать
как указать путь к "руту", справа от пути к ядру. Потому что у меня рут находится на "подтоме"...
В качестве шаблона, посмотри здесь.
« Последнее редактирование: 03 Мая 2022, 10:10:21 от andytux »

Оффлайн fita

  • Участник
  • *
  • Сообщений: 211
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #19 : 03 Мая 2022, 16:23:35 »
swampy_earl, у Вас только одна ОС потеряна? Другие две загружаются?

Если да, то какая из них "основная", в том смысле основная, что именно её GRUB ищет и загружает все другие ОС?

Лично я попробовала бы самое простое. Если "основная" - то есть любая из трех ОС загружается, то уже советовала:
sudo apt update
sudo apt install btrfs-progs btrfs-tools
sudo update-grub

Пробовали?

Пользователь добавил сообщение 03 Мая 2022, 16:31:14:
Есть ли способ обновить GRUB, чтобы он показывал все 3 системы, имеющиеся на  SSD?   

Да. И это именно то, что я написала выше. Это именно не отремонтировать, не восстановить, а именно обновить. Добавив в систему модули, чтобы система могла видеть и работать с btrfs.
« Последнее редактирование: 03 Мая 2022, 16:32:29 от fita »

Оффлайн swampy_earl

  • Автор темы
  • Активист
  • *
  • Сообщений: 324
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #20 : 06 Мая 2022, 12:59:36 »
vladimirzhuravlev - Да, способ достаточно разумный. Надо бы взять на заметку. Я тоже инсталлировал граб2 прямо на /dev/sda, когда подмонтировал проблемную систему и зашёл в неё через "chroot". Но увы это не помогло. Видимо из-за особенностей btrfs.  ;)

andytux - спасибо, теперь забрезжила надежда! Я попробую указать путь к рут-директории через LABEL, в командной строке grub.

fita - Благодарю! Команды очень полезные. Но, просто они не для моего случая. К сожалению, у меня они не сработали.  :)

(Нажмите, чтобы показать/скрыть)

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #21 : 06 Мая 2022, 13:30:49 »
Цитировать
"Kubuntu" рут лежит весь на диске. Как на ладони. А в случае с "Фёдором" рут лежит в подтоме "root"
А если так. "Kubuntu" рут лежит на разделе диска. А "Федор" рут лежит... на разделе. Только называется раздел подтомом. И файловая система называется по другому.
А тем более, ты говоришь, что ядро "Федора" находится на боот-разделе. На нем-то не btrfs. В этом случае, грубу вообще нет никакого дела до btrfs.

Цитировать
зашёл через chroot и проинсталлировал grub2
Да, куда не глянь, везде пишут про chroot. Прямо, как про хоме-раздел: "..круто! Вау! Вау!"
Да, способ мощный и универсальный. Но, как и всяким инструментом, им нужно уметь пользоваться. Шесть монтирований-отмонтирований - уже слишком сложно, чтобы работало. В общем, не пожелал-бы и врагу.
А все делается одной командой.

Цитировать
Спасибо хоть что есть grub-prompt при загрузке компа
Так может не хватает только grub.cfg. Создать самому. Или самое банальное - скопировать любой другой, с флешки, из образа. Без разницы, лишь-бы какой-то был, использовать его в качестве шаблона, редактировать по своему усмотрению.

Цитировать
Загрузилась с новым грабиком.
Ну сейчас-то у тебя есть работающий груб? Все, что нужно, добавить в конфиг код загрузки. И для этого не нужно никаких хитро-мудрых команд. Максимум, текстовый редактор и копи/паст.
Надеюсь, MC у тебя есть, чтобы не изводить себя еще и графическими редакторами-файлменеджерами.
« Последнее редактирование: 06 Мая 2022, 15:10:31 от andytux »

Оффлайн swampy_earl

  • Автор темы
  • Активист
  • *
  • Сообщений: 324
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #22 : 08 Мая 2022, 17:00:17 »
В первую очередь, спасибо большое за совет сделать boot-раздел в формате btrfs. Я ещё разок "пробежал" монтирование, гегенерацию initramfs, граб2-инсталл и grub-mkconfig.

И после перезагрузки наконец-то увидел "Граб2". Как раньше, на чёрном фоне с большими буквами. Клёво!  :)

Но "Дяди Фёдора" там нет всё равно.  :) Есть только Ubuntu 18.04 (вторая система на этом диске dev/sda).

Причём... когда я запускал grub-mkconfig, он просканил /dev/sda на наличие OS. Сразу нашёл Kubuntu 18.04 на /dev/sda2. А "Федю" вообще не нашёл. Казалось бы - парадокс. "Граб-конфиг" запущен вот прямо из под этой системы - и не видит её.  :)

Через grub-prompt увы не удалось загрузить систему. Выполнил такие команды, и при загрузке получил циклическую ошибку.

(Нажмите, чтобы показать/скрыть)

Если бы я только знал, что нужно написать в "граб-конфиг"... Сейчас в этом текстовом файле есть только одна загрузочная запись на Kubuntu 18.04. И она прекрасно работает.

« Последнее редактирование: 08 Мая 2022, 17:02:16 от swampy_earl »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #23 : 09 Мая 2022, 04:50:10 »
Если кратко, переврал все. Рад тебя видеть!
Цитировать
совет сделать boot-раздел в формате btrfs
Вот где ты это увидел?
Я написал, что на боот-разделе файловая система не btrfs. Поэтому неверно, называть причиной невозможности запуска "Федоры", неумение груба работать с btrfs. В данном случае он совершенно не касается btrfs, независимо от того, умеет он с ней работать или нет. Ты для того и создавал отдельный боот-раздел, чтобы груб не касался btrfs. Иначе, боот-раздел не нужен абсолютно.
Собственно, по этой-же причине, абсолютно необоснованно считать, что груб, который ты пытаешься установить специально для "Федоры", чем-то отличается от любого другого груба.
А все, что нужно грубу для работы с btrfs у него есть.
Все, что ты пытаешься сделать, направлено на попытку заставить работать "автоматику". Совет fita очень вероятно правильный, но только для "автоматики".
Но, по слухам, нынче "автоматика" отключена, конкретнее, отключен os-prober, который и должен найти другие системы. А отключен за "неадекватное поведение". Здесь неплохой пример "неадекватности".
Поэтому, если хочешь заставить работать "автоматику", то начинать с проверки:
1. установлен os-prober
2. существует и является исполняемым файл /etc/grub.d/30_os-prober
3. не отменяется его запуск в других местах, например в файле /etc/default/grub нет строки "GRUB_DISABLE_OS_PROBER=true".
Это справедливо даже не для самого груба, а для тех "помошников", которые готовят ему конфиг, в частности "update-grub".
Я os-prober давно не пользуюсь, удаляю сразу после установки системы.

Цитировать
Через grub-prompt увы не удалось загрузить систему
Потому что в командах сделал массу ошибок. Тебе нужно еше несколько раз перечитать "Для истинных Дон Кихотов", понять там каждую строчку, каждую букву.
Например: "set root=(hd0,3)/root". Пытаешься угадать раздел. А я там предлагаю не гадать, а пусть груб сам ищет.

Цитировать
Если бы я только знал, что нужно написать в "граб-конфиг"
И я не знаю. А написать нужно тоже самое, что ты пытаешься сделать в grub-prompt. Только мне кажется, что в конфиге это делать гораздо удобнее.
Видится два варианта.
1. запуск конфига груба от "Федоры", если конечно он существует-сохранился.
2. запуск "Федоры".
Для первого варианта, поискать этот конфиг. Я совершенно не знаком с "Федорой". Ничего не подскажу.
Для второго варианта, найти где-нибудь код запуска "Федоры" и использовать его в качестве шаблона. Например, поискать на арчвики, где описывается груб.
А может ты сам знаешь, раз пытаешься запустить в grub-prompt.
Некоторые конфиги груба можешь взять здесь.


Пользователь добавил сообщение 09 Мая 2022, 06:10:44:
"Это май-баловник, это май-чародей."

Забавную задачку ты себе придумал. "Неизвестная система" на "неизвестной файловой системе". Плюс, как-будто для смеха, стандартная "банановая кожура", в виде отдельного хоме.
Возникла бредовая идея. Если нужно воскресить "Федору", может скопировать ее на раздел с банальной файловой системой ext4. Впрочем, и здесь может быть масса подводных камней. Один уже назвал, отдельный хоме.


Пользователь добавил сообщение 10 Мая 2022, 04:26:13:
Совсем забыл. Есть такой supergrubdisk, от создателей груба. Может загрузить все, что только может груб.
« Последнее редактирование: 10 Мая 2022, 05:26:03 от andytux »

Оффлайн swampy_earl

  • Автор темы
  • Активист
  • *
  • Сообщений: 324
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #24 : 16 Мая 2022, 13:57:18 »
"Дядя Фёдор" чувствует себя неплохо и передаёт вам привет с ночного болота.

(Нажмите, чтобы показать/скрыть)

Впервые за целый месяц, после упорных трудов, удалось загрузиться в систему. Как же я был счастлив!

Описывать все мытарства не буду. Это я сделаю потом, когда нормально восстановлю весь "граб". А сейчас - по мелочи.

Чтобы загрузить систему, пришлось сделать 2 основных шага: 1) Добавить параметр -o rootflags=subvol=root после указания пути к ядру линукс в граб-терминале. 2) Прописать в файле /etc/fstab новый идентификатор UUID раздела /boot (если не сделать этого, загрузка оборвётся тупиковым "аварийным режимом", без доступа к консоли).

Но на этом борьба не закончена. Команда grub2-mkconfig по прежнему не видит эту систему. Даже когда я запускаю эту прогу вот прямо из этой системы, из её терминала - не видит! "Kubuntu 18.04" видит прекрасно, а себя саму - в упор не видит! Как такое вообще возможно?  ;D

Ещё один о-о-очень интересный момент. Ради интереса я перезалил всю систему заново в отдельный раздел диска. Просто чтобы посмотреть, как выглядит по-умолчанию граб для этой системы. И тут меня ждал сюрприз. Оказалось, что "grub.cfg" для "Федоры" по-умолчанию не содержит загрузочной записи для "Федоры". То в граб-меню при загрузке компьютера эта запись есть - и доступна для редактирования. А в файле "grub.cfg" её нет.

Вот такие чудеса, ребята.  :) Если кто-нибудь из вас сталкивался с этим, очень прошу объяснить.

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

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 16 Мая 2022, 13:59:32 от swampy_earl »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #25 : 16 Мая 2022, 14:24:46 »
"Мы таким делам вовсе не обучены, И кроме мордобитиев - никаких чудес!"

Цитировать
Команда grub2-mkconfig по прежнему не видит эту систему
Сколько еще раз тебе нужно споткнуться на "автоматике", чтобы понять, что далеко не всегда она работает "автоматически". Особенно, когда не понимаешь, как она работает.

Цитировать
То в граб-меню при загрузке компьютера эта запись есть - и доступна для редактирования. А в файле "grub.cfg" её нет.
Это разные файлы? Кто ими управляет, с того и спрашивай.

Цитировать
При этом ($root) - это на самом деле бут-раздел...
Ведь ты сам рядом написал, "путь к ядру". Раз ядро у тебя на бут-разделе - это и должен быть бут-раздел.
Поэтому, если хочешь путаницы, то создавай побольше бутов, хомов. Веселье будет обеспечено!
Дополню, а то опять начудишь.
В данном контексте, "root" - это переменная груба, в которой в формате груба находится указание на раздел диска.
Например, команда груба "search", если найдет, то по умолчанию в переменную "root" запишет раздел, на котором нашла.
search -n -s -f ${src}/casper/vmlinuz
linux ${src}/casper/vmlinuz ${key} --
Ищет файл ядра. Если находит, то в переменной "root" - раздел диска, где находится этот файл. Соответственно, в следующей команде "linux" можно не подставлять "($root)", груб сам переключит контекст на этот раздел.

Цитировать
root=UUID=полный номер
Это уже совсем другой "root", не имеющий никакого отношения к грубу. Здесь указывается, где находится корень системы.
« Последнее редактирование: 16 Мая 2022, 15:21:32 от andytux »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #26 : 30 Мая 2022, 04:57:54 »
swampy_earl, тут на соседнем форуме появилась "интересная тема".
Пытаются запустить Федору. Показательна тем, что там в десять раз быстрее наломали в десять раз больше дров, чем ты. Просто забавное чтиво, образчик - никогда так не делать.

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1794
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #27 : 30 Мая 2022, 13:14:03 »
там в десять раз быстрее наломали в десять раз больше дров
Не хрен было разрешать там винде обновляться и если не толкуют как править вручную конфиги граба, граб кастомайзер им в помощь.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #28 : 02 Июня 2022, 05:53:32 »
Цитировать
вот как выглядит эта загрузочная запись из меню граба. Чисто для прикола.
На днях, рядом появилась тема по запуску федоры.
Взял эти два прикола, сложил со своим стандартным запуском *бунту. Получился вот такой коллаж:
submenu 'Fedora' --class fedora --class gnu-linux --class gnu --class os {
src='fedora_boot'; src2='fedora_root'; key='ro rootflags=subvol=root rhgb quiet --'
key="root=LABEL=${src2} ${key}"
#version='-5.17.11-300.fc36.x86_64'
insmod gzio
search --no-floppy --set --label "${src}"
linux /boot/vmlinuz${version} ${key}
initrd /boot/initramfs${version}.img
  }
Вместо УУИД-ов, метки разделов (заменить на реальные). Подразумевается, что существуют символические ссылки на файлы ядра и инитрамфс. Если нет, то подставить реальную версию ядра и раскомментировать строку.

Оффлайн swampy_earl

  • Автор темы
  • Активист
  • *
  • Сообщений: 324
    • Просмотр профиля
Re: GRUB потерял одну систему из трёх
« Ответ #29 : 10 Июня 2022, 02:53:46 »
Благодарю! Спасибо, что не бросили эту тему. Для меня она всё ещё очень интересна. А этот скрипт обязательно пригодится.

Пару недель назад удалось изменить граб-конфиг вручную и заставить его загружать нужную мне ОС. Потом я заново записал на диск Ubuntu Mate, и скорректировал grub.cfg, чтобы он показывал для загрузки все 3 системы, как мне надо: Kubuntu 18.04, Ubuntu MATE и Fedora 34.

Теперь всё как я хотел, всё как я мечтал...

Через пару дней я постараюсь выложить полное руководство, как были преодолены все те проблемы.

 

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