grub2 (чертовщина с grub2)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

v4567
Сообщения: 162
ОС: Devuan

grub2

Сообщение v4567 »

Здравствуйте.
Надо было установить систему с таровского архива. Два винта - в первом программном рейде, которые перед установкой обнулил командой dd.
Загружаюсь с некоторой системы на винте которой таровский архив системы которую надо установить, винт этот не рейд - ext4, он был /dev/sda. Подключаю второй винт (он оказался /dev/sdb) на который надо распаковать таровский архив.
Разбиваю этот винт фдиском, ставлю файловую систему fd, создаю первый рейд, форматирую в ext4 и в раздел распаковываю архив.
Далее чиручюсь в это раздел с подключением dev, proc, sys и прописываю окружение - (всё как надо и всё как делал раньше когда всё после установки работало) и командой:

Код: Выделить всё

grub-install --recheck --no-floppy /dev/sdb

инсталирую груб в mbr
команда отрабатывает без ошибок.
Далее в файле /etc/default/grub раскомментирываю строку, что бы в конфиге груба вместо uuid прописывался /dev/md, потом командой:

Код: Выделить всё

grub-mkconfig -o /boot/grub/grub.cfg

создаю конфиг - всё создалось нормально.

Отключаю первый винт, оставляю второй (на который распаковал архив и установил grub) - его подключаю в sata0, загружаюсь - всё нормально. Подключаю второй винт (в sata1 - он стал /dev/sdb), который должен быть с этим в рейде.
Разбиваю как и первый фдиском, подкидываю его в рейд - всё нормально, всё залилось.
Далее уже просто командой:

Код: Выделить всё

grub-install --recheck --no-floppy /dev/sdb
инсталирую груб в mbr этого винта.
Корень у меня в первом разделе - в рейде /dev/md0
Далее для проверки смогу ли я загрузиться с этого винта, отключаю первый и загружаюсь с этого винта и загрузиться не могу.
Вываливаюсь в:

Код: Выделить всё

grub rescue >

Ввожу команду ls, получаю что он видит (md/0) как бы всё нормально.
Ввожу set и получаю:

Код: Выделить всё

prefix=(mduuid/тутuuid)/boot/grub

Код: Выделить всё

root=(mduuid/тутuuid)

Это uuid который здесь написало по команде set не принадлежит ни одному винту и не одному рейду md, откуда он взялся не пойму!!!!!
В командной строке груба в ручную прописывая рейд md0 получилось загрузиться.
В системе обыскался во всех конфигах запись об этом uuid-е но так и не нашёл, не пойму откуда взялся этот uuid. Такой uuid не принадлежит ни первому винту с которого ставил, ни этим двум.
Соответственно груб не находит винта, соответственно не видит конфигов и своих файлов.
Я уже пробовал подключать второй винт к первому и чирутиться в него и из него инталить груб - не помогло. Сбрасывал образы mbr, сравнивал их - они разные (как и должно быть), менял их местами - не помогает. Первый грузиться, второй нет. Причём на первом, зайдя при загрузке в командную строку груба смотрю по команде set, но мне показывает информацию уже из конфига груба, так как захожу в неё уже с окна выбора загрузки.

Ещё давно у меня возникал вот такой вопрос.
В mbr-е можно написать код который будет работать с указанным винтом через биос в рамках цилиндр, сектор, головка. Написать в mbr-е код который работал бы с файловой системой не получится не хватит места. Соответственно код mbr может только загрузить информацию с винта в виде этот сектор, этот сектор - эта головка, этот цилиндр, и передать ему управления. А он уже поймёт файловую систему и подгрузит нужные модули груба, а они прочтут его конфиг. Получается что этот кусок данных (ЭТО НЕ MBR!) не будет представлен в виде файлов. Если так то как его посмотреть, по каким адресам на винте он лежит?

У меня получается так что на втором винте загружается MBR, который загружает этот кусок уже с файловой системы, а вот в нём прописан этот uuid (который никому не принадлежит и не понятно откуда взялся) и соответственно он не находит винта и выдаёт:

Код: Выделить всё

grub rescue >

кстати не в графике, а в формате 80x25.

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

Ранее с таким не сталкивался.

За помощь заранее благодарен!



Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21469
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grub2

Сообщение Bizdelnick »

v4567 писал(а):
20.04.2016 21:52
командой:

Код: Выделить всё

grub-mkconfig -o /boot/grub/grub.cfg

создаю конфиг

update-grub в системе отсутствует?
Вообще неплохо бы побольше конкретики: что за дистрибутив, какой версии (или хотя бы какой версии grub, если там что-то страшное и самосборное), содержимое grub.cfg, вывод mdadm --detail и blkid.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: