Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un script pour monter un disque FW ?

30 réponses
Avatar
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)

10 réponses

1 2 3
Avatar
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

Avatar
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

--
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


Avatar
sebastienmarty
daniel patin wrote:

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]
<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)



Avatar
sebastienmarty
Franck <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


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]
<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)


Avatar
olivier.marti
SbM wrote:

Franck <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


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



Avatar
olivier.marti
Olivier Marti wrote:



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

Avatar
Franck
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

Avatar
Franck
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 )

Avatar
sebastienmarty
Olivier Marti wrote:

SbM wrote:

Franck <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


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]
<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)




Avatar
Franck
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 :-)

1 2 3