Bug 27229 - сборка образа завершается с ошибкой: No module "linux_raid_member"
Summary: сборка образа завершается с ошибкой: No module "linux_raid_member"
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:
 
Reported: 2012-04-17 01:39 MSK by Mike
Modified: 2012-04-20 15:17 MSK (History)
5 users (show)

See Also:


Attachments
информация о raid и дисках (3.92 KB, text/plain)
2012-04-17 01:39 MSK, Mike
no flags Details
содержимое fstab и initrd.mk (477 bytes, text/plain)
2012-04-18 01:35 MSK, Mike
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mike 2012-04-17 01:39:01 MSK
Created attachment 5444 [details]
информация о raid и дисках

При установки нового ядра, make-initrd больше не может создать initrd, сообщая об ошибке: No module "linux_raid_member"
Система:
1. Softraid, RAID1 
2. /etc/mdadm.conf - пустой
3. Последний сизиф. Используется make-initrd-0.7.4-alt1
Плагины:
make-initrd-mdadm
make-initrd-devmapper
make-initrd-multipath
make-initrd-lvm

В вложении информация о raid, дисках.
Comment 1 Mike 2012-04-17 01:51:59 MSK
Забыл вывод make-initrd прикрепить:

# make-initrd -k 3.3.0-un-def-alt1
Config file: /etc/initrd.mk
Generating module dependencies on host ...
Guessed modules: ext4 ata_generic libata pata_acpi sata_nv scsi_mod sd_mod crc-t10dif linux_raid_member sd_mod 
Guessed features: add-modules cleanup compress mdadm syslog 
Creating initrd image ...
Adding modules ...
add-module: No module "linux_raid_member" found for kernel 3.3.0-un-def-alt1
make: *** [add-modules] Ошибка 1
make: *** [all] Ошибка 1

Удалил пакет make-initrd-mdadm, всё осталось так же, только модуль mdadm был заменён raid.

Сделать bug-report не могу, т.к. с этой опцией make-initrd повисает, ничего не делая.
Comment 2 Alexey Gladkov 2012-04-17 02:31:24 MSK
Если у вас не работает bug-report, то с вашей системой что-то очень не так.
Comment 3 Mike 2012-04-17 12:00:38 MSK
Куда тогда смотреть? Могу strace показать.
Comment 4 Alexey Gladkov 2012-04-17 13:57:21 MSK
strace тут пока рано делать. bug-report это очень простой скрипт:

http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=blob_plain;f=tools/bug-report;h=6b819bc82f2d7ccdcf823c22c8246cbabee9f3dc;hb=d667914d32073e72ebe26dbca79e16d6abf3aa0d

в основном действия происходят над /proc и /sys. Попробуйте добавить в него "set -x" и посмотреть на чём он останавливается у вас.
Comment 5 Mike 2012-04-18 01:08:01 MSK
Добавил. Останавливается на строке:
+ cp -aP /sys /tmp/.private/root/make-initrd.IXgNhOPjG/3.3.1-un-def-alt1.work/report

и так висит пока не прервешь.
Comment 6 Alexey Gladkov 2012-04-18 01:17:26 MSK
make-initrd активно использует /sys для определения конфигурации. Проконсультируйтесь с создателем 3.3.1-un-def-alt1 на тему последних изменений в его ядре.
Comment 7 Alexey Gladkov 2012-04-18 01:25:07 MSK
Даже той информации, что вы привели достаточно.
Какой у вас /etc/fstab и /etc/initrd.mk ?
Comment 8 Mike 2012-04-18 01:29:40 MSK
На 3.2.7-un-def-alt1 такое же поведение.
Судя по strace, /sys копируется, но затыкается на одном устройстве:

