Btrfs на / (-d raid0 -m raid0)
История такова: форматнул два раздела: mkfs.btrfs -d raid0 -m raid0 /dev/sda2 /dev/sdb2 под корень, но не тут то было. Оно не грузится,
ибо чтобы подмонтировать раздел, нужно уже где-то выполнить btrfsctl -a.
Ясно, что тупой-дефолтный initrd не поможет этого.
Попытался "прокачать" его:
"раскатал" образ
mkdir init; cd init gzip -dc /boot/initramfs-genkernel-x86_64-2.6.31 | cpio -id
теперь посмотрел, что
# ldd /sbin/btrfsctl linux-vdso.so.1 => (0x00007fff653ff000) libuuid.so.1 => /lib/libuuid.so.1 (0x00007fb65a9ca000) libc.so.6 => /lib/libc.so.6 (0x00007fb65a675000) /lib64/ld-linux-x86-64.so.2 (0x00007fb65abcf000)
libc.so, ld-linux-x86-64.so, libuuid.so, btrfsctl скопировал в соотв. места
"закатал" образ заново
find ./ | cpio -H newc -o > /tmp/initramfs-genkernel-x86_64-2.6.31 cd /tmp; gzip -9 initramfs-genkernel-x86_64-2.6.31; cp initramfs-genkernel-x86_64-2.6.31.gz /boot
Загрузился, оно, ясно не нашло корня и выкинуло в ash. btrfsctl -a ругнулся на отсутствие /dev/btrfs-control, сбегал на живую систему, понял, что надо mknod /dev/btrfs-control c 10 62
Опять загрузился, btrfsctl -a страшно заругался на кучу файлов в /dev, мол, can't read и виснет
Опять сбегал на живую систему и попробовал собрать sys-fs/btrfs-progs с ROOT=init (куда распаковал initrd). Сжал, установил initrd - все равно ругается на кучу файлов в /dev, мол, can't read и опять-таки виснет
Собирать полноценную систему в initrd таким макаром не хочется.
Подскажите минимум для сборки initrd, или как еще заставить Btrfs работать как raid0 на /
Ядро 2.6.31 как видите. btrfs из гита v0.19-1-g4f89b6e
(На конфиг ядра не намекать. Все включено.)
- Для комментирования войдите или зарегистрируйтесь
А вы, случаем, запуск mdev'а
А вы, случаем, запуск mdev'а в init скрипте не зарезали?
Проверьте, что все проги у вас статические.
Цитата:все проги у вас
эм? ну я ж ldd показывал. не статические btrfs-utils они видимо...(флага статик нет)
Но мысль - да. Хороша. Кстати, больше думаю, что прога-то готова работать, ей че-то в /dev не нра... и виснет после кучи ошибок
Мож, sys-fs/udev в initrd собрать? но он вродь тож не имеет юза статик...
(Копировать свой /dev туда наверное, тупо..)
в init вообще не лез. (initrd делал так: genkernel --mdadm --lvm --install all)
пока решил пусть в консоль выбросит и у меня получится btrfsctl -a, а потом уже init править...
(кст. ядро у меня такое, что с простого рейда (mdadm --create) без initrd грузится)