gentoo + soft raid1 + grub2 [РЕШЕНО]
kodoss 18 марта, 2013 - 15:38
Здравствуйте, столкнулся с проблемой загрузки системы с soft рейда 1. При загрузке ядро в панике зависает система с ошибкой что не может подмонтировать корень. Ядро собрал через genkernel с добавлением драйвером и софт рейда. Много таких тем видел но не где не нашел решения. За ранние спасибо.
Вот ошибка если грузиться с рейд массива.
* sys-boot/grub
Latest version available: 2.00-r2
Latest version installed: 2.00-r2
>> Determining root device...
!!! Could not find the root block device in UUID=****-***-**-*****.
Please specify another value or: Press Enter for the same, type "shell" for a shell, or "q" to skip....
root block device(UUID=****-***-**-**-****) ::
uname
Linux 3.8.2-gentoo #1 SMP Mon Mar 11 16:02:10 EET 2013 x86_64 Intel(R) Core(TM) i5 CPU 660 @ 3.33GHz GenuineIntel GNU/Linux
ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 9 марта 18 2013 2bf59453-f86d-4e1f-9724-4fee0e9f532b -> ../../md0 lrwxrwxrwx 1 root root 10 марта 18 2013 3e638635-55b3-405d-8ad6-605cc865ed3a -> ../../sda1 lrwxrwxrwx 1 root root 10 марта 18 2013 63dc2cd7-0ec2-46d9-9d2b-6a0c55f2b706 -> ../../sda3 lrwxrwxrwx 1 root root 9 марта 18 2013 bfec2e1a-968b-4547-9f6a-d8b6561bffda -> ../../md2 lrwxrwxrwx 1 root root 9 марта 18 2013 f01ba711-4c8f-41ff-a3d1-2c6dc3e157da -> ../../md1 lrwxrwxrwx 1 root root 10 марта 18 2013 f5ab78ac-c2c9-47c2-a43b-b5ff300092f7 -> ../../sda2
cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath]
md0 : active raid1 sdb1[1]
32704 blocks super 1.2 [2/1] [_U]
md2 : active raid1 sdb3[1]
968208960 blocks super 1.2 [2/1] [_U]
md1 : active raid1 sdb2[1]
8384448 blocks super 1.2 [2/1] [_U]
unused devices: <none>
# cat grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod diskfilter
insmod mdraid1x
insmod ext2
set root='mduuid/286ddce9efac9c69e607d32a5804ec76'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='mduuid/286ddce9efac9c69e607d32a5804ec76' bfec2e1a-968b-4547-9f6a-d8b6561bffda
else
search --no-floppy --fs-uuid --set=root bfec2e1a-968b-4547-9f6a-d8b6561bffda
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=ru_RU
insmod gettext
fi
terminal_output gfxterm
if sleep --interruptible 0 ; then
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-bfec2e1a-968b-4547-9f6a-d8b6561bffda' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod diskfilter
insmod mdraid1x
insmod ext2
set root='mduuid/f936feb9540cd97a88d29d6fe52e87ec'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='mduuid/f936feb9540cd97a88d29d6fe52e87ec' 2bf59453-f86d-4e1f-9724-4fee0e9f532b
else
search --no-floppy --fs-uuid --set=root 2bf59453-f86d-4e1f-9724-4fee0e9f532b
fi
echo 'Загружается Linux x86_64-3.8.2-gentoo …'
linux /kernel-genkernel-x86_64-3.8.2-gentoo root=UUID=bfec2e1a-968b-4547-9f6a-d8b6561bffda ro
echo 'Загружается начальный виртуальный диск …'
initrd /initramfs-genkernel-x86_64-3.8.2-gentoo
}
submenu 'Дополнительные параметры для Gentoo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-bfec2e1a-968b-4547-9f6a-d8b6561bffda' {
menuentry 'Gentoo GNU/Linux, с Linux x86_64-3.8.2-gentoo' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-3.8.2-gentoo-advanced-bfec2e1a-968b-4547-9f6a-d8b6561bffda' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod diskfilter
insmod mdraid1x
insmod ext2
set root='mduuid/f936feb9540cd97a88d29d6fe52e87ec'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='mduuid/f936feb9540cd97a88d29d6fe52e87ec' 2bf59453-f86d-4e1f-9724-4fee0e9f532b
else
search --no-floppy --fs-uuid --set=root 2bf59453-f86d-4e1f-9724-4fee0e9f532b
fi
echo 'Загружается Linux x86_64-3.8.2-gentoo …'
linux /kernel-genkernel-x86_64-3.8.2-gentoo root=UUID=bfec2e1a-968b-4547-9f6a-d8b6561bffda ro
echo 'Загружается начальный виртуальный диск …'
initrd /initramfs-genkernel-x86_64-3.8.2-gentoo
}
menuentry 'Gentoo GNU/Linux, с Linux x86_64-3.8.2-gentoo (режим восстановления)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-3.8.2-gentoo-recovery-bfec2e1a-968b-4547-9f6a-d8b6561bffda' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod diskfilter
insmod mdraid1x
insmod ext2
set root='mduuid/f936feb9540cd97a88d29d6fe52e87ec'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='mduuid/f936feb9540cd97a88d29d6fe52e87ec' 2bf59453-f86d-4e1f-9724-4fee0e9f532b
else
search --no-floppy --fs-uuid --set=root 2bf59453-f86d-4e1f-9724-4fee0e9f532b
fi
echo 'Загружается Linux x86_64-3.8.2-gentoo …'
linux /kernel-genkernel-x86_64-3.8.2-gentoo root=UUID=bfec2e1a-968b-4547-9f6a-d8b6561bffda ro single
echo 'Загружается начальный виртуальный диск …'
initrd /initramfs-genkernel-x86_64-3.8.2-gentoo
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
»
- Для комментирования войдите или зарегистрируйтесь

