[devel] Re: FS label detection at boot time
Anton Farygin
=?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Сб Май 14 11:49:55 MSD 2005
Vitaly Ostanin wrote:
> Sergey Vlasov пишет:
>
>> On Fri, May 13, 2005 at 04:09:13PM +0400, Vitaly Ostanin wrote:
>>
>>> Обнаружилась странность в работе
>>> mount -L label ...
>>> и /sbin/blkid.
>>>
>>> В загруженной системе монтирование по метке проходит нормально,
>>> blkid всё правильно определяет.
>>>
>>> А вот на этапе загрузки монтирование по метке не работает - no
>>> such partition, /sbin/blkid ничего не выводит. Проверял вставкой
>>> в livecd на этапе перемонтирования root в rw:
>>>
>>> mkdir /mnt/usbroot
>>> echo "Trying blkid:"
>>> /sbin/blkid
>>> mount `/sbin/blkid -t LABEL=usbroot | cut -d ':' -f1` \
>>> /mnt/usbroot -o sync
>>>
>>> Также не отрабатывает
>>> mount -L usbroot /mnt/usbroot -o sync
>>>
>>> Монтирование с явным указанием раздела /dev/sda2 работает.
>>>
>>> Так вот, чего может не хватать определению разделов по метке?
>>
>>
>> /proc, /sys в этот момент есть? USB-устройство уже определилось ядром?
>
>
> /proc и /sys в этот момент есть.
>
> В аттаче вывод strace -eopen от blkid на этапе загрузки в livecd
> (strace.blkid.livecd), и от запущенного в рабочей системе.
> Запустить его в уже загруженном livecd я забыл, но разделы там
> точно определяются.
>
ну примерно все ясно.
Попробуйте перед blkid на этапе загрузки вывести содержимое /proc/partitions
Похоже что blkid ищет разделы, полагаясь на содержимое /proc/partitions,
а там может быть пусто.
Скорее всего дело в том, что еще не отработал hotplug.
Рекомендую пересмотреть в корне схему добавления usbroot, написав скрипт
в /etc/dev.d для блочных устройств.
А еще лучше - реализовав это с помощью hal (там надо патчить, но оно
того стоит).
Т.е. - в идеале должно выглядеть примерно так:
hotplug детектит устройства, загружает модули ядра, при появлении
блочных устройств идет event тому же hotplug'у, udev и hal о появлении
устройства...
hal детектит тип файловой системы, label (это он умеет), потом в
зависимости от label добавляет соответствующие записи в /etc/fstab или
запускает программу монтирования с необходимыми опциями.
Все есть, за исключением запуска программы монтирования.
Rgds,
Rider
Подробная информация о списке рассылки Devel