On Sun, 4 Oct 2009 14:01:31 +0800 [email protected] wrote: > Прошу совета -- что почитать о всём том хозяйстве, которое > занимается в debian lenny мнотированием сменных носителей. > > Т.е. какая программа что делает (опознание устройства, задание > опций монтирования, собственно монтирование/размонтирование) > где и как настраивается?
Опознаётся устройство ядром. Настройка ведётся через указание параметров
модуля, отвечающего за работу данного класса устройств. Обычно сюда
залезать не приходится.
Файл в /dev/ создаётся демоном udev. Для каждого найденного диска
создаётся файл типа /dev/hd{a,b,c...} или /dev/sd{a,b,c...}.
Для каждого найденного раздела на устройстве (таблица разделов также
читается ядром) создаётся в /dev файл с числовым суффиксом (номером
раздела), а также символические ссылки в /dev/disk/by-*/.
Опции монтирования задаются в /etc/fstab. Формат можно узнать из
fstab(5). Туда обычно прописываются несъёмные диски.
А вот с монтированием флешек и карт памяти идёт полный разброд.
Наиболее корректным с точки зрения юниксового пуриста является pmount
--- suid-ная программа, которая позволяет обычному пользователю
монтировать устройства, помеченные ядром как "съёмные". Этой программе
можно передать дополнительные опции монтирования (в т.ч. кодировку
файловой системы), но умолчания у неё меня и так устраивают (в том числе
и кодировка, если локаль юникодная).
"Open the CD-ROM door, HAL!"
Однако головотяпы-десктопщики pmount не признают и породили уродца под
названием HAL. Это расшифровывается как Hardware Abstraction Layer, но
аллюзия к произведению Артура Кларка имеет место быть.
HAL получает от udev-а сообщения о появлении новых устройств и
пересылает их по системной dbus-шине, а также обрабатывает запросы
"покажи мне список устройств", "смонтируй вот это" и "отмонтируй вот
это". При этом список опций монтирования хранится где-то в глубине HAL-а
и настраивается античеловечным языком на основе XML. Также никакие опции
монтирования не применяются самостоятельно, а передаются приложению,
работающему с демоном и должны быть присланы обратно.
Как результат такой перегруженности процесса монтирования, нормальных
средств для работы с демоном HAL нет. "Нормальный" понимается как
"простой", 'понятный" и "скриптуемый".
P.S. В результате того, что кард-ридеры не посылают по USB-шине никаких
сообщений при помещении туда карточки, ядро не может автоматически
перечитать список разделов на ней. Поэтому для получения актуальной
информации о списке разделов надо периодически "попинывать" кард-ридер.
В HAL этим занимается hald-addon-storage (но никто не мешает вызвать
fdisk -l на устройство или даже dd if=/dev/sdd of=/dev/null bs=1 count=1).
--
Alexander Galanin
pgpbs6NrriDnm.pgp
Description: PGP signature

