Как начать работу, какие диски grub2 на самом деле установил MBR?

Несколько форм сложных команд, таких как циклы имеют альтернативные формы в zsh. Эти формы главным образом вдохновлены оболочкой C, которая была довольно распространена, когда zsh был молод, но теперь исчез. Эти чередуются, формирует действие точно как нормальные формы, они - просто другой синтаксис. Они немного короче, но менее ясны.

Стандартная форма для for команда for x in 1 2 3; do echo $x; done, и стандартная форма для while команда while test …; do somecommand; done. Ksh, удар и zsh имеют альтернативную форму for: for ((i = 0; i < 42; i++)); do somecommand; done, который подражает for циклы языков как Паскаль или C, для перечисления целых чисел. Другие экзотические формы, которые существуют в zsh, характерны для zsh (но часто вдохновляемый csh).

17
11.07.2011, 15:06
2 ответа

MBR составляет 512 байтов, таким образом, быстрый способ видеть, там ли GRUB...

dd if=/dev/sda bs=512 count=1 | xxd

Это выводит MBR, я вижу "GRUB" в моем на уровне байта 0x17F = 383.

dd if=/dev/sda bs=1 count=4 skip=383

Когда я делаю это, это печатает'GRUB'сопровождаемый dd вывод.

Можно перенести это в удар for цикл или что-то для движения через большее количество дисков. если Вы не хотите делать это вручную.

17
27.01.2020, 19:46
  • 1
    Просто незначительное дополнение - потому что положение GRUB, вероятно, изменится от версии до версии, можно использовать dd if=/dev/sda bs=1 count=512 | grep -aob GRUB. Это возвратит положение маркера в загрузочном секторе. –  Alessandro Santini 19.09.2017, 18:31

Существует несколько шагов в процессе начальной загрузки (я описываю традиционный ПК BIOS):

  1. BIOS читает первый сектор (512 байтов) загрузочного диска.
  2. Код в этом первом секторе считывает дальнейшие данные и код в фиксированном местоположении через интерфейс BIOS. Этот интерфейс BIOS только выставляет два жестких диска: диск 0 - то, везде, где первый сектор был считан из, и диск 1 является другим диском, который не легко предсказуем, если у Вас есть больше чем два. Загрузочный сектор содержит байт, который указывает, какой жесткий диск дальнейшие данные идут; это - диск, содержащий /boot/grub.
  3. Код, загруженный на предыдущем этапе, понимает разделы, файловые системы и другие высокоуровневые понятия. Данные включают местоположение файловой системы (т.е. строка как (hd0)/boot/grub) это определяет, где найти grub.cfg и дальнейшие модули Личинки.
  4. grub.cfg выполняется, обычно чтобы показать меню и загрузить ОС.

Загрузочный сектор сгенерирован grub-setup, обычно вызванный через grub-install. Загрузочный сектор заканчивается на любом диске, который Вы указали (в синтаксисе Linux) на grub-install или grub-setup командная строка. Можно проверить, что у Вас есть загрузочный сектор на диске путем выполнения file -s /dev/sda. Так как Вы добавляете новый диск и хотите загрузиться от него, необходимо работать grub-install на новом диске. Выполнение grub-install многократно на том же диске безопасно.

Трудная часть находится на шаге 2 выше. Если во всей возможной, помещенной Личинке (т.е. /boot/grub каталог) на загрузочном диске BIOS (или, приближаясь к этому от другого направления, говорят Вашему BIOS загружаться от диска где /boot/grub ). Это то, где device.map играет роль. Удостоверьтесь это (hd0) отображается на диске, который содержит /boot/grub, затем выполненный grub-install на том диске.

Если Ваши два диска будут в программном обеспечении RAID 1 конфигурация, то у Вас будут идентичные загрузочные секторы. Это - желательное поведение: если один диск, который является сбоями загрузочного диска BIOS, загружающимися от другого, будет просто работать (так как они содержат те же байты в тех же соответствующих местоположениях). Если Вы только зеркально отразили определенные разделы, то установка загрузочного сектора только влияет на один из дисков. Необходимо работать grub-install снова на втором диске, после изменения device.map связаться (hd0) с диском, содержащим вторую зеркальную копию /boot/grub.

Шаг 3 довольно сложен, но обычно работает из поля. На шаге 4 Личинка определяет местоположение файловых систем UUID или ищет именованные файлы, таким образом, Вы больше не должны волноваться о различных способах определять диски.

16
27.01.2020, 19:46

Теги

Похожие вопросы