Faire monter et demonter disques

yvos

Kool Thing
23 Décembre 2003
9 900
3 568
48
Parigô
perso.wanadoo.fr
Bon, je sais pas si c'est ici le meilleur endroit, mais est-il possible, sous Tiger, de faire monter/demonter un disque externe "sur demande" (en fait, avoir l'opération inverse à l'ejection sans avoir à débrancher rebrancher la prise USB :D )
Merci d'avance! :)
 
Quand on "détache" (detach : chez M. Jobs, on ne dit plus mount/umount mais attach/detach) un volume, il est carrément ôté de la liste des périphériques (répertoire "/dev").

Donc il faudrait scanner de nouveau les périphériques USB : je vais chercher la commande de Terminal pour le faire.
 
bompi a dit:
Quand on "détache" (detach : chez M. Jobs, on ne dit plus mount/umount mais attach/detach) un volume, il est carrément ôté de la liste des périphériques (répertoire "/dev").

Donc il faudrait scanner de nouveau les périphériques USB : je vais chercher la commande de Terminal pour le faire.
Pour en faire un petit script ? Ce serait super ...:)
 
utilitaire disque permet de remonter un disque que l'on a démonté.... Peut-être est-il scriptable sous Tiger....
 
En fait l'ennui est que, dans le finder, lorsqu'on éjecte un disque, on l'évacue du système.
Sur un système Unix habituel, on se contente de démonter, ici, on éjecte.
Il faudrait donc dire au Finder de ne faire que 'umount' sans éjection. Dur ...
Par un script cela est possible.
Un petit exemple. J'ai une clef USB. Je la monte. Apparaissent les deux noeuds :
/dev/disk1 et /dev/disk1s1

Si je démonte ainsi :
Bloc de code:
hdiutil unmount /dev/disk1s1
le disque est toujours présent mais plus monté.

En faisant :
Bloc de code:
hdiutil mount /dev/disk1
cela remonte le volume.

Mais ce n'est pas encore tout à fait ça car je dois m'y reprendre à deux fois.

Je pense qu'une investigation autour de diskutil s'impose ...
 
bompi a dit:
En fait l'ennui est que, dans le finder, lorsqu'on éjecte un disque, on l'évacue du système.
Sur un système Unix habituel, on se contente de démonter, ici, on éjecte.
Il faudrait donc dire au Finder de ne faire que 'umount' sans éjection. Dur ...
Par un script cela est possible.
Un petit exemple. J'ai une clef USB. Je la monte. Apparaissent les deux noeuds :
/dev/disk1 et /dev/disk1s1

Si je démonte ainsi :
Bloc de code:
hdiutil unmount /dev/disk1s1
le disque est toujours présent mais plus monté.

En faisant :
Bloc de code:
hdiutil mount /dev/disk1
cela remonte le volume.

Mais ce n'est pas encore tout à fait ça car je dois m'y reprendre à deux fois.

Je pense qu'une investigation autour de diskutil s'impose ...

trop fort, le dimanche ....:zen: :up:
 
Ce n'est pas "hdiutil mount /dev/mon disque "
c'est
Bloc de code:
"hdiutil mount /dev/disk1 "

Car lorsque tu fais cette commande, le nom utilisateur du volume n'est pas connu, seulement le noeud correspondant au périphérique.
 
" hdiutil mount /dev/disk1 " me donne la liste de mes disques et partitions (j'ai un disque externe) mais la clé USB testé n'est pas vue dans cette liste, hors elle n'est pas éjectée, puisque je la vois avec Utilitaire de disque et, est "montable" ???
 
C'était un exemple chez moi. Cela peut être aussi bien "/dev/disk2".
Tu le sauras en faisant "df -k" dans le Terminal.

Mais, autre ennui, c'est que le chiffre évolue suivant l'ordre de connexion des périphériques.
Je pense qu'il va falloir aller assez bas ... (les disques sont identifiés par des clefs uniques stockées je ne sais où, voir la page de manuel de diskarbitrationd).
 
  • J’aime
Réactions: yvos
Finalement j'ai réussi comme cela :)

- Ouvrir Terminal > Fichier > nouvelle commande :
taper : hdiutil mountvol /dev/disk3s9 (disk3s9 étant mon disque à monter)
- Exécuter la commande
- Fichier > Enregistrer sous ( enregistrer un fichier "xxxx.term")
- le placer par exemple dans /Users/Toto/Library/Application Support/Terminal
- glisser ce fichier dans la barre de menu d'une fenêtre du Finder (pour le lancer à volonté...)

On peu chipoter en éditant un script qui ouvrira ce fichier, et après, quittera Terminal ...
Pour le moment , cela me satisfait très bien :rolleyes:
 
Ben chuis une tanche ....
Car avec Automator, c'est encore plus simple .... :D
Ouvrir Automator>Cliquer sur Automator dans la liste des applis>choisir "Exécuter un script Shell"Le glisser dans la fenêtre de droite>Et taper "hdiutil mountvol /dev/le-disque-à-monter">Enregistrer comme applis
Pourquoi faire compliqué quand Apple se décarcasse pour nous !!! :mouais:
 
Salut!
J'ai fait un script qui permet de monter une partition / disque à partir de son UUID, ce qui rend ce script indépendant de l'ordre de branchement et même du nom donné à la partition / disque. Pour récupérer son UUID c'est 'df -k' puis recopier l'ID dans le script (dans le If..).

#!/bin/bash
#Montage d'une partition à partir de son UUID

EXIT=''
for i in ls -al /dev/disk* ; do

UUID=`diskutil info $i | grep UUID | awk '{print $2}'`
#echo $UUID
if [ "$UUID" = "7506083D-5DFB-333C-AFE4-E70F804F0CA5" ] ; then
EXIT=`hdiutil mountvol $i | awk '{print $3}'`
echo "La partion $EXIT est montee"
break
fi;

done

if [ -z "$EXIT" ] ; then
echo 'Erreur AUCUN disque monte'
fi;

Je ne suis pas une bête du script unix, il est surment améliorable..! Il est testé sous Tiger.
 
Bonjour

Pour donner une idée en AppleScript.

Changer mon_Volume par le nom du volume sélectionné.
Bloc de code:
-- Si le volume est sous tension et démonté
tell application "Finder"
	if not (exists the disk "mon_Volume") then
		do shell script "diskutil mount `disktool -l | grep 'mon_Volume' | 
sed 's/.*\\(disk[0-9s]*\\).*/\\1/'`"
		delay 2
	end if
end tell

-- Quitter le volume de ce nom sur le bureau
tell application "Finder"
	if (exists the disk "mon_Volume") then
		eject "mon_Volume"
		delay 2
	end if
end tell

Utilisé avec Leopard sans problème sur mon iMac.

@+