После регенерации initrd с 0.3.7-alt1 система перестала просыпаться: ждёт какой-то таймаут, после чего пишет unable to mount root и показывает шелл. Если сказать в шелле bin/resume /dev/sda1, система просыпается, как и было раньше.
В bug 23943 я как раз дебажил просыпание. Правда я и resume и root в бутлоадере передаю UUID'ами. А у тебя ещё и root не находится.
Поведение одинаково с resume=/dev/sda1 и resume=UUID=xxxx
У меня есть подозрения насчёт udev.
Приложите bug-report. А ещё, если есть возможность попробуйте udev-15x.
Created attachment 4528 [details] bug-report
После таймаута выводится initrd: udev: Unable to mount root initrd: Stage '' failed
(В ответ на комментарий №6) > initrd: Stage '' failed Ой мама ...
А можете приложить этот нерабочий initrd ?
Created attachment 4529 [details] initrd
В initrd не было модуля для ФС. Потому что без FEATURES = add-modules модули из MODULES_ADD теперь не добавляются.
(В ответ на комментарий №10) > В initrd не было модуля для ФС. Потому что без FEATURES = add-modules модули из > MODULES_ADD теперь не добавляются. Эээ, disregard.
(В ответ на комментарий №11) > Эээ, disregard. Что-то я ничего не понял :)
Вобщем так: udev не отрабатывает, если драйвер контроллера диска собран не модулем, а в ядро. Осмелюсь предположить, что udev в этом случае думает, что контроллер недоступен. Происходит это всё не только при просыпании, но и при нормальной загрузке. Замечу также, что для просыпания корень может и нужен, но уж точно не нужно и даже вредно его монтировать, см.тж. #23183
(В ответ на комментарий №13) > Вобщем так: udev не отрабатывает, если драйвер контроллера диска собран не > модулем, а в ядро. Спасибо за анализ. Если udev не отрабатывает, то как же в живой системе появляется /dev/sdaX ... > Замечу также, что для просыпания корень может и нужен, но уж точно не нужно и > даже вредно его монтировать, см.тж. #23183 Разумеется. Вроде сейчас попытка просыпания происходит всегда перед попыткой монтирования.
(В ответ на комментарий №14) > Если udev не отрабатывает, то как же в живой системе появляется /dev/sdaX ... Собсна, он есть прямо в шелле initramfs, и прекрасно монтируется.
(В ответ на комментарий №15) > Собсна, он есть прямо в шелле initramfs, и прекрасно монтируется. Значит udev всё-таки дёргается, но правила make-initrd не ловят эти эвенты: $ cat 99-rootdev.rules SUBSYSTEM=="block", ACTION=="add", ENV{ID_FS_USAGE}=="filesystem", RUN+="/lib/filters/rootdev"
В 0.3.7 появилась поддержка параметра debug=1. При этом в /tmp/uevents/ будут сваливаться эвенты. Не могли бы вы посмотреть как выглядит этот эвент для sda1 ?
Это параметр ядра? /tmp в initramfs или в загруженной системе?
Да. Это параметр ядра и директория внутри initramfs.
ID_BUS=ata DEVNAME=/dev/sda1 ID_ATA_FEATURE_SET_AAM_VENDOR_RECOMMENDED_VALUE=128 ACTION=change ID_SERIAL_SHORT=WD-WCAU50059919 SEQNUM=684 ID_ATA_WRITE_CACHE=1 ID_ATA_WRITE_CACHE_ENABLED=1 ID_FS_UUID_ENC=e0bc790f-e4e1-42c0-b28a-3c4a27b5ea1d ID_ATA_FEATURE_SET_AAM_CURRENT_VALUE=128 ID_TYPE=disk MAJOR=8 ID_ATA_FEATURE_SET_SMART=1 ID_ATA_FEATURE_SET_PM=1 ID_FS_UUID=e0bc790f-e4e1-42c0-b28a-3c4a27b5ea1d ID_PART_TABLE_TYPE=dos ID_ATA_FEATURE_SET_SMART_ENABLED=1 ID_ATA_FEATURE_SET_PM_ENABLED=1 DEVPATH=/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1 ID_MODEL_ENC=WDC\x20WD7500AACS-65D6B0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 ID_WWN_WITH_EXTENSION=0x50014ee2ac8b5edc ID_FS_VERSION=2 ID_WWN=0x50014ee2ac8b5edc ID_MODEL=WDC_WD7500AACS-65D6B0 ID_SERIAL=WDC_WD7500AACS-65D6B0_WD-WCAU50059919 ID_ATA=1 DEVLINKS=/dev/block/8:1 /dev/disk/by-id/ata-WDC_WD7500AACS-65D6B0_WD-WCAU50059919-part1 /dev/disk/by-id/scsi-SATA_WDC_WD7500AACS-_WD-WCAU50059919-part1 /dev/ disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0-part1 /dev/disk/by-uuid/e0bc790f-e4e1-42c0-b28a-3c4a27b5ea1d /dev/disk/by-id/wwn-0x50014ee2ac8b5edc-part1 SUBSYSTEM=block STARTUP=1 ID_ATA_FEATURE_SET_PUIS=1 ID_ATA_SATA=1 ID_ATA_FEATURE_SET_PUIS_ENABLED=0 MINOR=1 ID_ATA_FEATURE_SET_AAM=1 ID_FS_TYPE=swap ID_ATA_FEATURE_SET_AAM_ENABLED=1 ID_ATA_DOWNLOAD_MICROCODE=1 ID_PATH=pci-0000:00:1f.2-scsi-0:0:0:0 ID_ATA_SATA_SIGNAL_RATE_GEN1=1 PWD=/ ID_ATA_SATA_SIGNAL_RATE_GEN2=1 ID_SCSI_COMPAT=SATA_WDC_WD7500AACS-_WD-WCAU50059919 DEVTYPE=partition ID_FS_USAGE=other ID_REVISION=01.01A10
(В ответ на комментарий №20) > ID_BUS=ata > DEVNAME=/dev/sda1 > ID_ATA_FEATURE_SET_AAM_VENDOR_RECOMMENDED_VALUE=128 > ACTION=change Вот и разгадка. Правило для udev должно быть ACTION!="remove". Спасибо вам, Андрей. Можете попробовать поправить /usr/share/make-initrd/data/etc/udev/rules.d/99-{resume,rootdev}.rules ?
Да, так нормально.
/usr/share/make-initrd/features/lvm/data/etc/udev/rules.d/99-initrd-lvm.rules тоже надо править
Я уже исправил все правила где ACTION==add http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=commitdiff;h=86c2ca12e142f7949ddeccc960b1033a8396e8f6
make-initrd-0.3.8-alt1 -> sisyphus: * Sun Sep 05 2010 Alexey Gladkov <legion@altlinux> 0.3.8-alt1 - Add multipath subpackage (ALT#24009). - Fix typo in module name (ALT#24008). - Fix udev rules for builtin kernel modules (ALT#23985).