[pid 12936] lstat("/sys/kernel/debug/hid/0003:046D:C318.0004/events", {st_mode=S_IFREG|0400, st_size=0, ...}) = 0
[pid 12936] open("/sys/kernel/debug/hid/0003:046D:C318.0004/events", O_RDONLY|O_NOFOLLOW) = 3
[pid 12936] fstat(3, {st_mode=S_IFREG|0400, st_size=0, ...}) = 0
[pid 12936] open("/tmp/.private/root/make-initrd.j7TFPrb1Z/3.2.7-un-def-alt1.work/report/sys/kernel/debug/hid/0003:046D:C318.0004/events", O_WRONLY|O_CREAT|O_EXCL, 0400) = 4
[pid 12936] fstat(4, {st_mode=S_IFREG|0400, st_size=0, ...}) = 0
[pid 12936] read(3, 

судя по числам, это клавиатура.
Comment 9 Mike 2012-04-18 01:35:08 MSK
Created attachment 5446 [details]
содержимое fstab и initrd.mk
Comment 10 Mike 2012-04-18 01:36:26 MSK
(В ответ на комментарий №7)
> Даже той информации, что вы привели достаточно.
> Какой у вас /etc/fstab и /etc/initrd.mk ?

Содержимое в добавленном файле.
Comment 11 Alexey Gladkov 2012-04-18 01:57:45 MSK
Понятно. Спасибо.
Comment 12 Alexey Gladkov 2012-04-19 00:17:23 MSK
Не могли бы вы показать вывод команды:

blkid -t UUID=8889c2da-95cd-4a4b-bceb-a4c0fabfaf1e -o device
Comment 13 Mike 2012-04-19 01:20:36 MSK
(В ответ на комментарий №12)
> Не могли бы вы показать вывод команды:
> 
> blkid -t UUID=8889c2da-95cd-4a4b-bceb-a4c0fabfaf1e -o device

# blkid -t UUID=8889c2da-95cd-4a4b-bceb-a4c0fabfaf1e -o device
/dev/sdc1
/dev/md127

Что странно, mdadm --detail показывает два устройства и оба active/working.
Comment 14 Alexey Gladkov 2012-04-19 01:39:52 MSK
У вас sdb1 имеет отличный от sdc1 UUID и тип.
Comment 15 Mike 2012-04-19 02:13:02 MSK
(В ответ на комментарий №14)
> У вас sdb1 имеет отличный от sdc1 UUID и тип.

получается sdc1 не помечен как типом fd? Fdisk говорит, что помечен.
Или на sdc1 просто создана файловая система? А как тогда mdadm работает?
Comment 16 Alexey Gladkov 2012-04-19 02:33:16 MSK
Вот эта бага кажется похожа на наш случай:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645242

попробуйте: blkid -c /dev/null ...
Comment 17 Mike 2012-04-19 03:19:30 MSK
(В ответ на комментарий №16)
> Вот эта бага кажется похожа на наш случай:
> 
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645242
> 
> попробуйте: blkid -c /dev/null ...

Да, помогло:
# blkid -c /dev/null | grep linux_raid
/dev/sdb1: UUID="b8bef6f6-fa4c-ac2e-ba2e-20235d05a73b" TYPE="linux_raid_member" 
/dev/sdc1: UUID="b8bef6f6-fa4c-ac2e-ba2e-20235d05a73b" TYPE="linux_raid_member"

Если удалить /etc/blkid.tab* проблема с созданием initrd разрешится?
Comment 18 Mike 2012-04-19 03:29:07 MSK
Дополню. 
Если с имеющимися blkid.tab файлом вызвать blkid с -p - картина становится правильной:
# blkid -p /dev/sdb1 /dev/sdc1
/dev/sdb1: VERSION="0.90.0" UUID="b8bef6f6-fa4c-ac2e-ba2e-20235d05a73b" TYPE="linux_raid_member" USAGE="raid" PART_ENTRY_SCHEME="dos" PART_ENTRY_TYPE="0xfd" PART_ENTRY_FLAGS="0x80" PART_ENTRY_NUMBER="1" PART_ENTRY_OFFSET="63" PART_ENTRY_SIZE="527028327" PART_ENTRY_DISK="8:16" 
/dev/sdc1: VERSION="0.90.0" UUID="b8bef6f6-fa4c-ac2e-ba2e-20235d05a73b" TYPE="linux_raid_member" USAGE="raid" PART_ENTRY_SCHEME="dos" PART_ENTRY_TYPE="0xfd" PART_ENTRY_FLAGS="0x80" PART_ENTRY_NUMBER="1" PART_ENTRY_OFFSET="63" PART_ENTRY_SIZE="527028327" PART_ENTRY_DISK="8:32"
Comment 19 Mike 2012-04-19 13:21:18 MSK
Переместил /etc/blkid.tab*, образ initrd создался без проблем.
Правда в образ почему-то добавляются модули для всех уровней RAID, хотя достаточно одного. Возможно это фича, а не бага.
Comment 20 Alexey Gladkov 2012-04-19 15:54:25 MSK
(В ответ на комментарий №17)
> Если удалить /etc/blkid.tab* проблема с созданием initrd разрешится?

Да. В следующей версии я добавлю игнорирование кэша, чтобы таких проблем больше не было.

(В ответ на комментарий №19)
> Правда в образ почему-то добавляются модули для всех уровней RAID, хотя
> достаточно одного. Возможно это фича, а не бага.

Это временная мера пока не придумал способа правильно детектить нужный модуль.
Comment 21 Repository Robot 2012-04-19 16:57:07 MSK
make-initrd-0.7.5-alt1 -> sisyphus:

* Thu Apr 19 2012 Alexey Gladkov <legion@altlinux> 0.7.5-alt1
- Ignore cachefile when running blkid (ALT#27229).
Comment 22 Michael Shigorin 2012-04-20 13:55:56 MSK
(In reply to comment #20)
> > добавляются модули для всех уровней RAID, хотя достаточно одного.
> Это временная мера пока не придумал способа правильно детектить нужный модуль.
/sys/block/md$THIS/md/level устроит? :)
Comment 23 Alexey Gladkov 2012-04-20 14:00:35 MSK
(В ответ на комментарий №22)
> /sys/block/md$THIS/md/level устроит? :)

Так было раньше и меня это не устраивает :)
Comment 24 Michael Shigorin 2012-04-20 15:17:31 MSK
Пошли в bug #27248 :)