Bug 28641 - Ядро не может примонтировать корневую ФС на xfs
Summary: Ядро не может примонтировать корневую ФС на xfs
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 27685
  Show dependency tree
 
Reported: 2013-03-07 12:15 MSK by serpiph
Modified: 2013-03-21 15:00 MSK (History)
17 users (show)

See Also:


Attachments
initrd-3.8.2-alt1.img (3.92 MB, application/octet-stream)
2013-03-07 12:49 MSK, serpiph
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
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