Para un FAT32 formato disco , en Terminal El siguiente ejemplo comando compuesto emitirá su número de serie del volumen :
var="$(sudo dd if=/dev/diskNs1 skip=67 bs=1 count=4 2>/dev/null | hexdump -e '4/4 "%X"')"; echo "${var:0:${#var}/2}-${var:${#var}/2}"
- Sustituir
N
en /dev/diskNs1
con la correcta número de disco .
- Puede utilizar el
mount
comando o diskutil list
para determinar la número de disco de la disco de destino .
- Tenga en cuenta que el disco de destino debe ser desmontado antes de ejecutar el ejemplo comando compuesto .
Suponiendo que el disco de destino se monta como /dev/disk6s1
, en Terminal uso:
diskutil unmountDisk disk6
Después de la disco de destino está desmontado, entonces usa:
var="$(sudo dd if=/dev/disk6s1 skip=67 bs=1 count=4 2>/dev/null | hexdump -e '4/4 "%X"')"; echo "${var:0:${#var}/2}-${var:${#var}/2}"
Para mi disco de prueba , a USB unidad de flash formato FAT32 la salida era:
18E4-4FA7
Lo he confirmado con el vol
comando en Windows y el blkid
comando en Linux y la salida de vol
y blkid
que coincida con la salida del ejemplo comando compuesto arriba.
Notas:
Con FAT32 volúmenes El Número de serie del volumen se almacena en el Sector de arranque en offset 67 ( 0x43 ), y son cuatro bytes largo.
Lectura interesante: Números de serie de los volúmenes y verificación de la fecha y hora del formato
Puede haber una forma de formatear la salida del dd
comando con hexdump
para evitar el resto de comando compuesto Sin embargo, no quise dedicar tiempo a averiguarlo y opté por utilizar expansión de parámetros y aritmética de la cáscara en su lugar para el formato final.