Un script pour monter un disque FW ?

Le
sebastienmarty
Bonjour tous,

Je possède un disque externe Firewire que j'utilise comme espace de
stockage annexe, et qui n'est donc pas systématiquement monté sur mon
Mac.

Quand je souhaite l'utiliser, je lance l'utilitaire de disque, qui
recherche tous les disques connectés et me permet donc de monter la
partoche correspondante.

Or j'aimerais me concocter un petit script que je collerais dans le dock
et qui me monterait automatiquement ce disque-là /sans/ m'obliger à
lancer l'utilitaire de disque à la main et je n'y arrive pas !

Je ne suis pas grand connaisseur des choses du Terminal, mais j'ai
repéré la commande "diskutil" (qui correspond à l'Utilitaire de disque).
Quand je tape "diskutil mount /Volumes/Local250Go", ça ne fonctionne
pas. Ça ne marche que si je tape "diskutil mount /dev/disk3s3", mais
puis-je être certain que "disk3s3" sera toujours attribué à cette
partition-là ? J'ai un doute

Bref, si vous avez une idée pour écrire un script "tout terrain"

--
[SbM]
<http://sebastienmarty.free.fr> - <http://tradintosh.free.fr>
<http://sbm.ordinotheque.free.fr> - <http://palmiciel.free.fr>
"If the French were really intelligent, they'd speak English" (W. Sheed)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Franck
Le #2423761
Bref, si vous avez une idée pour écrire un script "tout terrain"...


Ca doit pouvoir se faire assez facilement, en commençant par un
"diskutil list" pour avoir la liste de toutes les partitions de tous les
disques, en recherchant le nom de volume désiré (avec grep au hasard),
puis en extrayant la dernière colonne "DEVICE" de la ligne obtenue

Suffit alors de monter /dev/DEVICE

daniel patin
Le #2423751
Franck wrote:
Bref, si vous avez une idée pour écrire un script "tout terrain"...


Ca doit pouvoir se faire assez facilement, en commençant par un
"diskutil list" pour avoir la liste de toutes les partitions de tous les
disques, en recherchant le nom de volume désiré (avec grep au hasard),
puis en extrayant la dernière colonne "DEVICE" de la ligne obtenue

Suffit alors de monter /dev/DEVICE


ou peut etre plus simplement avec un alias: sur le bureau, tu as ton
disque monté, tu crée un alias de ce disque et tu pourras le monter en
principe d'un double clic.
je dis en principe, car j'utilise ça pour du disque reseau, mais je n'ai
pas testé en firewire

--
daniel.patin (et non pas marcel.dugenou)
http://leinad-fr.net le blog
http://www.daniel-patin.net sur mon mac
http://daniel.patin.adsl.free.fr/ quelques photos


sebastienmarty
Le #2423731
daniel patin
Franck wrote:
Bref, si vous avez une idée pour écrire un script "tout terrain"...


Ca doit pouvoir se faire assez facilement, en commençant par un
"diskutil list" pour avoir la liste de toutes les partitions de tous les
disques, en recherchant le nom de volume désiré (avec grep au hasard),
puis en extrayant la dernière colonne "DEVICE" de la ligne obtenue

Suffit alors de monter /dev/DEVICE


ou peut etre plus simplement avec un alias: sur le bureau, tu as ton
disque monté, tu crée un alias de ce disque et tu pourras le monter en
principe d'un double clic.
je dis en principe, car j'utilise ça pour du disque reseau, mais je n'ai
pas testé en firewire


Je viens d'essayer : ça ne marche pas, il ne trouve pas le disque.
L'idée était sympa et me plaisait bien, pourtant... dommage... Merci
quand même.

--
[SbM]
"If the French were really intelligent, they'd speak English" (W. Sheed)



sebastienmarty
Le #2423721
Franck
Bref, si vous avez une idée pour écrire un script "tout terrain"...


Ca doit pouvoir se faire assez facilement, en commençant par un
"diskutil list" pour avoir la liste de toutes les partitions de tous les
disques, en recherchant le nom de volume désiré (avec grep au hasard),
puis en extrayant la dernière colonne "DEVICE" de la ligne obtenue

Suffit alors de monter /dev/DEVICE


Le problème c'est que je ne maîtrise absolument pas grep (déjà que la
commande en ligne je patauge...). Quand je fais un "diskutil list",
j'obtiens en fin de liste un truc de ce genre :

/dev/disk3
#: type name size identifier
0: Apple_partition_scheme *233.8 GB disk3
1: Apple_partition_map 31.5 KB disk3s1
2: Apple_HFS Local250Go 233.6 GB disk3s3

Quelle syntaxe dois-je utiliser avec la commande grep pour extraire le
"disk3s3" (au bout de la dernière ligne) ?

--
[SbM]
"If the French were really intelligent, they'd speak English" (W. Sheed)


olivier.marti
Le #2423691
SbM
Franck
Bref, si vous avez une idée pour écrire un script "tout terrain"...


