(Кликните, чтобы показать/скрыть)
в случае, если нужно только восстановить MBR диска (например, после (пере)установки Windows), все можно сделать еще проще, вообще ничего не монтируя.
все так же грузимся с liveCD. определить, какой нужен жесткий диск можно опять же с помощью "sudo fdisk -l". если он один - значит, sda.
и вот, собственно, команда на "мат в один ход":
Код:
sudo grub-install --root-directory=/tmp /dev/sda
создание LiveCD с GRUB2
в случае, если ваш компьютер не поддреживает загрузку с usb, можно создать cd-диск с grub2, через который можно будет загрузить свою систему при неисправности основного grub2.
для начала создадим в удобном месте папку, в которой будем собирать наш диск, а в ней вложенные папки "/boot" и "/boot/grub":
Код:
mkdir -p tmp/iso/boot/grub
Код:
cp /usr/share/grub/unicode.pf2 tmp/iso/boot/grub
для тех же, кто избрал "путь самурая" - подробнее о создании собственного "grub.cfg" вы можете почитать выше, в разделе "создание дополнительных меню загрузки". здесь же опишу лишь некоторые специфичные для LiveCD вещи.
если вы берете за основу "/boot/grub/grub.cfg" - уберите из него строки, задающие ваш рут-раздел системы в качестве root ("search.... uuid_раздела...."). корневым разделом должен быть cd-диск!
если вы выбрали вариант с графическим меню - нужно обязательно подгрузить скопированный ранее шрифт. кроме того, следует, собственно, включить графический режим. для этого добавьте такие строки:
Код:
loadfont /boot/grub/unicode.pf2
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else terminal gfxterm; fi
insmod part_msdos
загрузка данного модуля обязательна! без него полученный grub2 увидит только жесткий диск, но не увидит таблицу разделов на нем, и такой LiveCD будет бесполезен.
про настройки цветов/разрешения и всего прочего читайте в вышеупомянутом разделе. а теперь же перейдем к созданию самого меню.
вы можете скопировать нужные пункты из "/boot/grub/grub.cfg", но я рекомендую написать их с нуля, ибо для корректной работы тамошних пунктов потребуется загрузка дополнительных модулей. а написать их несложно, для Linux-системы пункт меню должен иметь такой вид:
Код:
menuentry "9.10 @ 2.6.32" {
search -u uuid_раздела -s
linux /boot/vmlinuz-xxxxxxx root=/dev/sdXY quiet splash single или_что_там_еще
initrd /boot/initrd.img-xxxxxx
}
для Windows будет что-то такое:
Код:
menuentry "winxp" {
searсh -u uuid_раздела_с_win -s
chainloader +1
}
Код:
grub-mkrescue --overlay=tmp/iso/ tmp/grub.iso
если все успешно - получаем на выходе очень небольшой iso-шник (~2.8M), прожигаем его на rw-шку и пробуем грузиться!
ниже, как и обещал, привожу пример файла "grub.cfg", корректно работающего на LiveCD с комментариями:
(Кликните, чтобы показать/скрыть)
создание LiveCD с GRUB2 на базе имеющегося дистрибутива.
(за идею спасибо тов. komix)
поскольку тратить целую болванку ради записи iso-шника с grub2 в 3 мегабайта было бы глупо, можно совместить приятное с полезным, а именно: LiveCD с grub2 и установочный диск какой-нибудь системы. исходить мы будем из того, что имеется iso некоего LiveCD, к которому мы хотим прикрутить grub2.
порядок действий будет в целом аналогичен описанному в предыдущем пункте. первым делом создадим папку, в которой будем собирать наш новый диск. в ней же создадим папку /boot/grub и папку, в которую будут помещены файлы нашей live-системы (я назову ее live):
Код:
mkdir -p tmp/iso/{boot/grub,live}
Код:
sudo mount -o loop downloads/some-live-system.iso tmp/iso/live
как именно нужно запускать "живое ядро"? на этот вопрос нет универсального ответа. узнать это можно, покопавшись в настройках прилагаемого загрузчика (обычно это isolinux или же старый grub - в обоих случаях понять логику несложно). приведу конкретный пример для мини-дистрибутива Parted Magic:
Код:
menuentry "Parted Magic" {
linux /live/bzImage
initrd /live/initramfs
}
обратите внимание на то, что здесь не используются строки вида "set root..." или "search...". если вы создали правильный "grub.cfg", то корневым разделом при загрузке устанавливается cdrom, поэтому нет нужды его задавать повторно.
после того, как "grub.cfg" готов, можно приступить к созданию iso-образа:
Код:
sudo grub-mkrescue --overlay=tmp/iso tmp/my-live-system-grub2.iso
отмонтируем оригинальный iso:
Код:
sudo umount tmp/iso/live