7 votos

Diferencia entre "diskutil mount" y "sudo mount"

Estaba buscando una manera de montar la partición EFI en MacOS cuando me di cuenta de que en realidad había dos comandos para montar una partición: mount y diskutil mount . ¿Cuál es la diferencia entre ellos? No he podido encontrar nada sobre sus diferencias en Internet.

4voto

Mecki Puntos 121

mount() es en realidad una llamada al sistema, lo que significa que es una función C ofrecida por la biblioteca del sistema ( libSystem ) para indicar al sistema que monte una unidad de disco. Hablará con el núcleo del sistema operativo y le indicará qué montar, dónde montarlo y cómo montarlo.

La herramienta de línea de comandos mount es un simple binario alrededor de esta llamada de función. Analiza sus argumentos y luego los introduce en el sistema mount() comprueba el resultado de la operación e imprime un mensaje de error apropiado si no puede analizar sus argumentos o si la operación de montaje falla por alguna razón. La presencia de esa herramienta es requerida por el POSIX y como MacOS es un sistema compatible con POSIX, tiene que ofrecer ese comando.

Este comando también se encuentra en casi todos los sistemas UNIX, así como en todos los sistemas Linux, ya que es la forma en que un usuario con acceso al shell ordena al sistema que realice una llamada de montaje sin tener que escribir primero código C y compilar ese código a un binario utilizando un compilador de C. También de esa manera se puede realizar la operación de montaje desde dentro de los scripts del shell.

diskutil es otro comando proporcionado por Apple para MacOS y es la versión de línea de comandos de la aplicación "Utilidad de Discos". La versión de interfaz de usuario se parece a esto:

Disk Utility Application

Por supuesto, esta aplicación también es capaz de montar unidades, por lo que también tiene una función de montaje que se puede activar mediante diskutil mount (en la aplicación de interfaz de usuario, seleccione un disco y, a continuación, elija el icono de montaje de la barra de herramientas situada en la esquina superior derecha o abra el menú contextual y seleccione "Montar").

Como puede ver en la página de manual de diskutil la llamada de montaje tiene muchas menos opciones disponibles ( readOnly y un -mountPoint ), que limita las formas en que se puede montar un volumen, pero normalmente las opciones que faltan no son necesarias. Además, algunas opciones no son necesarias como diskutil calculará automáticamente la configuración correcta (mientras que mount es bastante tonto y a menudo requiere que especifiques ajustes adicionales para que funcione correctamente).

También diskutil permite a los usuarios administradores (y a veces incluso a los usuarios normales) montar volúmenes que de otro modo requerirían privilegios de Root, por eso normalmente hay que usar sudo con mount pero no con diskutil (para empezar, no permitirá operaciones maliciosas y, como no se puede establecer ninguna opción peligrosa, tampoco se puede romper nada). Por comodidad y seguridad, diskutil siempre montará volúmenes en /Volumes y a un directorio con el mismo nombre que el volumen de disco; puede montar un volumen en otro lugar con el comando mountPoint pero entonces se requieren privilegios de Root (ya que es una operación potencialmente peligrosa).

Por último mount requiere especificar la fuente de montaje como dispositivo de disco (algo así como /dev/disk1s2 ) pero diskutil también permite especificar un volumen por su UUID (cada volumen tiene un identificador único parecido a éste 3717b1fa-e76b-11ec-9b88-7e3148d68d41 ), e incluso por nombre de volumen (por ejemplo, "Macintosh HD"; si varios volúmenes tienen ese nombre, elige el primero que encuentra).

Así que a menos que tenga que utilizar mount por alguna razón (por ejemplo, porque necesita una opción determinada) o quiere escribir un script, normalmente siempre utilizará diskutil mount en MacOS para montar volúmenes. Es más fácil de usar, proporciona mejores mensajes de error y no requiere que te hagas Root primero. Sólo recurrir a mount si lo que intenta hacer no es posible con diskutil .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X