Докладываю - заборол я таки установку OpenSUSE 11.3 на зеркало с нуля. Прошёл внимательно всё по шагам и нашёл ошибку в инсталляторе при работе с RAID1. Ошибка подтверждена другими людьми. Что интересно, с этим было всё нормально до OpenSUSE 11.1 включительно, потом в 11.2 RC вылезла проблема, стал неправильно ставиться загрузчик. Починили в 11.2 rc8. В 11.3 -похоже, снова сломали. При установке поверх - работает, ломается именно при установке с нуля.
Итак, что ломалось - инсталлятор неправильно вписывал root-вый раздел в /boot/grub/menu.lst. У меня корень ('/', отдельный /boot я в этот раз не стал делать) был на первом разделе, а вписывался почему-то нулевой (цветом выделена правильная цифра, вместо которой был ноль):
cat /boot/grub/menu.lst
# Modified by YaST2. Last modification on Wed Dec 22 10:17:45 NOVT 2010
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,1)/boot/message
##YaST - activate
###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.34.7-0.5
root (hd0,1)
...
Исправил просто, загрузив rescue из установки, подмонтировав нужный раздел и отредактировав вручную файл menu.lst. С установкой SLES11SP1 таких траблов не было, всё строго по инструкции (с ручным дополнительным прописыванием загрузчика в MBR второго диска).
Кстати, в /etc/grub.conf у меня сейчас полный порядок:
- Код: Выделить всё
cat /etc/grub.conf
setup --stage2=/boot/grub/stage2 --force-lba (hd0) (hd0,1)
setup --stage2=/boot/grub/stage2 --force-lba (hd1) (hd1,1)
quit
Что интересно - сразу после установки, перед первой перезагрузкой, в /boot/grub/menu.lst.old содержался тоже неправильный вариант (не тот раздел), но с более короткими строками загрузки ядра:
- Код: Выделить всё
kernel /boot/vmlinuz root=/dev/md1 resume=/dev/md0 splash=silent quiet showopts vga=0x317
А в окончательном варианте это заменилось на длинющую строку с disk/by-id:
- Код: Выделить всё
kernel /boot/vmlinuz-2.6.34.7-0.5-desktop root=/dev/disk/by-id/md-uuid-758c031a:a576285e:249500d7:5d3ceafb resume=/dev/disk/by-id/md-uuid-844b4c3a:2145aa8b:c593ea6e:0ac7bf2b splash=silent quiet showopts vga=0x317
Пробовал оба варианта - загружается и так и так. В /etc/fstab - та же ерунда:
- Код: Выделить всё
cat /etc/fstab
/dev/disk/by-id/md-uuid-844b4c3a:2145aa8b:c593ea6e:0ac7bf2b swap swap defaults 0 0
/dev/disk/by-id/md-uuid-758c031a:a576285e:249500d7:5d3ceafb / ext3 acl,user_xattr 1 1
/dev/disk/by-id/md-uuid-03592fd2:c46a57ce:840fe6ff:3e523262 /home ext3 acl,user_xattr 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
С укороченным вариантом:
- Код: Выделить всё
cat /etc/fstab
/dev/md0 swap swap defaults 0 0
/dev/md1 / ext3 acl,user_xattr 1 1
/dev/md2 /home ext3 acl,user_xattr 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
...тоже работает без проблем. В чём смысл этих длинных disk/by-id ?
Сейчас буду играться с fallback в menu.lsl - хочу добиться автоматической загрузки при сбое одного из дисков.