Tengo un script que utilizo para formatear cualquier tarjeta SD insertada, copiarle datos de carpetas específicas y luego expulsar.
Cada formato / copia se activa manualmente, como parte de un proceso por lotes que involucra aproximadamente cien tarjetas, por lo que no me preocupa presionar el botón de inicio en el momento incorrecto o en la tarjeta incorrecta.
Lo que estoy tratando de encontrar es cómo estar absolutamente seguro de que estoy escribiendo en el disco correcto
Esta es mi línea 'importante'
do shell script "diskutil eraseDisk \"MS-DOS FAT16\" " & diskName & " MBRFormat disk6"
El disk6
no es absoluto, ya que no siempre tengo la misma cantidad de unidades montadas. Puedo verificarlo manualmente antes de comenzar el lote, usando diskutil list
y luego cambiar ese parámetro en el script.
Lo que me gustaría poder hacer es hacer que el script compruebe qué unidad debe ser, luego insértelo como una variable, evitando cualquier "elección incorrecta".
Las unidades excluidas serían no extraíbles y amp; Discos RAM [volúmenes presumiblemente desmontados como EFI & La recuperación no tendría que ser filtrada] - estos tienen nombres de volumen conocidos - pero no puedo averiguar cómo establecer un nombre de volumen encontrado [conocido o desconocido, ya que las tarjetas SD pueden llamarse casi cualquier cosa antes de comenzar] a un determinado número de disco.
Especificaciones específicas del lector de tarjetas, integrado en mi monitor, Dell U2713H
Conectado a través de USB2 desde un Mac Pro 4,1 [con actualización de hardware de 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
Salida de muestra de 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
O ...
Usando ioreg -l
con el siguiente resultado
| | | | +-o Generic- SD/MMC/MS/MSPRO Media <class IOMedia,$
| | | | | {
| | | | | "Removable" = Yes
| | | | | "Content" = "FDisk_partition_scheme"
| | | | | "Whole" = Yes
| | | | | "Leaf" = No
| | | | | "BSD Name" = "disk7"
¿Cómo puedo corregir algo como grep -A 100 SD/MMC/MS/MSPRO Media | grep disk | awk...
para encontrar el disk7