LinuxForum.Fans
Тема

Grub - проблемы с настройкой

Автор: sv_lary 15 сообщений 4864 просмотров
#151524

Столкнулся с загадочным поведением загрузчика grub. А, может быть, вовсе и не он в этом виноват. Поэтому, все по порядку

1) Изначально имелась такая конфигурация дисков:

  • IDE-1
  • IDE-2

Некоторое время назад, система мониторинга оборудования предупредила, что IDE-2 дышит на ладан и его нужно заменить.
Я купил SATA диск и подключил его к системе. В результате получилась такая конфигурация:

  • /dev/hda
  • /dev/hdb
  • /deb/sda

2) После этого я разбил диск /dev/sda на разделы и установил на нем ос :

  • /dev/sda1 - /boot
  • /dev/sda3 - /

3) Все работает замечательно - ОС грузится, все диски видны. В том числе и старый /dev/hdb

4) Я переношу информацию hdb -> sda и удаляю hdb из системы. Остается :

  • /dev/hda
  • /deb/sda

5) Все, по прежнему, грузится, работает и монтируется нормально. Но...

6) Когда я пытаюсь установить новое ядро в каталог /boot и изменить соответствующим образом grub.conf,
происходит странная вещь :

text
# fdisk /dev/sda

Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 63 224909 112423+ 83 Linux /dev/sda2 224910 4337549 2056320 82 Linux своп /dev/sda3 4337550 214066124 104864287+ 83 Linux

. . . .

# mount

/dev/sda1 on /boot type ext2 (rw,noatime) /dev/sda3 on / type ext3 (rw,noatime) . . .

grub.conf :

root (hd0,0) title Сгенерировано genkernel и загружается без проблем kernel /boot/kernel-genkernel-x86_64-2.6.36-gentoo-r8 root=/dev/ram0 real_root=/dev/sda3 doscsi initrd /boot/initramfs-genkernel-x86_64-2.6.36-gentoo-r8 title Не загружается. Говорит, что на устройстве bock(0,3) не ФС kernel /boot/vmlinuz-2.6.36-gentoo-r8_my root=/dev/sda3 doscsi

title Начинает загружаться, уже пошли зеленые строчки и выдает, что раздел /dev/sda3 - нулевой длины. Спрашивает - исправить ? kernel /boot/vmlinuz-2.6.36-gentoo-r8_my root=/dev/sdb3 doscsi

Т.е. почему-то, для последующей загрузки недоступны корневые ФС, если их указать на /dev/sda3.
А если указать на /dev/sdb3 (какое sdb - откуда оно беется?!), то загрузка начинается, но завершается аварийно...
Все ядра лежат в одном каталоге /boot смонтированном на /dev/sda1, а корень - /dev/sda3

Есть какие-то идеи ?

#151636

Покажите вывод fdisk -l
а так же свой /etc/fstab и /etc/mtab заодно

#151842
Vadimsky написал:
Покажите вывод fdisk -l
а так же свой /etc/fstab и /etc/mtab заодно

да скорее всего в нем и засада , вопрос по ходу - а initrd вы как собирали до изменения или после ?

#151855
sv_lary написал:
Столкнулся с загадочным поведением загрузчика grub. А, может быть, вовсе и не он в этом виноват. Поэтому, все по порядку

1) Изначально имелась такая конфигурация дисков:
  • IDE-1
  • IDE-2

Некоторое время назад, система мониторинга оборудования предупредила, что IDE-2 дышит на ладан и его нужно заменить.
Я купил SATA диск и подключил его к системе. В результате получилась такая конфигурация:

  • /dev/hda
  • /dev/hdb
  • /deb/sda

2) После этого я разбил диск /dev/sda на разделы и установил на нем ос :

  • /dev/sda1 - /boot
  • /dev/sda3 - /

3) Все работает замечательно - ОС грузится, все диски видны. В том числе и старый /dev/hdb

4) Я переношу информацию hdb -> sda и удаляю hdb из системы. Остается :

  • /dev/hda
  • /deb/sda

5) Все, по прежнему, грузится, работает и монтируется нормально. Но...

6) Когда я пытаюсь установить новое ядро в каталог /boot и изменить соответствующим образом grub.conf,
происходит странная вещь :
...

Есть какие-то идеи ?

Новое ядро. Скорее всего hda -> sda; sda -> sdb
В новых ядрах все харды как sd

#151984
Vadimsky написал:
Покажите вывод fdisk -l
а так же свой /etc/fstab и /etc/mtab заодно

1) fdisk показывает все нормально :

  • Disk /dev/hda 320G (Это старый винт)
  • Disk /dev/sda 1000G (Это новый)

fstab:

text
# Linux диски
/dev/sda1   /boot    ext2
/dev/sda3   /            ext3
. . . .
# Windows диски
/dev/hda1  /mnt/disk_c    ntfs-3g
. . . . .

mtab:

/dev/sda3 / ext3
/dev/sda1 /boot ext2

