How-to`s — Автомонтирование и _удобное_ отмонтирование внешних дисков без DE
В этом посте я поделюсь своим опытом в настройке сабжа. В результате,
если Вы захотите, то сможете получить автомонтирование, которое ничего
не требует от пользователя, — легкая часть, и отмонтирование парой нажатий
клавиш без мышкокликанья — чуть посложнее.
Рассказано на примере Debian'а, поэтому для других систем могут быть некоторые
отличия.
Общая идея заключается в том, чтоб с помощью udev монтировать внешние диски
в /media/flash/%k, где %k — имя устройства ядра. А затем по нажатию шортката
спрашивать у пользователя, что он хочет отмонтировать.
Монтирование.
Здесь ничего сложного. Просто добавим несколько правил для udev. Для этого
в /etc/udev/rules.d добавим файл с правилами. На мой взгляд, лучше, чтоб он
выполнялся в конце, поэтому я назвал его z99_automount.rules.
Пару строчек на добавление:
Первые две строчки проверяют, что подключаемый раздел не относится к моему
внешнему винту — его я не считаю флешкой, для него есть свои правила. Третья
не позволяет примонтировать основной винт таким образом. Четвертая говорит сама
за себя. Пятая проверяет, что то, что сейчас обрабатывается — это раздел, а не,
скажем, весь диск. Шестая создает точку монтирования. Седьмая — монтирует с
доступом всем пользователям (umask=000).
При извлечении диска, будет происходить удаление лишнего мусора — директории
и записи в mtab'е, если не было правильного отмонтирования:
Здесь, я думаю, все понятно.
Отмонтирование.
Во-первых, напишем небольшой скрипт /usr/local/bin/uumount, который будет
принимать на вход имя флешки и отмонтировать ее из /media/flash/.
Во второй строчке из имени девайса удаляются слеши и начальные точки, чтоб
нельзя было отмонтировать что-то левое.
Затем добавим этот скрипт в /etc/sudoers:
Теперь пользователи из группы floppy могут использовать его без пароля.
А теперь напишем скрипт, который собственно и будет спрашивать у пользователя,
что он хочет отмонтировать:
Для уведомлений используется notify-send, для выбора — dmenu. Соответственно,
необходимо поставить пакеты libnotify-bin и suckless-tools или подобрать им
альтернативы.
Ну и в конце ставим этот скрипт на горячую клавишу.
если Вы захотите, то сможете получить автомонтирование, которое ничего
не требует от пользователя, — легкая часть, и отмонтирование парой нажатий
клавиш без мышкокликанья — чуть посложнее.
Рассказано на примере Debian'а, поэтому для других систем могут быть некоторые
отличия.
Общая идея заключается в том, чтоб с помощью udev монтировать внешние диски
в /media/flash/%k, где %k — имя устройства ядра. А затем по нажатию шортката
спрашивать у пользователя, что он хочет отмонтировать.
Монтирование.
Здесь ничего сложного. Просто добавим несколько правил для udev. Для этого
в /etc/udev/rules.d добавим файл с правилами. На мой взгляд, лучше, чтоб он
выполнялся в конце, поэтому я назвал его z99_automount.rules.
Пару строчек на добавление:
1 2 3 4 5 6 7 |
ENV{ID_FS_UUID_ENC}!="ff010feb-a650-4c3b-9f9e-7b534fb58a0e",\ |
Первые две строчки проверяют, что подключаемый раздел не относится к моему
внешнему винту — его я не считаю флешкой, для него есть свои правила. Третья
не позволяет примонтировать основной винт таким образом. Четвертая говорит сама
за себя. Пятая проверяет, что то, что сейчас обрабатывается — это раздел, а не,
скажем, весь диск. Шестая создает точку монтирования. Седьмая — монтирует с
доступом всем пользователям (umask=000).
При извлечении диска, будет происходить удаление лишнего мусора — директории
и записи в mtab'е, если не было правильного отмонтирования:
1 2 3 4 5 6 7 |
ENV{ID_FS_UUID_ENC}!="ff010feb-a650-4c3b-9f9e-7b534fb58a0e",\ |
Здесь, я думаю, все понятно.
Отмонтирование.
Во-первых, напишем небольшой скрипт /usr/local/bin/uumount, который будет
принимать на вход имя флешки и отмонтировать ее из /media/flash/.
1 2 3 4 5 6 7 8 |
#!/bin/bash |
Во второй строчке из имени девайса удаляются слеши и начальные точки, чтоб
нельзя было отмонтировать что-то левое.
Затем добавим этот скрипт в /etc/sudoers:
%floppy ALL=ALL, NOPASSWD: /usr/local/bin/uumount
Теперь пользователи из группы floppy могут использовать его без пароля.
А теперь напишем скрипт, который собственно и будет спрашивать у пользователя,
что он хочет отмонтировать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#!/bin/bash |
Для уведомлений используется notify-send, для выбора — dmenu. Соответственно,
необходимо поставить пакеты libnotify-bin и suckless-tools или подобрать им
альтернативы.
Ну и в конце ставим этот скрипт на горячую клавишу.