Ca doit pouvoir se faire assez facilement, en commençant par un
"diskutil list" pour avoir la liste de toutes les partitions de tous les
disques, en recherchant le nom de volume désiré (avec grep au hasard),
puis en extrayant la dernière colonne "DEVICE" de la ligne obtenue

Suffit alors de monter /dev/DEVICE


Le problème c'est que je ne maîtrise absolument pas grep (déjà que la
commande en ligne je patauge...). Quand je fais un "diskutil list",
j'obtiens en fin de liste un truc de ce genre :

/dev/disk3
#: type name size identifier
0: Apple_partition_scheme *233.8 GB disk3
1: Apple_partition_map 31.5 KB disk3s1
2: Apple_HFS Local250Go 233.6 GB disk3s3

Quelle syntaxe dois-je utiliser avec la commande grep pour extraire le
"disk3s3" (au bout de la dernière ligne) ?



Grep permet d'extraire la bonne ligne. Après c'est différent, avec des
pipe (par option-maj-L):

diskutil list | grep Secours | awk '{print $6}'


Je ne promet pas que ça marche si le nom du disque contient un blanc.
Peut-être faut-il imprimer le 7ème champ au lieu du 6ème dans ce cas.

Olivier



olivier.marti
Le #2423681
Olivier Marti


Grep permet d'extraire la bonne ligne. Après c'est différent, avec des
pipe (par option-maj-L):

diskutil list | grep Secours | awk '{print $6}'


Je ne promet pas que ça marche si le nom du disque contient un blanc.
Peut-être faut-il imprimer le 7ème champ au lieu du 6ème dans ce cas.

Olivier



Si le formatage ne change pas, le nom qu tu cherches est toujours après
le 59 charactère de la ligne, donc tu peux essayer :

diskutil list | grep Secours | cut -c 59-80

Olivier

Franck
Le #2423661
Le problème c'est que je ne maîtrise absolument pas grep (déjà que la
commande en ligne je patauge...). Quand je fais un "diskutil list",
j'obtiens en fin de liste un truc de ce genre :


Bon alors vite fait (les pro du script apporteront sans doute leurs
modifications ;-) ca doit ressembler à ça en bash :

#!/bin/bash

if [ $# != 1 ]; then
echo "Usage : $0 volume_name"
exit
fi

DEVICE=`diskutil list | grep $1 | sed -ne "s/.*(disk.*)$/1/p"`

if [ "x$DEVICE" == "x" ]; then
echo "Volume $1 not found"
else
diskutil mount /dev/$DEVICE
fi

Franck
Le #2423651
diskutil list | grep Secours | awk '{print $6}'


Je ne promet pas que ça marche si le nom du disque contient un blanc.
Peut-être faut-il imprimer le 7ème champ au lieu du 6ème dans ce cas.


J'avoue ne jamais penser à awk.... bien plus simple que sed pourtant
(voir mon exemple de script :-p )

sebastienmarty
Le #2423601
Olivier Marti
SbM
Franck
Bref, si vous avez une idée pour écrire un script "tout terrain"...


Ca doit pouvoir se faire assez facilement, en commençant par un
"diskutil list" pour avoir la liste de toutes les partitions de tous les
disques, en recherchant le nom de volume désiré (avec grep au hasard),
puis en extrayant la dernière colonne "DEVICE" de la ligne obtenue

Suffit alors de monter /dev/DEVICE


Le problème c'est que je ne maîtrise absolument pas grep (déjà que la
commande en ligne je patauge...). Quand je fais un "diskutil list",
j'obtiens en fin de liste un truc de ce genre :

/dev/disk3
#: type name size identifier
0: Apple_partition_scheme *233.8 GB disk3
1: Apple_partition_map 31.5 KB disk3s1
2: Apple_HFS Local250Go 233.6 GB disk3s3

Quelle syntaxe dois-je utiliser avec la commande grep pour extraire le
"disk3s3" (au bout de la dernière ligne) ?



Grep permet d'extraire la bonne ligne. Après c'est différent, avec des
pipe (par option-maj-L):

diskutil list | grep Secours | awk '{print $6}'


Je viens d'essayer ça en direct dans le Terminal, ça marche nickel, ça
me renvoie "disk3s3". Grand merci donc. Reste plus qu'un souci pour moi,
novice en la matière : comment rebalancer cette valeur dans une commande
"diskutil mount" ?

Si je regarde le script de Franck (merci aussi à lui pour ses efforts
;-), ça pourrait donner un truc du style :

#!/bin/bash
DEVICE=`diskutil list | grep Local250Go | awk '{print $6}'`
diskutil mount /dev/$DEVICE

J'ai bon ? ;-)

--
[SbM]
"If the French were really intelligent, they'd speak English" (W. Sheed)




Franck
Le #2423591
Si je regarde le script de Franck (merci aussi à lui pour ses efforts
;-), ça pourrait donner un truc du style :

#!/bin/bash
DEVICE=`diskutil list | grep Local250Go | awk '{print $6}'`
diskutil mount /dev/$DEVICE

J'ai bon ? ;-)


Oui :-)

Publicité
Poster une réponse
Anonyme