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


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

Автор Тема: Резервное копирование и восстановление GRUB  (Прочитано 4918 раз)

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

Оффлайн F1restorm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Предыстория
Создал скрипты для резервного копирования и восстановления всей системы. Думал, что все учел. Но на днях, после перезагрузки ОС (установил samba) на экране появилась надпись "GRUB _" и пустой экран. Загрузился с LiveCD и восстановил систему из проверенной на работоспособность резервной копии. Но не помогло, опять: "GRUB _" и пустой экран, после перезагрузки. Тогда загрузился с LiveCD и восстановил GRUB. Помогло, загрузился.

Вопрос
Как сделать резервную копию GRUB только при помощи tar и dd (без grub* команд)? Полная копия всех файлов и MBR уже делается, но восстановление из такой копии иногда не помогает. Что я забыл сделать? Интересует именно резервное копирование, а не установка или восстановление GRUB.

Пользователь решил продолжить мысль 27 Января 2011, 12:39:33:
Я изначально копировал только MBR (stage1, как я понял) так:
dd if=/dev/sda of=mbr.bin bs=446 count=1Наверное, еще нужно скопировать stage2?:
dd if=/dev/sda of=stage2.bin bs=512 seek=1
Так? Ничего не забыл? Или вообще все не правильно?
« Последнее редактирование: 27 Января 2011, 12:41:03 от F1restorm »

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Резервное копирование и восстановление GRUB
« Ответ #1 : 27 Января 2011, 17:49:13 »
Цитировать
dd if=/dev/sda of=stage2.bin bs=512 seek=1
Это stage1.5 (stage2 в /boot/grub)

У меня stage1.5 занимает почти 53 блока из 62 (не считая первого). Те я бы сохранял так
Цитировать
dd if=/dev/sda of=stage1.5.bin bs=512 count=53 skip=1
ну или вместе с нулями:
Цитировать
dd if=/dev/sda of=stage1.5.bin bs=512 count=62 skip=1
Лучше всего проверить длину сектора, 53 вряд ли поменяется, но вместо 62 может быть чтото другое.

Хотя, не представляю, кто мог бы испортить эти блоки...

Оффлайн F1restorm

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Резервное копирование и восстановление GRUB
« Ответ #2 : 01 Февраля 2011, 12:44:45 »
А где-нибудь описано (ссылка) физическое расположение GRUB на диске? Искал (en/ru), но толкового ничего не нашел.

Для меня сейчас было новостью, что stage1.5 занимает 53 блока с начала (не считая первого). Это где-то регламентировано или это хакерские выводы? Хотелось бы получить надежный источник информации.

Сейчас буду фантазировать и возможно скажу глупость из-за не знания. Поправьте меня, пожалуйста. Например, для простоты, пусть будет 1 жесткий диск с 2-мя разделами (основной и swap) с которого происходит загрузка и работа ОС. Как я понимаю, первый раздел начинается с некоторым смещением от начала диска (сколько именно не знаю, хотел бы узнать), второй раздел идет сразу за первым до конца диска (так, например, размечено). То есть имеем 3 области: 1 - начало диска под MBR + еще сколько-то под не знаю что (тут наверное должен быть stage1.5?), 2 - первый раздел, 3 - второй раздел.

Мне всегда казалось, что первая область, это строго 512 байт (MBR 446 + раметка разделов 64 + 2 сигнатура). Сразу после первой области должна идти вторая (первый раздел). Случай намеренного смещения первого раздела и оставление пустого места между первой и второй областью не рассматриваем. В коде MBR, по-моему, должна быть ссылка на раздел и имя файла (т.к. файловые системы разные и нужно в их терминах оперировать) в котором находится загрузчик (stage1.5?).

Я хочу сказать, что разве это правильно копировать при помощи dd, что-либо кроме MBR? Разве расположение stage1.5 не может "плавать" относительно начала диска? Другими словами, stage1.5, наверное, может находиться и на другом разделе (в гигабайтах смещения от начала диска) и его не получится скопировать dd с skip=1.

Много написал, надеюсь хоть что-то понятно. :)

Оффлайн Виктор Перестукин

  • Старожил
  • *
  • Сообщений: 2172
    • Просмотр профиля
Re: Резервное копирование и восстановление GRUB
« Ответ #3 : 01 Февраля 2011, 13:53:03 »
Мне не понятно: какая связь между grub2 и stage1.5?

