НЕтривиальная проблема при монтировании дисков при загрузке

ДОПИЛЕНО!!
Дожал я-таки это дело… В общем, расследование показало, что во всем действительно виноват udev (точнее не виноват, он так работает);
revup
Замечание. Чем то напоминает проблему с меняющимися именами сетевых интерфейсов.
подтвердилось))

Дело вот в чем. Во время загрузки, если в rc.conf включена опция MOD_AUTOLOAD=“yes”, то udev будет грузить модули автоматически, основываясь на информации, полученной от ядра через sysfs ПРУФ. К моменту монтирования ФС через fstab, если ядро не успело проинициализировать устройство (как раз мой случай), то udev, соответственно, не получит нужной информации от ядра и не загрузит необходимый модуль.
Собственно, в этом и была проблема. Решил я ее просто - упреждающей загрузкой модуля usb_storage, т.е. добавлением записи в MODULES=(usb-storage !pcspkr). Теперь udev не ждет информации от ядра, а просто грузит модуль. Все счастливы.

jim945
revup писал(а):Попробовал - не работает, те же самые симптомы.

В /etc/mkinitcpio.conf добавляешь usb. Вот так у меня.
HOOKS=“base udev autodetect pata scsi sata usb filesystems”

Потом sudo mkinitcpio -p kernel26
В fstab думаю лучше оставить по UUID (у меня она то sdd, то sdg).
Если я не ошибаюсь, initram тут совершенно ни при чем, он лишь обеспечивает загрузку ядра. Более того, когда ядро уже загружено, initram удаляется из памяти.

PS. Немного замечаний.
С моей точки зрения, эта проблема по поведению очень напоминает гейзенбаг. Однако, в данном случае удалось разобраться. Так что если кто-либо столкнулся с аналогичной проблемой
флешка/USB не монтируется при загрузке через fstab, причем руками монтируется без ошибок
то добро пожаловать сюда). Может со временем в вики добавлю это замечание. (или не стоит по таким мелочам, и так всем все понятно??))))

У ребят встречалась подобная проблема, только пришли они к ней с другого конца http://archlinux.org.ru/arch_forum/view … f=8&t=2782 Немного дополню то обсуждение своими замечаниями.
Экспериментально мною было установлено, что если при загрузке системы флешка не воткнута, и модуль usb_storage не указан в списке MODULES=(), то udev этот модуль не загружает. Однако, стоит воткнуть флешку, как udev тут же его загрузит. Это расходится с замечанием в той теме (не знаю почему)
allive
Доброго всем дня.
Udev нормально подгружает модули, в часности usb-storage, только при старте системы.
Если флешка до загрузки не была вставлена, udev не подгрузит модуль, решается только ручной загрузкой необходимого модуля.
ps: в /etc/rc.conf прописывать не вариант.

Также в понимании сути происходящего очень сильно помогла статья http://archlinux.org.ru/node/150 за что автору большое спасибо.
revup
Если я не ошибаюсь, initram тут совершенно ни при чем, он лишь обеспечивает загрузку ядра. Более того, когда ядро уже загружено, initram удаляется из памяти.
Однако же после этого флешка у меня стала монтироваться без проблем. Проверено.
Lupus pilum mutat, non mentem.
jim945
revup
Если я не ошибаюсь, initram тут совершенно ни при чем, он лишь обеспечивает загрузку ядра. Более того, когда ядро уже загружено, initram удаляется из памяти.
Однако же после этого флешка у меня стала монтироваться без проблем. Проверено.
хз, лень разбираться. Пусть это будет на твоей совести )))))
а вы поглядите что этот хук грузит… оппппа, да тот же самый модуль стораже :-D
systemd должен умереть.
 
Зарегистрироваться или войдите чтобы оставить сообщение.