LINUX.ORG.RU

Не стартует система с корневого раздела ZFS

 , ,


0

1

Установку делал вот по этому мануалу: http://www.funtoo.org/ZFS_Install_Guide.

При запуске системы стартует ядро и распаковывается initramfs, но когда дело доходит до монтирования корня, появляется сообщение о ненайденном пуле tank и еще такое: «Failed to load ZFS module stack». Ядро версии 4.0.1-gentoo, собирал genkernel'ом с параметром --zfs. На всякий случай добавил модуль zfs в файл /etc/conf.d/modules по образцу. zpool export tank делал. Параметры загрузчика в /etc/boot.conf для ZFS указал такие:

"Funtoo ZFS Linux" {
	kernel kernel-genkernel-x86_64[-v]
	initrd initramfs-genkernel-x86_64[-v]
	params real_root=ZFS=tank/funtoo/root
        params += dozfs=force
}

Что можно еще предпринять?

Ответ на: комментарий от erzent

загрузчик на чём стоит?

Ты уверен, что это важно после слов тс:

При запуске системы стартует ядро и распаковывается initramfs, но когда дело доходит до монтирования корня

т.е. исходя из этого получается, что загрузчик стартует нормально, считывает образ ядра и initramfs с диска и передаёт ему управление.

Failed to load ZFS module stack

ТС, в initramfs присутствуют ZFS модули?

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

ТС, в initramfs присутствуют ZFS модули?

Я собирал ядро так: genkernel --menuconfig --zfs all. Ебилд zfs тоже был установлен через портаж. В директории /lib/modules/4.0.1-gentoo/extra присутствуют каталоги spl, zcommon и zfs с соответствующими модулями внутри.

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

Ещё раз, в initramfs присутствует модуль zfs или нет? Распакуйте initramfs и посмотрите.

Если соответствующих модулей в initramfs нет, то пересоздайте initramfs либо посредством genkernel

genkernel ramdisk --zfs
, либо распакуйте его и поместите указанные модули в него вручную.

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

Спасибо, окажусь рядом с машиной - сделаю как вы сказали.

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

Извини бро, не могу, в данном случае, помочь конкретным советом, потому как не ставлю систему на zfs, использую её только для данных на массивах.

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

Етить тередрить, ещё раз, в initramfs модуль присутствует или нет? Сколько раз тебе повторять этот вопрос? А-у-у, распакуй initramfs и посмотри. Так же удостоверься, что ты пытаешься грузиться с последним собранным ядром, т.е. с ядром, модули которого находятся в /lib/modules/версия_ядра и которые помещены в initramfs.

Вот так можно распаковать initramfs:

mkdir /tmp/initrd
cd /tmp/initrd
gunzip -c /boot/initramfs... | cpio -i -d -H newc
вместо gzip сжатия может быть применено xz сжатие, тогда придётся использовать 'unxz -c' или возможно другой алгоритм сжатия, посмотри посредством утилиты file.

Сравни вывод команд:

file /boot/vmlinuz-версия_загружаемого_ядра
и
file /usr/src/linux/arch/x86/boot/bzImage
естественно вместо /boot/vmlinuz-версия_загружаемого_ядра указывай файл загружаемого образа ядра, указанный в конфигурации загрузчика.

Тут вам не Ubuntu, тут думать нужно и понимать что делаешь.

Удачи.

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

Распаковка initramfs показала наличие модулей libzfs.so.2 и libzpool.so.2 в каталоге lib.

Выхлоп команд file для файлов с ядром:

file /mnt/funtoo/usr/src/linux/arch/x86/boot/bzImage /mnt/funtoo/usr/src/linux/arch/x86/boot/bzImage: x86 boot sector

file /mnt/funtoo/boot/kernel-genkernel-x86_64-4.0.1-gentoo 
/mnt/funtoo/boot/kernel-genkernel-x86_64-4.0.1-gentoo: x86 boot sector

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

наличие модулей libzfs.so.2 и libzpool.so.2 в каталоге lib.

Ты издеваешься? Модули ядра лежат в /lib/modules/версия_ядра/kernel/fs/zfs/zfs.ko.

file для файлов с ядром:

Это фигня какая-то, а не вывод, вывод должен быть примерно вот таким:

$ file /usr/src/linux/arch/x86/boot/bzImage
/usr/src/linux/arch/x86/boot/bzImage: Linux kernel x86 boot executable bzImage, version 3.18.9-gentoo (root@cmp) #6 SMP Mon Mar 30 16:57:52 UTC 2015, RO-rootFS, swap_dev 0x5, Normal VGA

$ uname -a
Linux cmp 3.18.9-gentoo #1 SMP Mon Mar 30 16:57:52 UTC 2015 x86_64 AMD Phenom(tm) II X4 840 Processor AuthenticAMD GNU/Linux
выделенные участки вывод должны быть одинаковы.

UPD: Заместо

file /boot/vmlinuz-версия_ядра
смотри
uname -a

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

Извиняюсь за свою тормознутость :)

Итак. По распаковке initramfs в каталоге с модулями модулей для spl и zfs не обнаружилось. По некоторому размышлению я пришел к выводу, что виной тому флаг в конфиге ядра, отвечающий за компрессию собранных модулей. Флаг был снят, после чего было пересобрано ядро. После этого были переустановлены пакеты командой emerge -av spl zfs-kmod zfs. После этого был пересоздан initramfs командой genkernel --all-ramdisks --zfs initramfs. После этого в файле с Initramfs в каталоге /lib/modules/4.0.2-gentoo/extra действительно появились все нужные модули в каталогах spl, zcommon, unicode, avl, zfs. На всякий случай я обновил конфиг загрузчика командой boot-update и перезагрузился.

Однако симптомы по прежнему те же.

uname -a
Linux haruhi 3.19.3-031903-generic #201503261036 SMP Thu Mar 26 14:37:55 UTC 2015 x86_64 AMD FX(tm)-8150 Eight-Core Processor AuthenticAMD GNU/Linux

file /usr/src/linux/arch/x86/boot/bzImage 
/usr/src/linux/arch/x86/boot/bzImage: Linux kernel x86 boot executable bzImage, version 4.0.2-gentoo (root@haruhi) #1 SMP Sun May 10 09:26:15 2015, RO-rootFS, swap_dev 0x3, Normal VGA
LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Флаг был снят, после чего было пересобрано ядро. После этого были переустановлены пакеты командой emerge -av spl zfs-kmod zfs. После этого был пересоздан initramfs командой genkernel --all-ramdisks --zfs initramfs.

Достаточно было пересобрать initramfs, ну или попросту вручную скопировать соответствующие модули в директорию, куда распаковали initramfs, естественно в lib/modules/версия_ядра/и_далее, а затем запаковать initramfs обратно.

Однако симптомы по прежнему те же.

Вы точно загружаете нужную версию ядра? В особенности убедитесь, что в /boot файл образа ядра, который вы загружаете соответствует последнему собранному ядру.

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

Вы точно загружаете нужную версию ядра? В особенности убедитесь, что в /boot файл образа ядра, который вы загружаете соответствует последнему собранному ядру.

Я специально перед сборкой очищал /boot от всех компонент всех ядер и проверял содержимое initramfs.

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