Монтирование дисков USB автоматически (Как это работает),

Вы могли также просто тип u для отмены изменений, которые привели к ошибочной вставке копии.

12
01.09.2014, 19:10
4 ответа

Я пытался сделать это на своем компьютере, и это - работа :)

Сначала я получаю название своего устройства:

ls -l /proc/disk/by-id/

В моем случае это/proc/disk/by-id/usb-09a6_8001

Я добавил эту строку в/etc/fstab:

/dev/disk/by-id/usb-09a6_8001   /media/macle ext2 ro,users 0 2

И это работает, когда я включаю свой usbkey, это смонтировало ro и владело моим пользователем.

3
27.01.2020, 19:56
  • 1
    Спасибо profy :) Но основная тяга моего вопроса должна облегчить экстремальное разочарование, которое я чувствую каждый раз, когда я вынужден понять, как автомонтируются и работы USB-устройств. Я здесь для дешифровки волшебства, которое находится позади этих сложных систем. Кроме того, использование fstab и USB-устройства немного хитро, потому что они, как не всегда гарантируют, будут включены на запуске! –  fthinker 26.02.2011, 01:17
  • 2
    , который я не знаю, как это - работа, но я вполне уверен, что новые устройства обнаруживаются правилами udev, смотрите на/etc/udev/rules.d/и на/lib/udev/rules.d/. –  profy 26.02.2011, 13:31

В наше время решения по умолчанию состоят в том насколько я знаю udisk демон, предоставляющий dbus API, а также интерфейс командной строки. Существуют также несколько udisks обертка и доступная утилита автоматического монтирования.

Обычно Вы не настраиваете udisk самостоятельно, поскольку это просто делает то, что это сказано, таким образом, необходимо изучить Gnome. Возможно, Дисковая утилита Gnome позволяет, Вы для изменения/изменения монтирования отмечаете себя.

2
27.01.2020, 19:56

Как Ulrich Dangel сказал, udisks должен быть ссылкой в наше время. Я должен все же видеть, как это уведомляется (udev-> dbus-> udisks?), но вручную это может использоваться для монтирования устройства с опциями, в которых Вы нуждаетесь.

Udisks говорит с polkit для наблюдения то, что пользователю разрешают сделать с объемами. Я предполагаю здесь, но если мы могли бы найти, что место установило свойства для именованного диска/устройства, это должно работать.

Используя udisksctl, Ваш пользователь должен смочь смонтировать устройство с опциями, в которых Вы нуждаетесь, что-то вроде этого:

udisksctl монтируют-b/dev/sdxy-o ro / точка монтирования

Все же я не делаю, куда поместить опции.

ОБНОВЛЕНИЕ: После предложений Ulrich я перешел к дисковой утилите Gnome, и я достиг того, в чем Вы нуждаетесь, но не уверенные, является ли это самым изящным решением или нет. Я использую Kororaa 17 (базирующийся Fedora 17) с Cinnamon+Gnome3, перешел к утилите "Disks" и изменил, монтируют опции для моей карты памяти, добавил "ro" и сохранил.

Это добавляет запись в fstab (это - то, где я не рассматриваю его как изящное решение, я думаю, что это должно остаться как пользовательская конфигурация не в масштабе всей системы), я включаю диск, и это смонтировано автоматически на выбранной точке монтирования с опциями, которые я сохранил в дисковой утилите Gnome.

2
27.01.2020, 19:56
  • 1
    , Что Вы имеете в виду с Вами, должен видеть, как это уведомляется? Что пропускает шаг? –  Ulrich Dangel 30.07.2012, 08:13
  • 2
    И это не udev→dbus→udisk но udev/uevent→udisk→dbus –  Ulrich Dangel 30.07.2012, 08:25
  • 3
    я подразумевал, что не был действительно уверен и я хотел проверить его, но теперь я вижу, что не был 100% неправильно. –  tripledes 30.07.2012, 11:43
  • 4
    [забастовка] покажите строку, которая была добавлена в fstab. Я хотел бы подтвердить то, что я думаю, что это. [/strike] Так fstab соответствия строки [/strike ответа @profy? т.е. с ro опция. –  invert 01.08.2012, 12:10

По теме того, как ядро обнаруживает аппаратные средства, вот очень хорошая статья, что происходит.

Таким образом:

  • ядро постоянно сканирует Ваш ПК bus'es и отображает устройства на виртуальную файловую систему, обычно под /sys/.
  • ядро отправляет сообщение, что новые аппаратные средства доступны udev, который:
    • обработайте правила udev об устройстве
    • символьная ссылка устройство в /dev/
    • загрузите драйверы устройств
    • уведомьте пространство пользователя устройства через dbus

В этой точке устройство готово использоваться пространством пользователя. Gvfs и FUSE являются оба файловыми системами пространства пользователя.

-1
27.01.2020, 19:56
  • 1
    Нет, udev обычно не уведомляет приложения через dbus это сделано приложениями сторонних производителей. Если Вы используете qdbus --system Вы не будете видеть имен udev. Обычно applicaitons просто подписывает themself на uevents или поставьте их собственный –  Ulrich Dangel 31.07.2012, 20:47
  • 2
    Спасибо за указание на это @ulrich. Моя сводка дает очень простую схему, исключая многие промежуточные шаги. См. связанную статью для песчаных деталей. –  invert 01.08.2012, 12:03
  • 3
    статья является также ложью как, обычно нет никакого опроса, включенного для контроля –  Ulrich Dangel 01.08.2012, 15:37

Теги

Похожие вопросы