Я хочу смонтировать другие накопители (в основном, ntfs и fat) на /drivename
, щелкнув значок накопителя на боковой панели nautilus, где «drivename» относится к метке накопителя. По умолчанию nautilus монтирует диски с именем Управляемое имя в папке /media/drivename
.
Мой вопрос: Как я могу сделать так, чтобы nautilus делал это?
Я не хочу использовать fstab: Пожалуйста, не предлагайте делать это отредактировав файл /etc/fstab
. Я хочу эту функцию в nautilus и после нажатия на диск также должен быть виден в боковой панели. (не должен быть скрыт).
Редактировать: Кажется, есть некоторые недоразумения с этим вопросом. Я не хочу монтировать в приводе /
, то есть все содержимое привода в /
. Что мне нужно, так это когда я монтирую диск с именем «Main», этот диск монтируется в /Main
вместо /media/Main
.
Вы можете сделать это, расширив эти правила по мере необходимости -
# Start at sdb to avoid system harddrive.
KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
# Global mount options
ACTION=="add", ENV{mount_options}="defaults,relatime"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"
# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
# Exit
LABEL="media_by_label_auto_mount_end"
. Внимательно посмотрите на правила. Это не работает для жестких дисков. KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"
говорит, что если имя устройства sda * (если не sdb * или sdc *), перейдите к метке media_by_label_auto_mount_end
, т.е. до конца правил. Так что редактируйте строку как хотите. Но не забывайте о системном диске. Добавьте для этого исключение.
Если ваш системный диск - / dev / sda7, то первая пара строк должна быть
KERNEL=="sda7" GOTO="media_by_label_auto_mount_end" #sda7 is system drive, so go to end.
#KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"
Если вам нужно выполнить дополнительные команды, объедините их с RUN
.
Чтобы узнать больше о правилах udev, нажмите здесь
.Насколько я знаю, сейчас это невозможно (по крайней мере, невозможно). Может потребоваться компиляция некоторых пакетов, включая nautilus
вам нужно написать правило udev для этого: вы можете создать файл в каталоге /etc/udev/rules.d/
с помощью
# Start at sdb to avoid system harddrive.
KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
# Global mount options
ACTION=="add", ENV{mount_options}="defaults,relatime"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"
# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
# Exit
LABEL="media_by_label_auto_mount_end"
и изменить действия ADD и REMOVE с вашим путем, в этом случае /
ACTION=="add", RUN+="/bin/mkdir -p /%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /%E{dir_name}"
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /%E{dir_name}", RUN+="/bin/rmdir /%E{dir_name}"
Вы хотите, чтобы динамично смонтированные объемы появились непосредственно в /
. До сих пор работа над этой проблемой сфокусировалась на изменении его от /media
кому: /
. Я подозреваю, что существует некоторый способ сделать это. Но простое, быстрое-и-грязное решение состояло бы в том, чтобы сделать его так /media
и /
та же папка.
Я не могу настоятельно рекомендовать это, поскольку система не разработана для прокладывания себе путь, и могут быть ошибки, который существует, потому что разработчики не рассматривали эту возможность. (Некоторые не могли бы даже считать предположение этим /
не /media
ошибка.)
Но необходимо смочь сделать /media
символьная ссылка на /
, так, чтобы, когда что-то смонтировано в /media/mount-point
, это на самом деле смонтировано в /mount-point
.
/media/media/mount-point
, /media/media/media/mount-point
, и т.д, хотя это довольно сбивало бы с толку, если бы необходимо было на самом деле получить доступ к нему теми именами.Обратите внимание на то, что, в то время как я не провел необходимое исследование, чтобы гарантировать, что это никогда не могло создавать проблему безопасности, оно не создает один ни одним из способов, которым это первоначально казалось бы:
Каталоги в /
, как /usr
и /dev
, то, что не -root
пользователь мог получить системный доступ путем взлома, не может быть получен доступ таким образом. Если Вы монтируете раздел, имя тома которого /usr
, это не перезапишет или предоставит доступ к /usr
, это смонтируется с альтернативным названием (обычно /usr_
).
Это не предоставляет несдержанный доступ в /
, и Вам не нужно к (и действительно, не должен), владение изменения или полномочия /
(или любой другой файл или папка). Владение и полномочия /
и /media
уже то же (0755
, root:root
):
ek@Apok:~$ ls -ld / /media
drwxr-xr-x 25 root root 4096 2012-07-15 19:17 /
drwxr-xr-x 14 root root 4096 2012-07-23 15:16 /media
Это - только для определенных точек монтирования это не -root
пользователи могут получить доступ, который они уже не имели, когда устройство смонтировано на них.
Сделать / медиа символьной ссылкой на /
, выполните эти шаги:
Размонтируйте все свои разделы, которые смонтированы в /media
так /media
пусто.
Удалить /media
:
sudo rmdir /media
Воссоздать /media
как символьная ссылка на /
, расположенный в /
:
sudo ln -s / /media
Обратите внимание на то, что /
прибывает прежде /media
в ln
команда, потому что при создании символьных ссылок, мы ставим цель сначала и затем источник.
Если Вы когда-нибудь нуждаетесь или хотите отменить это, просто выполнить шаги наоборот:
Размонтируйте все динамично смонтированные разделы.
/
, но это через /media
символьная ссылка, таким образом, Вы, вероятно, не сможете удалить ту символьную ссылку, в то время как они смонтированы, и если Вы, Вы не можете получать доступ к ним, действительно сбросила данные им или размонтировала их чисто.Удалите символьную ссылку:
sudo rm /media
Воссоздайте реальный каталог:
sudo mkdir /media
Вы не должны указывать битовую маску, потому что при создании папки как root
, полномочия по умолчанию корректны для /media
.
Этот метод похож предыдущему предложению для ручного создания отдельных символьных ссылок в /
к определенным подкаталогам /media
. Это отличается в этом, символьная ссылка /media
самостоятельно, который должен привести к точному поведению OP, который требуют, не имея необходимость вручную делать ссылки для каждой точки монтирования.