Je souhaite monter mes autres lecteurs (principalement ntfs et fat) sur /drivename
en cliquant sur l’icône du lecteur dans le volet latéral de Nautilus, où "drivename" fait référence à l’étiquette du lecteur. Par défaut, nautilus monte les lecteurs avec le nom piloted dans le dossier /media/drivename
.
Ma question est la suivante: Comment faire pour que Nautilus fasse comme ça?
Je ne veux pas utiliser fstab: Merci de ne pas le faire en éditant le fichier /etc/fstab
. Je veux cette fonctionnalité dans Nautilus et après avoir cliqué sur le lecteur devrait également être vu dans le volet latéral. (ne devrait pas être caché).
Edit: Il semble y avoir un malentendu avec cette question. I ne veut pas monter dans le lecteur /
, c’est-à-dire tout le contenu d’un lecteur dans /
. Ce que je veux, c'est lorsque je monte un lecteur avec le nom de lecteur "Main", ce lecteur sera monté à /Main
au lieu de /media/Main
.
Vous pouvez le faire en étendant ces règles selon vos besoins -
# 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"
Regardez de plus près les règles. Cela ne fonctionne pas pour les lecteurs de disque dur. KERNEL!="sd[b-z][0-9]", GOTO="media_by_label_auto_mount_end"
indique si le nom du périphérique est sda * (si ce n'est sdb * ou sdc *), passez à l'étiquette media_by_label_auto_mount_end
ie. à la fin des règles. Alors modifiez la ligne comme vous le souhaitez. Mais n'oubliez pas le lecteur système. Ajouter une exception pour cela.
Si votre lecteur système est/dev/sda7, les deux premières lignes doivent être
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"
Si vous devez exécuter des commandes supplémentaires, concatérez-les avec RUN
.
Pour plus d'informations sur les règles udev, cliquez ici
vous devez écrire une règle udev pour cela: vous pouvez créer un fichier dans le répertoire /etc/udev/rules.d/
avec
# 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"
Et changez les actions ADD et REMOVE avec votre chemin, dans ce cas /
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}"
Vous souhaitez que les volumes montés dynamiquement apparaissent directement dans /
. Jusqu'ici, les travaux sur ce problème se sont concentrés sur le changer de /media
en /
. Je soupçonne qu'il y a un moyen de le faire. Mais une solution simple et rapide serait pour que /media
et /
soient le même dossier .
Je ne peux pas le recommander fortement, car le système n’est pas conçu pour fonctionner de cette façon et il peut y avoir des bogues car les développeurs n’ont pas envisagé cette possibilité. (Certains pourraient même ne pas considérer l'hypothèse que /
n'est pas /media
un bogue.)
Mais vous devriez pouvoir créer /media
un lien symbolique vers /
, de sorte que quand quelque chose est monté dans /media/mount-point
, il est réellement monté dans /mount-point
.
/media/media/mount-point
, /media/media/media/mount-point
, etc., mais il serait assez déroutant de pouvoir y accéder par ces noms.Veuillez noter que bien que je n’aie pas fait les recherches nécessaires pour s’assurer que cela ne puisse jamais créer un problème de sécurité, cela ne le crée pas du tout de la même manière qu’il le ferait au départ semble à:
Les répertoires de /
, tels que /usr
et /dev
, dans lesquels un utilisateur non -root
pourrait obtenir un accès système en compromettant, ne sont pas accessibles de cette manière. Si vous montez une partition dont le nom de volume est /usr
, elle n'écrasera ni ne donnera accès à /usr
, mais elle sera montée avec un autre nom (généralement /usr_
).
Cela ne donne pas un accès illimité dans /
, et vous n'avez pas besoin (et ne devriez pas, changer) de propriété ou d'autorisations de /
(ou de tout autre fichier ou dossier). La propriété et les autorisations de /
et /media
sont déjà identiques (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
Ce n'est que pour des points de montage spécifiques que les utilisateurs non -root
peuvent obtenir un accès qu'ils ne possédaient pas déjà, lorsque le périphérique est monté sur eux.
Pour créer/média un lien symbolique vers /
, procédez comme suit:
Démontez toutes vos partitions montées dans /media
afin que /media
soit vide.
Supprimer /media
:
Sudo rmdir /media
Recréez /media
sous forme de lien symbolique vers /
, situé dans /
:
Sudo ln -s / /media
Veuillez noter que /
vient avant /media
dans la commande ln
, car lors de la création de liens symboliques, nous plaçons d’abord la cible , puis la source .
Si vous avez besoin ou souhaitez annuler cette opération , procédez comme suit:
Démontez toutes les partitions montées dynamiquement.
/
, mais c'est via le lien symbolique /media
, de sorte que vous ne pourrez probablement pas supprimer ce lien symbolique tant qu'ils seront montés. pouvoir y accéder, leur vider des données ou les démonter proprement.Supprimer le lien symbolique:
Sudo rm /media
Recréez le répertoire réel:
Sudo mkdir /media
Vous n'êtes pas obligé de spécifier un masque de bits, car lorsque vous créez un dossier en tant que root
, les autorisations par défaut sont correctes pour /media
.
Cette méthode est similaire à la suggestion précédente de créer manuellement des liens symboliques individuels dans /
dans des sous-répertoires spécifiques de /media
. La différence est que le lien symbolique est /media
lui-même, ce qui devrait donner le comportement exact demandé par l'OP, sans qu'il soit nécessaire de créer manuellement des liens pour chaque point de montage.