web-dev-qa-db-ja.com

`/ media / drivename`の代わりに` / drivename`にnautilusをマウントする方法は?

Nautilusサイドペインのドライブアイコンをクリックして、/drivenameに他のドライブ(主にntfsとfat)をマウントします。ここで、「ドライブ名」はドライブのラベルを指します。デフォルトでは、nautilusは/media/drivenameフォルダーに名前drivenameのドライブをマウントします。

私の質問は次のとおりです。どうすればnautilusをそのようにできますか?

fstab:を使用したくない/etc/fstabファイルを編集してこれを行うことを提案しないでください。 nautilusでこの機能が必要です。ドライブをクリックすると、サイドペインにも表示されます。 (非表示にしないでください)。


Edit:この質問には誤解があるようです。ドライブにマウントしたくない/、つまり、ドライブのすべての内容は/になります。ドライブ名が「Main」のドライブをマウントすると、そのドライブは/Mainではなく/media/Mainにマウントされます。

3
Anwar

これを行うには、必要に応じてこれらのルールを拡張します-

# 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ルールの詳細については、 here をクリックしてください

1
Sarowar

このために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}"
1
white-shy-guy