LINUX.ORG.RU

Переход на xfs,reiserfs,ext3 с ext3,reiserfs,etc в opensuse. проблема загрузки


0

0

Просто забэкапить все разделы, сменить fs и fstab - недостаточно.

система грузится с grub, но как так получается, что фс ("/"), которая забивалась при установке, видна, а если ее сменить, нет.
Ядро же дефолтное. initrd, тоже
вылетает kernel panic на неизвестную фс

вероятно, ключи забиваются в grub, но какие!?

Люди. Большая просьба помочь разобраться.

Либо, ставить lilo, когда ядро ляжет в mbr, либо как-то настроить grub.

Кто имел опыт с переходом на др. фс в opensuse/ Других дистрибутивах, с grub.

anonymous

При смене файловой системы, на которую был установлен grub, его нужно заново активировать, чтобы он нашёл свой stage1.

# grub

Говорим где лежит /boot:

grub> root (hd0,0)

Ищем stage1:

grub> find /boot/grub/stage1

Покажет, где находится stage1, затем "активируем":

grub> setup (hd0,0) или (hd0)

Первый вариант, если вы н хотите его ставить в MBR.

anonymous
()

>вылетает kernel panic на неизвестную фс Значт, хотя бы GRUB работает ;)

Перекомпилируй ядро и сделай поддержку fs которая у тебя в / встроенной в ядро (не модулем). В этом случае можно будет обойтись без Initrd.

Пошагово (должны быть установленны исходники ядра, и всякие development-tool (gcc, etc):

В слуае ядра 2.6.ххх: su; cd /usr/src/linux ; make menuconfig ; в File systems выбираешь твою fs и жмешь "y". Должна появиться звездочка вместо M.

Потом: make clean bzImage modules modules_install, и ждешь... После успешной компиляции: cp arch/i386/boot/bzImage /boot/mykernel.img

В конфиге GRUB'a (/boot/grub/menu.lst обычно) копируешь какой-нибудь пункт и правишь его под только что скомпилированное ядро. Строчку initrd при этом убираешь.

Это вкратце.

Harliff ★★★★★
()

А вообще более правильно будет сделать отдельный раздел под /boot (100Мб, ext2/3, hda1-4), а / и прочее -- extended (hda5+) (или hdb, hdc...)

Harliff ★★★★★
()
Ответ на: комментарий от anonymous

>При смене файловой системы, на которую был установлен grub, его нужно заново активировать, чтобы он нашёл свой stage1.

так то оно, так, но не получается ничего

grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> find /boot/grub/stage1
(hd0,0)
grub> setup (hd0,0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 p /boot/grub/menu
.lst "... succeeded
Done.

stage1, stage2, e2fs_stage1_5, все находятся на /dev/hda1 (0,0)

сетап делал и в mbr и в первые сектора раздела (0,0), как ты говорил.
ни один из вариантов не проходит.

как я это вижу, загрузчик почему-то не тянет initrd

anonymous
()
Ответ на: комментарий от anonymous

>А вообще более правильно будет сделать отдельный раздел под /boot (100Мб, ext2/3, hda1-4), а / и прочее -- extended (hda5+) (или hdb, hdc...)

сделал, кстати, так

почитал еще Федорчука. У него есть документация по установке Gentoo.

там описывалось, как ставить grub, с объяснениями.

Кстати, если грузиться с lilo, то все ок.

anonymous
()
Ответ на: комментарий от anonymous

>почитал еще Федорчука. У него есть документация по установке Gentoo.

Не в курсе, как gentoo, а слаку можно загрузить вот так: втыкаешь сидюк, он запускается и спрашивает какое ядро загружать. По TAB'у обычно можно посмотреть спикок. Берешь из этого списка какой-нибудь пункт, и подставляешь его вместо <image_name>...

Пишешь: <image_name> root=/dev/hda2 noinitrd ro

Где hda2 -- твой root раздел. Только предупреждение: модули для ядра, которое ты загрузишь с диска, должны быть в /lib/modules твоего корневого раздела. (например /lib/modules/gentoo-2.6.16-r1, если uname -r выдает тебе gentoo-2.6.16-r1).

По идее, ты должен получить свою систему с ядром по умолчанию...

Делаешь: grub-install --recheck /dev/hda1 (если hda1 у тебя -- /boot).

Harliff ★★★★★
()
Ответ на: комментарий от anonymous

>почитал еще Федорчука. У него есть документация по установке Gentoo.

Не в курсе, как gentoo, а слаку можно загрузить вот так: втыкаешь сидюк, он запускается и спрашивает какое ядро загружать. По TAB'у обычно можно посмотреть спикок. Берешь из этого списка какой-нибудь пункт, и подставляешь его вместо <image_name>...

Пишешь: <image_name> root=/dev/hda2 noinitrd ro

Где hda2 -- твой root раздел. Только предупреждение: модули для ядра, которое ты загрузишь с диска, должны быть в /lib/modules твоего корневого раздела. (например /lib/modules/gentoo-2.6.16-r1, если
uname -r выдает тебе gentoo-2.6.16-r1).

По идее, ты должен получить свою систему с ядром по умолчанию...

Делаешь: grub-install --recheck /dev/hda1
(если hda1 у тебя -- /boot).

Вот тебе пример моего конфига grub'a:


timeout 10
default 0

title Slackware (bare.i 2.6.18) 1024x768x16M
root (hd0,0)
kernel /boot/vmlinuz-generic-2.6.18 vga=0x318 ro root=/dev/hdb5

Harliff ★★★★★
()
Ответ на: комментарий от anonymous

>вернее, за ядром не подтягивается initrd, где модули файловых систем типа reiserfs итц..

Варианты решения: 1. Заставить работать initrd. Вот тебе пример конфига с initrd:

default=0 timeout=10 title Red Hat Linux (2.4.7-10) root (hd0,1) kernel /vmlinuz-2.4.7-10 ro root=/dev/hda3 hdc=ide-scsi initrd /initrd-2.4.7-10.img

В initrd я не очень большой мастак, так что сам разбирайся.

2. Вкомпилировать в ядро основный драйвера и поддержку твоей FS и забить на initrd. Я так и делаю обычно. Правда, как с SATA в этом плане дела обстоят, я не в курсе. С обычным ATA нет проблем.

Harliff ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.