Bug 28641

Summary: Ядро не может примонтировать корневую ФС на xfs
Product: Sisyphus Reporter: serpiph <serpiph>
Component: make-initrdAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: aen, aspsk, boris, boyarsh, glebfm, ldv, legion, mike, mithraen, placeholder, rider, sbolshakov, shrek, sin, vitty, vsu, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 27685    
Attachments:
Description Flags
initrd-3.8.2-alt1.img none

Description serpiph 2013-03-07 12:15:41 MSK
Версия 3.8.2-alt1. Собран initrd при помощи make-initrd-0.8.3-alt1. При загрузке процесс входит в закольцовывание. На экране бегут:
строка про использование loop для подключения корневой ФС
mount: unknown filesystem: xfs
...

В версии ядра 3.7.9-alt1.1 такого безобразия не наблюдается. В initrd для 3.8.2 модуль xfs есть. Образы initrd для этих ядер отличаются только модулями для ядер, остальное всё совпадает.

Наблюдается на всех машинах с корнем на xfs (как на отдельных разделах, так и в составе soft-RAID1).
Comment 1 Anton V. Boyarshinov 2013-03-07 12:28:22 MSK
Есть ли в initrd модуль libcrc32c.ko ?
Если нет, попробуйте добавить принудительно.
Comment 2 serpiph 2013-03-07 12:41:39 MSK
Модуль libcrc32c.ko есть в initrd. Но проблему это не решает.
Comment 3 serpiph 2013-03-07 12:45:54 MSK
Модуль libcrc32c.ko есть в initrd. Но проблему это не решает.
Comment 4 serpiph 2013-03-07 12:49:06 MSK
Created attachment 5763 [details]
initrd-3.8.2-alt1.img

Загрузочный образ для std-def-3.8.2-alt1
Comment 5 Anton V. Boyarshinov 2013-03-11 15:57:29 MSK
добавьте в initrd модуль crc32c.
Ошибка состоит в том, что libcrc32c должен зависеть от него, но не зависит.
Исправленное ядро ожидается в ближайшие дни.
Comment 6 Anton V. Boyarshinov 2013-03-11 16:22:31 MSK
(В ответ на комментарий №5)
> добавьте в initrd модуль crc32c.
> Ошибка состоит в том, что libcrc32c должен зависеть от него, но не зависит.
> Исправленное ядро ожидается в ближайшие дни.

судя по http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602254 исправление следует ожидать, скорее в make-initrd, чем в ядре, в ядре отсутствие этой зависимости считается фичей, а не багой и crc32c должен всегда добавляться при добавлении в initrd libcrc32, хотя зависимости и нет..
Comment 7 serpiph 2013-03-11 16:44:33 MSK
Да, добавил модуль crc32c, собрал initrd, система поднялась.
Comment 8 serpiph 2013-03-11 16:52:13 MSK
(В ответ на комментарий №6)
> судя по http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602254 исправление
> следует ожидать, скорее в make-initrd, чем в ядре, в ядре отсутствие этой
> зависимости считается фичей, а не багой и crc32c должен всегда добавляться при
> добавлении в initrd libcrc32, хотя зависимости и нет..

Честно говоря, непонятно, зачем делать несколько модулей а-ля crc32c, если всё равно всегда будет загружаться crc32c. Или оба модуля (crc32c и crc32c-intel) будут присутствовать в initrd для совместимости загрузки со всякими железными конфигурациями?
Comment 9 serpiph 2013-03-11 16:53:47 MSK
Меня вот ещё что мучает: нет ли ещё таких же подводных камней? Надо бы проверить...
Comment 10 Alexey Gladkov 2013-03-18 15:31:38 MSK
Я добавил механизм для добавления таких неявных зависимостей в make-initrd:

http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=commitdiff;h=4fc73f75fa02d9c28ecbd633250b767cc2704b84

Прошу проверить и подтвердить.

Возможно в будущем я сделаю его более общим и не нужно будет делать обработчики для конкретных случаев. Мысли такие есть, но пока нужно спасать пользователей :)
Comment 11 Anton V. Boyarshinov 2013-03-19 16:30:25 MSK
(В ответ на комментарий №10)
> Я добавил механизм для добавления таких неявных зависимостей в make-initrd:
> 
> http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=commitdiff;h=4fc73f75fa02d9c28ecbd633250b767cc2704b84
> 
> Прошу проверить и подтвердить.
Даже в случае, когда должен использоваться crc32c, в initrd добавлятеся crc32c-intel и, естественно, не грузится.
Comment 12 Anton V. Boyarshinov 2013-03-21 15:00:59 MSK
make-initrd 0.8.4