GRUB2: восстановление загрузчика

Алексей Федорчук

Только что в процессе очередного эксперимента развалил загрузчик от Mint’а, каковым выступает GRUB2, stage 1 которого помещено на диске /dev/sdb —в BIOS’е он у меня выставлен как первое загрузочное устройство. Разумеется, никакой трагедии — я всегда могу загрузиться через Lilo с устройства /dev/sda, где размещается Salix. Однако — непорядок, надо восстанавливать. Тем более что впереди предстоял ещё один эксперимент, в ходе которого гибель загрузчика также не исключалась.

В своё время я неплохо освоил восстановление GRUB Legacy, и мог делать это, как некогда выполнял неполную разборку АКМ’а. А вот GRUB 2 восстанавливать — как-то до сих повода не было. Так что я решил освоить это дело, а заодно сочинил шпаргалку на будущее. Которое, надеюсь, будет наступать не очень часто — но ведь неприятности, к которых готов заранее, обычно и не случаются. Случаются совсем другие неприятности…

Для начала надо иметь Live-носитель — у меня было в виде SD-карты, причём изготовленной с собственного образа Mint’а. При рестарте машины, в момент появления мать его производителя, нужно нажать клавишу быстрого выбора загрузочного устройства — на моей «маме» это F8 — и выбрать соответствующее загрузочное устройство, оно обычно называется явным образом (у меня в данном случае — универсальный кард-ридер имени не помню кого, в который карточка была вставлена). Происходит загрузка Live-среды, каковая здесь представлена Mint’ом с Cinnamon’ном.

Далее я запустил Nemo — в его боковой панели, в секции Носители, отражаются все присутствующие в машине дисковые устройства, ещё в несмонтированном виде. Нужное мне, /dev/sdb1, я опознал потому, что оно было единственным, которому я так и не удосужился присвоить метку, поэтому оно там фигурировало под очень информативным именем 20 ГБ (диски помеченные выступают под своими именами, почему это не роскошь, а средство ориентировки).

Далее следовало опознанное устройство смонтировать — это делается через пункт Присоединить контекстного меню или просто левым кликом на имени (но в последнем случае содержимое устройства открывается в главном окне Nemo, что не всегда желательно). Теперь главное — определить точку монтирования. В убунтоидах временно смотированные устройства попадают в каталог /media/username, устройства с меткой — в каталог с её именем, без оной — в каталог, названный универсальным идентификатором устройства (UID), это полуметровая зубодробительная последовательность букв и цифр (ещё один резон «метить» носители).

А вот теперь — собственно восстановление загрузчика. Оно выполняется одной командой:

$ sudo grub-install --root-directory=/media/username/mount_point /dev/sdb

Здесь mount_point — метка диска или, как в моём случае, его очень простой UID вроде d55aebcb-7e7d-4d34-aff4-ed6e494e9b7f. Автодополнение в этом случае не работает, однако, даже если устройство не «помечено», его UID можно взять из файла /etc/mtab, описывающего временно смонтированные устройства, или, открыв его в Nemo, из адресной строки последнего (если, конечно, переключить на неё представление пути из умолчального, в виде пиктограмм).

На этом дело восстановления загрузчика закончено — можно перезагружаться в нормальном режиме. Столь кондовая простота этой процедуры примирила меня с GRUB2 и в ближайшем будущем планирую изучить его подробнее.

Добавить комментарий