# monter un volume usb



## Clarusad (22 Septembre 2009)

Bonjour à tous,

Sauriez-vous comment monter un volume usb en AppleScript ou en Shell ?
J'ai déjà essayé avec ceci :

```
set diskName to "disque à toto"
set deviceName to do shell script "diskutil list | grep \"" & diskName & "\" | awk '{print $6}'"
do shell script "diskutil mountDisk /dev/" & deviceName
```
mais ça ne fonctionne pas.
Lorsque je fais ceci :

```
do shell script "diskutil list"
```
Je ne voit pas le disque que je cherche à monter bien qu'il soit branché.
Ce qui est normal puisque je viens de l'éjecter ; mais existe-t'il une astuce ?


----------



## ceslinstinct (22 Septembre 2009)

Clarusad a dit:


> Bonjour à tous,
> 
> Sauriez-vous comment monter un volume usb en AppleScript ou en Shell ?
> J'ai déjà essayé avec ceci :
> ...


Bonjour

Chez moi j'ai un AppleScript (je suis en voyage) qui monte les  volumes qui ont été démontés.

Il faut pour qu'ils restent en mémoire dans le système, qu'ils soient monté une fois, démontés   et toujours sous tension.
La moindre coupure de courant sur le volume et le système ne le retrouve pas.

Testé avec une clé USB.

Donc c'est sur ce point que tu doit faire attention (a mon avis).

PS: USB où Firewire c'est pareil, ça marche pour l'un comme pour l'autre.

@+


----------



## Clarusad (22 Septembre 2009)

Effectivement, je pense que l'alimentation électrique joue un rôle important mais lorsqu'il s'agit de partitions (que l'on peut monter et/ou démonter à volonté) ; mais ce sont les volumes physique qui m'intéressent (USB ou FW).

Cependant, lorsqu'après avoir débranché, puis re-branché le disque ; je peux le "voir" à nouveau à l'aide des applications fournies dans les outils de développement xcode: "IORegistryExplorer" et "USB Prober".
Ceci me fait supposer qu'il doit bien exister une formule magique afin de monter à nouveau un volume.


----------



## tatouille (23 Septembre 2009)

chez moi toutes ces versions fonctionnent

diskutil mountDisk /dev/disk1
diskutil mountDisk /dev/disk1s1
diskutil mountDisk /dev/disk1s2
diskutil mountDisk /dev/disk1s3

je peux unmount / mount des partitions, et meme si le controller du disk est power_off, il power_on

meme ejecté le device est toujours present donc devrait apparaitre dans 

diskutil list 

quel est le type de ta partition? et ta version d'OSX? et enfin quel type de materiel?


----------



## Clarusad (23 Septembre 2009)

chez moi, une fois le disque éjecté (icône mis à la corbeille) diskutil ne le voit plus et impossible de le monter à nouveau


----------



## ceslinstinct (23 Septembre 2009)

Clarusad a dit:


> chez moi, une fois le disque éjecté (icône mis à la corbeille) diskutil ne le voit plus et impossible de le monter à nouveau


Bonjour

Avec les disques externes utilisant une alimentation externe ça fonctionne parfaitement sur mon iMac.

Du moment qu'il est sous tension il est affiché dans Utilitaire de disques monté où démonté (mis à la corbeille).

