Ho uno script che uso per formattare qualsiasi scheda SD inserita, copiare i dati da cartelle specifiche ad esso, quindi espellere.
Ogni formato / copia viene attivato manualmente, come parte di un processo batch che coinvolge forse un centinaio di carte, quindi non sono preoccupato di premere il pulsante Start nel momento sbagliato o sulla carta sbagliata.
Quello che sto cercando di trovare è come essere assolutamente sicuro di scrivere nel disco corretto
Questa è la mia linea "importante"
do shell script "diskutil eraseDisk \"MS-DOS FAT16\" " & diskName & " MBRFormat disk6"
Il disk6
non è assoluto, in quanto non sempre ho montato lo stesso numero di unità. Posso verificarlo manualmente prima di avviare il batch, utilizzando diskutil list
, quindi modificare quel parametro nello script.
Quello che mi piacerebbe essere in grado di fare è che lo script stesso controlli quale unità dovrebbe essere, quindi inseriscilo come variabile, evitando "scelte sbagliate".
Le unità escluse sarebbero non rimovibili e amp; Dischi RAM [presumibilmente volumi non montati come EFI e amp; Il recupero non ha bisogno di essere filtrato] - questi hanno nomi di volume noti - ma non riesco a capire come impostare un nome di volume trovato [conosciuto o sconosciuto, dato che le schede SD possono essere chiamate praticamente prima di iniziare] su uno specifico numero del disco.
Specifiche sul lettore di schede, integrato nel mio monitor, Dell U2713H
Collegato tramite USB2 da Mac Pro 4,1 [con aggiornamento hardware 5,1]
USB Hi-Speed Bus:
Host Controller Location: Built-in USB
Host Controller Driver: AppleUSBEHCI
PCI Device ID: 0x3a3c
PCI Revision ID: 0x0000
PCI Vendor ID: 0x8086
Bus Number: 0xfa
Hub:
Product ID: 0x8043
Vendor ID: 0x0451 (Texas Instruments)
Version: 1.00
Serial Number: 79000089BFB9
Speed: Up to 480 Mb/sec
Location ID: 0xfa200000 / 2
//snips other devices//
USB3.0 Card Reader:
Product ID: 0x0307
Vendor ID: 0x0bda (Realtek Semiconductor Corp.)
Version: 1.63
Serial Number: 201006010301
Speed: Up to 480 Mb/sec
Manufacturer: Realtek
Location ID: 0xfa233000 / 5
Output di esempio di df
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk1s2 1950314272 485618064 1464184208 25% 60766256 183023026 25% /
devfs 412 412 0 100% 714 0 100% /dev
/dev/disk0s2 3906357344 1195025808 2711331536 31% 149378224 338916442 31% /Volumes/JuSpace
/dev/disk3s2 1951855464 635192376 1316663088 33% 79399045 164582886 33% /Volumes/Downloads
/dev/disk2s2 5858067520 2309215360 3548852160 40% 144325958 221803260 39% /Volumes/OhDaSpace
/dev/disk4s2 5753889792 4638480736 1115409056 81% 289905044 69713066 81% /Volumes/TMach
map -hosts 0 0 0 100% 0 0 100% /net
map auto_home 0 0 0 100% 0 0 100% /home
/dev/disk3s4 408324240 210669592 197654648 52% 200589 98828207 0% /Volumes/MacWin7
/dev/disk5 2097152 700536 1396616 34% 87565 174577 33% /Volumes/RAM Disk
/dev/disk7s1 1936768 104192 1832576 6% 512 0 100% /Volumes/F_CARD
Oppure ...
Usando ioreg -l
con il seguente risultato
| | | | +-o Generic- SD/MMC/MS/MSPRO Media <class IOMedia,$
| | | | | {
| | | | | "Removable" = Yes
| | | | | "Content" = "FDisk_partition_scheme"
| | | | | "Whole" = Yes
| | | | | "Leaf" = No
| | | | | "BSD Name" = "disk7"
come faccio a correggere qualcosa come grep -A 100 SD/MMC/MS/MSPRO Media | grep disk | awk...
per trovare disk7