Пользователь решил продолжить мысль 01 Февраля 2011, 15:03:22:
Конец IV главы. Раздел: MBR - бэкап, восстановление и загрузка через образ.
https://forum.ubuntu.ru/index.php?topic=74165.msg556320#msg556320
« Последнее редактирование: 01 Февраля 2011, 15:03:22 от Виктор Перестукин »

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Резервное копирование и восстановление GRUB
« Ответ #4 : 01 Февраля 2011, 17:06:43 »
Цитировать
А где-нибудь описано (ссылка) физическое расположение GRUB на диске? Искал (en/ru), но толкового ничего не нашел. Для меня сейчас было новостью, что stage1.5 занимает 53 блока с начала (не считая первого). Это где-то регламентировано или это хакерские выводы? Хотелось бы получить надежный источник информации.
Попробуйте поискать статьи о порядке загрузки LInux... Уверен что где-то регламентировано...  :)

Суть в том, что разместить загрузчик на 446 байтах очень сложно, а достаточно мощный и гибкий нереально. А стандартная таблица разделов msdos другого не позволяет (сейчас все чаще начинают пользоваться GPT, тк в msdos используется 32-разрядная LBA адресация с сектором в 512 байт, те можно адресовать не более 2Тиб, вобще там еще и CHS используется, что для современных дисков выглядит полным бредом). Как бы там ни было, загрузчик в MBR, загружает другой загрузчик, который уже начинает загрузку файлов с разделов и тд. Если установить grub в раздел (НЕ в MBR как обычно), то общий принцип работы будет похож на работу ntloader, те загрузчик в MBR просматривает 4 основных раздела (записи в MBR), ищет флаг boot и загружает загрузчик из соответствующего раздела. Тут собственно и появляется проблема - раздел должен быть только основной, ведь чтобы найти нужный расширенный нужно прыгать по всему диску.
Хотя CHS вроде как давно потерял смысл (все равно цилиндры/головки/сектора преобразовывются в LBA), тем не менее существуют понятие track. Вот, например, вывод fdisk для моего диска:
Цитировать
Диск /dev/sda: 750.2 ГБ, 750156374016 байт
255 heads, 63 sectors/track, 91201 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd4e1d4e1
Видно, что сектор это 512 байт (это стандарт и для GPT), и в track входит 63 сектора (без понятия почему именно столько - быть может тоже стандарт). Обычно, редакторы разделов округляют раздел до цилиндров (те до трека или дорожки). Исходя из этого, 1 раздел начинается не сразу за MBR, а с новго цилиндра/трека/дорожки. В итоге имеем свободные 63-1 сектор. Место для загрузчика должно быть и в начале каждого раздела, хотя это вероятно отдано на усмотрение файловой системы. Поэтому разместить загрузчик в эти 62*512 байт достаточно правильное решение. В итоге загрузчик (grub установленный в MBR) загружает grub из секторов идущих за нулевым, передает ему управление, тогда он уже может работать с любыми разделами и кроме того понимает фс ext и может загрузить свое меню и/или дополнительные модули.
Те если вы установили grub в MBR (не в раздел), вы всегда найдете stage1.5 сразу после MBR.

Цитировать
Мне не понятно: какая связь между grub2 и stage1.5?
Честно говоря, я тоже вопрос не понял. Если имелось ввиду, почему никто никогда не восстанавливает stage1.5, то это потому что его никто не переписыает, обычно. Во всяком случаее Windows загрузчик ntloader...

Оффлайн Виктор Перестукин

  • Старожил
  • *
  • Сообщений: 2172
    • Просмотр профиля
Re: Резервное копирование и восстановление GRUB
« Ответ #5 : 01 Февраля 2011, 17:56:49 »
В grub2 нет stage1.5
Цитировать
Stage 1.5 has been eliminated.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Резервное копирование и восстановление GRUB
« Ответ #6 : 01 Февраля 2011, 18:27:17 »
А поподробнее... Как называть то, что пишется после MBR?

Пользователь решил продолжить мысль 01 Февраля 2011, 19:19:16:
Понятно, что stage это отражение этапов загрузки, а не расположения загрузчика на диске. Просто как-то надо же их называть, а терминологии подходящей так и не нашел...
Сейчас нашел фразу что stage1.5 ликвидирована в grub2. Но так и не нашел, как grub2 обходится без stage1.5. Если я правильно считаю, то без stage1.5 можно обходиться только если загрузочный раздел находится в начале диска. В остальных случаях необходим режим LBA.
Вероятно это нужно понимать так, что grub2 в любом случае загружает допчасть из MBR после 0 сектора, которая в принципе работает в режиме LBA, и смысл говорить о stage1.5 отпадает. Те нет смысла выделять то, что подключается перманентно, а не опционально (как в grub-legacy).
« Последнее редактирование: 01 Февраля 2011, 19:19:16 от Vitsliputsli »

 

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