Dans mon script bash, je monte des partitions, je les vérifie, je leur copie des fichiers et je les démonte. Lorsque le script monte la partition, Nautilus apparaît avec une fenêtre affichant la partition et volant le focus. C'est quelque chose que je veux éviter.
Remarque: je sais que je peux changer le comportement de ceci dans les paramètres système, les détails, les supports amovibles Never prompt or start programs on media insertion
, mais je ne veux pas changer le comportement, par exemple si une clé USB est branchée, je veux juste l'empêcher dans mon script bash . Étant donné que ce script s'exécute sur les ordinateurs d'autres utilisateurs, je ne peux pas modifier ces paramètres (dans le script) car s'il est interrompu anormalement, il laissera les paramètres modifiés en place (je ne pense pas non plus que cela devrait être nécessaire).
En fait, cet affichage automatique ne semble pas cohérent. Si je fais exactement la même commande depuis le terminal, Nautilus ne s'affiche pas et je sais qu'il y a d'autres montures dans mon script qui ne s'affichent pas. Alors, qu'est-ce qui pourrait en être la cause? Voici un exemple de code (les deux entraînent l'apparition de fenêtres nautilus distinctes):
mount $dev $target
mkdir -p $target/home
mount $homedev $target/home
Je suis intéressé à comprendre le processus par lequel le montage signale Nautilus et pourquoi cela se produit (quand ce n'est pas le cas si je monte la partition à partir du terminal). Et quelle est la meilleure façon d'empêcher que cela se produise.
J'ai remarqué ce comportement à partir de la version 11.10 (si je me souviens bien). J'utilise actuellement la version 12.04, mais le script doit fonctionner sur toutes les versions prises en charge. Je ne pense pas que la solution devrait impliquer la modification des paramètres système (qui peuvent différer entre les versions). Par exemple, si vous regardez d'autres choses qui montent des partitions (comme os-prober), aucune fenêtre nautilus n'apparaît quand il monte différentes partitions.
Le script peut être trouvé ici . Et voici la partie où Nautilus apparaît. Je pense que cela apparaît également ici , mais j'ai concentré mes tests sur le premier lien. C'est là que cela n'apparaît pas, appelé avant ces autres montages - notez que j'ai réécrit les premiers en - lecture seule et dans une instruction if et cela ne fait aucune différence.
Idéalement, la réponse expliquera pourquoi cela se produit et comment l'éviter, en d'autres termes, expliquera pourquoi le script mount
est traité différemment de celui émis par un terminal. Une bonne solution de contournement sera également acceptée s'il s'agit d'une solution entièrement expliquée et pratique qui peut prendre en charge tous les environnements de bureau (ubuntu, kubuntu, xubuntu, lubuntu, etc.) - Je veux également éviter une augmentation exponentielle des tests pour le vérifier.
Merci d'avance
============
Solution selon le lien de papashou :
add_udev_rules ()
{
for i in "$dev" "$homedev" "$bootdev" "$usrdev"; do
if [ -n "$i" ]; then
block=${i#/dev/}
echo "KERNEL==\"""$block""\",ENV{UDISKS_PRESENTATION_HIDE}=\"1\"" >> "$wubi_move_dir"/wubi_move.rules
fi
done
cp "$wubi_move_dir"/wubi_move.rules /etc/udev/rules.d/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
remove_udev_rules ()
{
rm /etc/udev/rules.d/wubi_move.rules
rm "$wubi_move_dir"/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
Cela atteint le résultat souhaité, mais ressemble à une approche de marteau. Je pense qu'il y a probablement un réglage fin dans udev qui permettra à la partition de toujours s'afficher dans Nautilus (et dans d'autres navigateurs de fichiers) sans apparaître lorsqu'elle est montée. Au fait, si quelqu'un veut essayer cela, le script suivant montrera l'effet pop-up de nautilus:
mkdir -p /tmp/testmount
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
rmdir /tmp/testmount
Je vais continuer à jouer avec udev
et j'ai également déposé un bug , car cela n'a aucun sens pour une partition qui n'est pas insérée d'agir comme une carte USB / multimédia insérée lors du montage. De plus, ce udevadm trigger
n'est pas une opération peu coûteuse qui semble (au moins le 12.04) geler temporairement tout.
Donc, en résumé, j'ai une solution réalisable (merci à tous ceux qui ont aidé), que je peux ou non mettre en œuvre (pas encore sûr); mais je vais continuer à chercher autre chose. Merci
Réponses:
Essayez cette suggestion: http://www.worldofnubcraft.com/969/hide-your-disks-or-partitions-from-nautilus/
Je suis assez sûr que cela a à voir avec les signaux et le traitement udev.
la source
udevadm trigger
. Je veux juste confirmer que cela fonctionne dans le script. Je posterai les détails dans la question si vous n'en avez pas ajouté plus ici.Essayez d'encapsuler votre script:
Non testé car je suis le 10.04
MISE À JOUR:
la source
Vous pouvez empêcher le montage automatique du lecteur flash en ajoutant une nouvelle règle udev. Dans cette règle, vous pouvez spécifier un lecteur flash par son fournisseur, son numéro de série et d'autres attributs. Voir les lignes ATTRS {} dans la sortie de:
Ce script que vous devez placer dans le dossier /etc/udev/rules.d avec un nom de fichier spécial, par exemple 81-usb-wubi-move.rules
La règle pourrait ressembler
Voir également:
la source
mount
depuis le terminal), mais si j'obtiens une bonne solution de contournement, je l'accepterai également.Non testé .... juste un pressentiment.
Montez le système de fichiers dans une arborescence inaccessible à l'utilisateur nautilus, par exemple dans un sous-répertoire de / root ou / home / someoneelse ou un sous-répertoire / tmp détenu et sécurisé par quelqu'un d'autre
Gardez à l'esprit que ce peut être une mauvaise idée de monter le même périphérique matériel à deux points de montage et de le modifier à partir des deux.
Une configuration humaine est possible dans (12.04beta) Ubuntu-> Paramètres système-> Détails-> Support amovible. Certaines options pourraient être définies sur "ne rien faire" et cela pourrait éviter la fenêtre contextuelle.
La documentation sur https://help.ubuntu.com/community/Mount/USB peut être utile pour 9.10 mais ne fonctionne pas avec 12.04. Les clés de gconf-editor qu'ils mentionnent ne sont plus utilisées.
la source
chmod 700
sur le dir ... semblait prometteur, puis une fenêtre de message (sans titre de fenêtre) a été affichée: "Impossible d'ouvrir un dossier pour un système de fichiers de 10 Go", "Aucune application n'est enregistrée comme gérant ce fichier"Essayez
mount
avec les drapeaux-n
et-i
.la source