Avec la clé USB qui n'a pas d'alimentation externe, la corbeille la supprime dans utilitaire de disques (même si l'on utilise un HUB)

Pas testé avec les volumes qui utilisent la prise USB pour s'alimenter, ça doit être la même chose que pour la clé USB.

Passer par AppleScript qui lui gère ces volumes.

Répond a la question de *tatouille*.

@+


----------



## Clarusad (23 Septembre 2009)

Alors,
il s'agit d'une clé usb dont diskutil me dit ceci : DOS_FAT_16. En ce qui concerne la machine, c'est un PPC sous 10.4.11.



ceslinstinct a dit:


> Passer par AppleScript qui lui gère ces volumes.


Tu pourrais me dire comment car je n'y suis pas arrivé ; j'ai certainement pas fait la bonne manip' 
Merci


----------



## ceslinstinct (23 Septembre 2009)

Clarusad a dit:


> Alors,
> il s'agit d'une clé usb dont diskutil me dit ceci : DOS_FAT_16. En ce qui concerne la machine, c'est un PPC sous 10.4.11.
> 
> 
> ...


Bonjour

Le 10.4 je n'utilise plus depuis longtemps et le FAT_16 jamais, j'utilise pas de PC.

Pour l'AppleScript il me semble que tu as reçut le code à lire, sinon tu as un homonyme.

Le code:


```
set {diskName, volumesMontes} to {"mon_Volum", list disks}

set the_ID to (do shell script "diskutil list | awk '/ " & diskName & " / {print $NF}'") as string
if the_ID is "" and volumesMontes does not contain diskName then
	tell me to activate
	display dialog "Je trouve pas ce volume, est-il sous tension?"
else
	if the_ID is not "" and diskName is in volumesMontes then
		do shell script "diskutil unmount " & quoted form of the_ID & " > /dev/null 2>&1 &" -- démonte le  volume
	else
		do shell script "diskutil mount " & quoted form of the_ID & " > /dev/null 2>&1 &" -- monte le  volume
	end if
end if
```

Ne supprime pas les volumes démontés par ce code dans utilitaire de disque mais les grises.

@+


----------



## Clarusad (23 Septembre 2009)

Merci pour le script, mais ce n'est justement pas exactement ce que je cherche à faire. En effet, ton script éjecte la partition (on la voit grisée dans Utilitaire de disques), je cherche à éjecter *le volume physique entier* puis à le monter à nouveau.


----------



## ceslinstinct (23 Septembre 2009)

Clarusad a dit:


> Merci pour le script, mais ce n'est justement pas exactement ce que je cherche à faire. En effet, ton script éjecte la partition (on la voit grisée dans Utilitaire de disques), je cherche à éjecter *le volume physique entier* puis à le monter à nouveau.


Chez moi quand on éjecte un volume c'est pour le supprimer complètement y compris dans l'utilitaire disques.

Donc si l'utilitaire de disque ne le reconnaît pas, je pense que la meilleure solution pour le redémarrer c'est de passer par la commande du DD Marche-Arrêt.

Chez moi j'utilise un PARA-SURTENSEUR ELECTRIQUE sur lequel est posé mon iMac et je commande tous mes DD par un de ces interrupteurs en façade (5 au total).
Ça m'évite d'aller chercher les interrupteurs Marche-Arrêt vue qu'ils sont tous sur On.

@+


----------



## tatouille (23 Septembre 2009)

en faite c'est diskutil et le finder qui volontairement empeche la disparition du volume physique (enfin sur leopard) et foute le merdier je vais aller tester une version server pour voir

quelques tests:

- diskutil umount aVolume
- sudo rm /dev/disk1
- diskutil list ok volume cache
- diskutil mount aVolume / failed no such volume
- power off / power On the controller ->  

Alert : USB Over Current Notice, A USB device is currently drawing too much power.
The hub to which it is attached to will be deactivated

je vous rassure ce qui n'est pas du tout le cas le volume se remonte


----------



## Clarusad (25 Septembre 2009)

Je suis pas très doué en shell : 'erf j'apprends... 


tatouille a dit:


> - diskutil umount aVolume
> - sudo rm /dev/disk1
> - diskutil list ok volume cache
> - diskutil mount aVolume / failed no such volume
> ...


C'est une suite de commandes ou à taper les une à la suite des autres afin de tester chacune d'entre-elles ?
Dès qu'il y à sudo, ça me fait toujours hésiter.

[EDIT] ps : ça me fait penser à un bug de mac OS 10.4.11 qui survient lorsqu'on veut mettre la machine en veille et qu'un périphérique usb y est branche, les ventilos tournent toujours alors que le système semble s'être endormi. Il est ensuite impossible de la réveiller !


----------