Ну т.е. при генерации
Ну т.е. при генерации initramfs с помощью genkernel вы добавляли опцию '--mdadm' и '--mdadm-config=конфиг_mdadm', а ядру указываете параметр domdadm., что бы сценарий init в initramfs собрал raid ? Ну, по крайней мере последнее вы уж точно не делаете.
Кроме всего прочего при генерации initramfs с помощью genkernel вам нужно так же указывать параметр '--disklabel', для поддержки монтирования корня по UUID / LABEL.
Вот даже в конфиге указал.
Вот даже в конфиге указал.
mdadm.conf
genkernel.conf
OLDCONFIG="yes" MENUCONFIG="yes" CLEAN="yes" MRPROPER="yes" MOUNTBOOT="yes" SAVE_CONFIG="yes" USECOLOR="yes" GPG="yes" DMRAID="yes" MDADM="yes" MDADM_CONFIG="/etc/mdadm.conf" DISKLABEL="yes" GK_SHARE="${GK_SHARE:-/usr/share/genkernel}" CACHE_DIR="/var/cache/genkernel" DISTDIR="${CACHE_DIR}/src" LOGFILE="/var/log/genkernel.log" LOGLEVEL=1 DEFAULT_KERNEL_SOURCE="/usr/src/linux" REAL_ROOT="UUID=bfec2e1a-968b-4547-9f6a-d8b6561bffda"Где у вас в конфиге
Где у вас в конфиге загрузчика есть среди параметров, передаваемых ядру Gentoo параметр 'domdadm' ? Я уже вас об этом спросил.
Да добавил параметр
Да добавил параметр загрузилось все. Спасибо.
Всё же добавлю пост: У вас
Всё же добавлю пост:
У вас строка с указанием параметров, передаваемых ядру Gentoo в конфигурации grub2 выглядит так:
Т.е. вы передаёте всего два параметра, root=UUID=bfec2e1a-968b-4547-9f6a-d8b6561bffda и ro, что бы активировалось выполнение процедуры сборки mdadm массива вам нужно добавить параметр domdadm. Т.е. строка должна выглядеть хотя бы так:
Задействование опции 'MDADM="yes"' лишь добавляет в initramfs поддержку mdadm, но не активирует выполнение сборки массива.
Отредактируйте шапку темы и допишите к названию темы '[SOLVED]' или '[РЕШЕНО]'. Кроме того неплохо бы указать ниже описания темы что-то вроде: "Решение: передать ядру параметр domdadm " .
PS: читайте документацию и внимательно читайте сообщения на форуме, которые вам пишут, когда помогают решить вашу проблему.