Несколько форм сложных команд, таких как циклы имеют альтернативные формы в 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).
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
цикл или что-то для движения через большее количество дисков. если Вы не хотите делать это вручную.
Существует несколько шагов в процессе начальной загрузки (я описываю традиционный ПК BIOS):
/boot/grub
.(hd0)/boot/grub
) это определяет, где найти grub.cfg
и дальнейшие модули Личинки.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 или ищет именованные файлы, таким образом, Вы больше не должны волноваться о различных способах определять диски.
dd if=/dev/sda bs=1 count=512 | grep -aob GRUB
. Это возвратит положение маркера в загрузочном секторе. – Alessandro Santini 19.09.2017, 18:31