LINUX.ORG.RU
ФорумAdmin

Не могу установить Grub на программный raid=1

 , , , ,


1

1

Доброго времени суток. Пытаюсь поставить grub на програмный Raid=1 диски: sda:

dev/sda1               1          66      530113+  fd  Linux raid autodetect
/dev/sda2              67         328     2104515   fd  Linux raid autodetect
/dev/sda3             329        4245    31463302+  fd  Linux raid autodetect
/dev/sda4            4246       30401   210098070   fd  Linux raid autodetect
sdb:
/dev/sdb1               1          66      530113+  fd  Linux raid autodetect
/dev/sdb2              67         328     2104515   fd  Linux raid autodetect
/dev/sdb3             329        4245    31463302+  fd  Linux raid autodetect
/dev/sdb4            4246       30401   210098070   fd  Linux raid autodetect
4 raid массива (dm0-3) соответственно. Файловые системы:
/dev/md0 /boot ext3
/dev/md1 swap 
/dev/md2 / ext4
/dev/md3 /home ext4

Ставлю grub:

grub> root (hd0,0)
root (hd0,0)
 Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... no

Error 2t: Bad file or directory type
grub> root (hd1,0)
root (hd1,0)
 Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd1)
setup (hd1)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... no

Error 2t: Bad file or directory type

В grub-install

grub-install /dev/sda --root-directory=/mnt/root/
The file /mnt/root//boot/grub/stage1 not read correctly.
grub-install /dev/sdb --root-directory=/mnt/root/
/dev/sdb does not have any corresponding BIOS drive.
grub-install /dev/md0 --root-directory=/mnt/root/
/dev/sdb1 does not have any corresponding BIOS drive.

Гугл по ошибке подсказал что такое бывает: 1)Если раздел был отформатирован с 256-битными inode. Исправил, не помогло:

tune2fs -l /dev/sda1 | grep -i 'inode size'
Inode size:	          128
[root@livecd centOS]# tune2fs -l /dev/sdb1 | grep -i 'inode size'
Inode size:	          128
[root@livecd centOS]# tune2fs -l /dev/md0 | grep -i 'inode size'
Inode size:	          128
[root@livecd centOS]# 
2) Если raid не закончил синхронизацию (проверил):
cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb1[1] sda1[0]
      529536 blocks super 1.2 [2/2] [UU]
      
md3 : active raid1 sdb4[1] sda4[0]
      209966848 blocks super 1.2 [2/2] [UU]
      
md2 : active raid1 sdb3[1] sda3[0]
      31446784 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 sdb2[1] sda2[0]
      2102400 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

В общем идеи кончились, прошу помощи! заранее спасибо)

Как ни странно, проблема не в руках. Если не хочешь проблем, то в RHEL 6 лучше не толкать /boot на RAID. Либо использовать GRUB2. GRUB 0.9x в принципе не сможет понять том массива с суперблоком в начале (1.2).

Gotf ★★★ ()

Это зеркальный рейд. Для /boot делается отдельный раздел и grub ставится на каждый диск отдельно. Зачем буту зеркало?

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

Сделал так:

mdadm --create --metadata=1.0 --level=1 --raid-devices=2 /dev/md0 /dev/sda1 /dev/sdb1
форматнул в ext4, скопировал в /boot все что нужно. Груб поставился. Теперь другая проблема: не могу заставить грузится ОС после груб. валит сплошной kernel panic. образ initramfs пересобирал так:
dracut --mdadmconf --force /boot/initramfs-`uname -r`.img `uname -r`
ошибок не было, в /boot/grub/grub.cfg поменял на новый initramfs

Начинается загрузка, вываливает

mount you must specify the filesystem type
Я так понимаю оно не понимает что нужно грузится с md2 (здесь корень)? как победить?

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

Там среди сообщений перед

mount you must specify the filesystem type
должно быть что-то типа:
dracut: Starting MD RAID array /dev/md0
или у вас там паника и Shift+PgUp не прокручивают экран вверх?

И из boot-строки ядра нужно убрать параметры «rhgb» и «quiet», чтобы видеть текстовые сообщения от ядра, а не красивую картинку.

mky ★★★★★ ()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от Gotf

Как ни странно, проблема не в руках. Если не хочешь проблем, то в RHEL 6 лучше не толкать /boot на RAID.

Отлично работает. На домашней тачке так юзаю, правда не rhel, a centos. Даже больше скажу - поверх RAID накатил LVM. Единственный нюанс - в LVM не должен быть /boot

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

Я, например, когда дома ставился, у меня тоже не взлетело - неправильно автоматом был сконфигурен grub. я редактировал в загрузчике диск (hdX,Y), на котором находилось ядро. Надо было вроде вписать (hd2,1), только у меня разметка чуть не такая как у тебя. В общем я с цифрами поигрался 10 минут и заработало. Исправил конфиг grub и все. initramfs не трогал. в ядро ничего не добавлял - свежая установка.

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

Попробуйте добавить к строке параметров ядра rootwait, вроде как это должно отложить панику и позволить прокручивать экран с сообщениями ядра.

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

Отлично работает.

Делал по руководству из centos wiki? Тогда попробуй удалить из массива один диск — в 6.3 после этого ломалась загрузка. И официально такая конфигурация не поддерживается.

Gotf ★★★ ()

Попробуй grub2. Я теперь не имею проблем с grubом2 на любом диске зеркала. На Debiane подсказал бы.

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

Делал по руководству из centos wiki?

Нет, у меня своя конфигурация. Литературой пользуюсь на access.redhat.com

Тогда попробуй удалить из массива один диск — в 6.3 после этого ломалась загрузка.

Пробовал, комп загружался (если конечно разрешена загрузка с деградировавшего raid). Такую вещь и на серваках делал. Просто загрузчик на оба винта ставишь. Принципиально загрузиться можно и с другого носителя если случилась беда, а загрузчик был установлен лишь на один диск.

И официально такая конфигурация не поддерживается.

УМВР.

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

Если все еще актуально, то при создании raid необходимо указывать metadata=0.90, к примеру

mdadm --create --metadata=0.90 --level=1 --raid-devices=2 /dev/md0 missing /dev/sdb1

так же в grube необходимо указать следующее

title CentOS (2.6.32-358.23.2.el6.x86_64) hd1 root (hd0,0) kernel /boot/vmlinuz-2.6.32-358.23.2.el6.x86_64 ro root=/dev/md0 nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet initrd /boot/initramfs-2.6.32-358.23.2.el6.x86_64.img

anonymous ()

Ну как плставил?

Попробуй размер бута меньше 500 метров - хоть 499

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