Под пстокатом портянка^W кулстори о том, как восстановить загрузчик кубунты, имея фрю, флешку и минимум трафика. Тянет на пост в песочницу — я предупредил.
Проблема — freebsd loader при установке в mbr затер grub2. Вместо того, чтобы, как все нормальные загрузчики типа ntldr и иже, спокойно грузиться при передаче управления на свой раздел, grub2 в этом случае обламывается (помню, линуксоиды еще орали про то, что винда их загрузчики не подхватывает — три ха-ха). Итак, тянем во фрю с официального фтп или зеркал пакеты (ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages) libiconv, gettext и grub2 и устанавливаем через pkg_add /путь/к/пакету либо устанавливаем напрямую (pkg_add -r libiconv gettext grub2). Подсоединяем флешку, монтируем ее к /mnt (имя устройства флешки смотрим в dmesg либо в первой консоли, в примере da0s1) mount -t msdosfs /dev/da0s1 /mnt Устанавливаем груб через grub-install --debug --recheck --force --root-directory=/mnt da0s1 Вывалится огромный лог, и в конце его grub2 обломится на grub-setup, не найдя партицию. Переписываем последнюю строчку, которая выполнялась, и заменяем в ней в конце da0s1 на /dev/da0s1 Груб должен поставится. Перезагружаемся (кстати, фряшный лоадер подхватывает флешки, так что обычно можно нажать просто F5 и загрузиться с флешки). Попадем мы в голый grub2. Нам нужно найти линуховую партицию, ядро и initrd. делаем ls, получаем список партиций в грубовом формате. Если не помним, где и что, действуем методом перебора. Учитываем, что в груб2 ВНЕЗАПНО нумерация диска начинается с 0, а партиции на нем — с 1 (первая партиция на первом диске теперь (hd0,1), а не (hd0,0) как раньше), а с груба 1.99 партиции вообще именуются как файловые системы (типа (hd0,msdos1)). Вот уебки-то. Устанавливаем рут: root (hd0) если напишете без скобок, то партиция не сменится, но и ошибки не выкинет. Посмотреть текущий рут можно просто командой root. Далее ls /boot , если нашли там ядро — то ок, если нет, меняем рут и повторяем. Далее устанавливаем ядро linux /boot/vmlinuz- (можно автодополнить по Tab) root=/dev/sda1 (тут путь к рутовой партиции в нотации линукса, например /dev/sda1). Далее initrd /boot/initrd-(Tab) . Инит должен быть той же версии, что и ядро. Ну и boot. По загрузке в линукс можно восстановить grub через grub-install.
Проблема — freebsd loader при установке в mbr затер grub2. Вместо того, чтобы, как все нормальные загрузчики типа ntldr и иже, спокойно грузиться при передаче управления на свой раздел, grub2 в этом случае обламывается (помню, линуксоиды еще орали про то, что винда их загрузчики не подхватывает — три ха-ха).
Итак, тянем во фрю с официального фтп или зеркал пакеты (ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages) libiconv, gettext и grub2 и устанавливаем через pkg_add /путь/к/пакету либо устанавливаем напрямую (pkg_add -r libiconv gettext grub2).
Подсоединяем флешку, монтируем ее к /mnt (имя устройства флешки смотрим в dmesg либо в первой консоли, в примере da0s1)
mount -t msdosfs /dev/da0s1 /mnt
Устанавливаем груб через
grub-install --debug --recheck --force --root-directory=/mnt da0s1
Вывалится огромный лог, и в конце его grub2 обломится на grub-setup, не найдя партицию. Переписываем последнюю строчку, которая выполнялась, и заменяем в ней в конце da0s1 на /dev/da0s1
Груб должен поставится. Перезагружаемся (кстати, фряшный лоадер подхватывает флешки, так что обычно можно нажать просто F5 и загрузиться с флешки).
Попадем мы в голый grub2. Нам нужно найти линуховую партицию, ядро и initrd.
делаем ls, получаем список партиций в грубовом формате. Если не помним, где и что, действуем методом перебора. Учитываем, что в груб2 ВНЕЗАПНО нумерация диска начинается с 0, а партиции на нем — с 1 (первая партиция на первом диске теперь (hd0,1), а не (hd0,0) как раньше), а с груба 1.99 партиции вообще именуются как файловые системы (типа (hd0,msdos1)). Вот уебки-то.
Устанавливаем рут:
root (hd0)
если напишете без скобок, то партиция не сменится, но и ошибки не выкинет. Посмотреть текущий рут можно просто командой root.
Далее ls /boot , если нашли там ядро — то ок, если нет, меняем рут и повторяем.
Далее устанавливаем ядро linux /boot/vmlinuz- (можно автодополнить по Tab) root=/dev/sda1 (тут путь к рутовой партиции в нотации линукса, например /dev/sda1).
Далее initrd /boot/initrd-(Tab) . Инит должен быть той же версии, что и ядро.
Ну и boot.
По загрузке в линукс можно восстановить grub через grub-install.
> grub-install --debug --recheck --force --root-directory=/mnt da0s1
а сразу сказать /dev/da0s1 нельзя?
Тогда он обломится на grub-probe