¿Existe una forma de configurar cómo se montan las unidades en el arranque para que estén siempre en la misma ubicación/ruta de montaje?
No es necesario especificar el orden en el que arrancan; se utiliza el UUID. Para obtener el UUID de una unidad en MacOS utilice el comando:
% diskutil info diskXsY | grep -i UUID
donde X es el número de disco (es decir /dev/disk5
) e Y es el número de la porción o de la partición (es decir disk5s1
)
Por ejemplo, inserté un disco flash USB al azar que se identificó como /dev/disk7
. Emitiendo el comando como se detalla arriba
% diskutil info disk7s1 | grep -i UUID
Volume UUID: 0E239BC6-F960-3107-89CF-1C97F78BB46B
Disk / Partition UUID: DF8CB142-B426-4F62-841C-5D26904CF54C
El UUID del disco es la segunda entrada.
Por lo tanto, para identificar este disco en cualquier momento que haya sido conectado al Mac, puede utilizar el UUID. Por ejemplo:
% diskutil list DF8CB142-B426-4F62-841C-5D26904CF54C
/dev/disk8 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *16.0 GB disk8
1: EFI EFI 209.7 MB disk8s1
2: Apple_CoreStorage MyTest 15.7 GB disk8s2
3: Apple_Boot Boot OS X 134.2 MB disk8s3
Si te fijas, ahora tiene un identificador de disk8
. Había insertado otra memoria USB obligando a cambiar el identificador de la unidad demostrando que este es un método válido.
Si debe utilizar el identificador de la unidad, cree una función que determine el identificador a través del UUID. Por ejemplo, el siguiente comando obtendrá su identificador de disco de la unidad conectada con el UUID:
% diskutil list DF8CB142-B426-4F62-841C-5D26904CF54C | awk '/dev/ { print $1 } '
/dev/disk8
Puede crear un Función Bash/Zsh para devolverle esta información a petición.
En cuanto a los soportes no extraíbles...
Cada vez que reinicio el ordenador, al ejecutar diskutil list el orden de las unidades montadas cambia: /dev/disco0 se convierte en /dev/disco1 y viceversa
No veo que esto ocurra. Los medios no extraíbles no cambian. Su dispositivo de arranque está especificado en la NVRAM lo que significa /disk0
será desde lo que se arranque y como está definido en el entorno de preinicio disk0
y disk1
no se intercambiarán los lugares. La única vez que esto puede ocurrir es durante el Recovery (estás arrancando desde un volumen diferente) pero entonces, al arrancar desde el Recovery, no estás cargando nada allí, especialmente tu aplicación VB.
Ahora, si te refieres a extraíble dispositivos, sí, es posible que el identificador cambie (yo lo hice en mi ejemplo). Por eso se utiliza el UUID del disco para asegurar que siempre se accede a la misma unidad independientemente de cuándo se conecte.