Поскольку комп у меня не работает - пишу с другого, поэтому возможны опечатки...

#151988
Vadimsky написал:
initrd вы как собирали до изменения или после ?

Для надежности решил сделать genkernel-ом, думал, что он разберется с этой заковыкой. Так что и ядро и initramfs собирались одновременно. То, что ДО отключения старого диска-грузится нормально,то, что ПОСЛЕ отключения - не грузится никак.

#151990
CyberDaemon написал:
Скорее всего hda -> sda; sda -> sdb

Я тоже так думал. Но вот своими глазами вижу, что старый присутствует как hd, а новый - как sd...

#152056

А ядро какое у вас? случаем не 2.4.ххх ?
Обновится не желаете?

#152399

А ядро какое у вас? случаем не 2.4.ххх ?

Нет, разумеется... 2.6.36-gentoo-r8/ Меня другое смутило. Я загрузился с установочного диска и переустановил grub с помощью grub-insatll. Так вот, после того как инсталлятор доложил об успешной инсталляции grub-а, он выдал любопытную табличку :

  • hd0 - /dev/hda
  • hd1 - /dev/hdb
  • hd2 - /dev/sda
  • hd3 - /dev/sdb

Я пришел в некоторое изумление.... Что за диски hdb и sdb ?! И почему они в таком порядке ?! Ведь в BIOS-се прописан обратный порядок устройств. (Не в пункте "Загрузка", а в пункте "Порядок диcков")...

Я попробовал в /boot/grub/grub.conf прописать

text
root (hd2,0)

После этого загрузчик выдал, что он не может даже полуторную (1.5) стадию grub-а загрузить.
Я восстановил root (0,0) и вот - Windows со старого диска загружается! :-(
Если же пытаюсь загрузить Linux с нового винта, то выдается сообщение, что на устройстве /dev/hda3 (Hda !!!) нет корневой ФС.
А его там и в самом деле - нет. Потому, что устройство /dev/hda3 - это расширенный раздел СТАРОГО винта.
В самом /boot/grub/grub.conf у меня указано real_root=/dev/sda3 (Sda !!!).

Я предполагаю, что в силу каких-то причин, grub просто не видит SATA-шный винт на этапе загрузки. Это мое предположение
основывается на том. что перед "кернел паник" он выдает таблицу разделов СТАРОГО IDE винта... Параметр doscsi в строке загрузки ядра есть.

#152492

Странно что в ядре 2.6 разделы определяются как /dev/hda, вы ничего не путаете?

#152598

в ядре 2.6 разделы определяются как /dev/hda

Я тоже этим был удивлен. Ведь когда я ставил 2.6.28 на старую конфигурацию : 2 * IDE - и оба винта в системе назывались /dev/sd.. !
А вот в 2.6.36 получается, он опять стали /dev/hd...

#152824

Обновите genkernel и соберите заново ядро.
Возможно, у генкернела просто старые конфиги, где еще вкючались IDE диски как hda,hdb и т.д.
А лучше сконфигурируйте ядро руками
[console]genkernel --menuconfig[/console]
Когда появится меню конфигурации ядра
Device Drivers ---> ATA/ATAPI/MFM/RLL support (DEPRECATED)
Поставьте в этом пункте 'n', чтобы ни в ядре не модулем этой штуки не было.
Оно давно уже депрекейтед и использовать его не стоит.
После этого все винты станут (я надеюсь) sda/sdb/sdc и т.д.

#153330
bobr написал:
А лучше сконфигурируйте ядро руками

Ничего не помогает... :-( Вчера переформатировал раздел /boot, переустановил ядро и grub. Прямо - мистика какая-то !!! Самое удивительное заключается в том. что когда на экране появляется меню grub-а и я нажимаю клавишу "Е", то grub ВИДИТ SATA-шный диск ! И, нажимая клавишу "Tab" я могу автодополнением выбрать и диск, и имя файла ядра и initramfs... Все он видит ! Но, как только нажимаю клавишу "В", тут же появляется сообщение о том, что на /dev/hda3 нет корневой файловой системы. А диск /dev/sda отсутствует напрочь...
Единственное, что настораживает, это то, что когда я пытаюсь автодополнением заполнить значение параметра "real_root=" grub ругается и говорит нечто вроде, что строка устройства неправильная (точно не помню, как)... И что это значит, я не понимаю.

#153483

Покажите конфиг ядра (не забывайте пользоваться тегами spoiler).
Не должно быть у вас на тридцать шестом ядре никаких hda.

#154974

Я не смог победить эту проблему. Кончилось все тем, что взял установочный диск Calculate 11.3 и за 15 минут поставил систему. Интересно то, что теперь старый (виндовозный) винт стал /dev/sda, а новый - /dev/sdb.... Хотя в BIOS-е новый винт идет первым и при установке я указывал его разделы как /dev/sda (a - !!!). Короче - темна вода в облацах...

Войдите или зарегистрируйтесь, чтобы ответить.