Montaje CLI frente a montaje GUI

21

En Ubuntu 12.10, cuando quiero montar un disco duro, puedo hacer clic en el disco desmontado y todo funciona bien (al montarlo en /media/username/partitionlabel).

Básicamente, me gustaría hacer exactamente eso a través de la línea de comandos (para un script en el que estoy trabajando).

Como no quiero montar automáticamente en el arranque, fstab está fuera de cuestión (¿verdad?).

Cuando uso mount en CLI, necesito especificar un punto de montaje (que debe tener un punto de montaje creado previamente; también, tengo que ocuparme de los permisos y demás): lo que no entiendo es dónde toma la GUI todo sus informaciones de? El punto de montaje parece depender de la etiqueta de la partición, pero dicho directorio no existe antes del montaje. Además, la forma de la GUI no parece importarle demasiado que un usuario no sea root.

¿Existe una forma "fácil" de montar a través de CLI, tal como lo hace en la GUI haciendo clic en una unidad desmontada?

NicApicella
fuente

Respuestas:

16

Nautilus y otros administradores de archivos que montan unidades (es decir, la GUI ) usan el udiskscomando.

Esto proporciona un montaje dinámico , donde el punto de montaje se crea para la unidad sobre la marcha, y cuando la unidad se desmonta, el punto de montaje desaparece.

Consulte man 1 udiskspara obtener detalles sobre cómo usar este comando (ya sea manualmente o desde un script / aplicación). Para obtener más información sobre cómo udisksfunciona, vea man 7 udisks.

Para montar un dispositivo con udisks, debe especificar un nombre de dispositivo válido para el dispositivo. Especificar el nombre del volumen del dispositivo no funcionará. Entonces, puedes usar udisksasí:

udisks --mount /dev/sdb1

Cuando se usa manualmente udisksdesde la línea de comandos, es mejor que simplemente conecte un dispositivo y luego lo ejecute dmesg | tailpoco después (vea man dmesgy man tail) para descubrir el nombre del dispositivo recién conectado.

udisksSin embargo, esta puede no ser la mejor manera de escribir un script que monte dispositivos . No sé exactamente cómo debe hacerlo, y sería difícil saberlo ya que no nos ha dicho exactamente qué quiere que haga este script y cuándo quiere que monte dispositivos.

Eliah Kagan
fuente
Muchas gracias, ¡ udiskses exactamente lo que estaba buscando! Por alguna razón, obtengo "Error de montaje: no autorizado" cuando lo ejecuto a través de ssh; Si no estoy presionando mi suerte, se agradecería a los punteros sobre cómo solucionarlo. ^^
NicApicella
2
@NicolaApicella ¿Cómo lo estás ejecutando? Recibirá un mensaje no autorizado si intenta ejecutarlo desde una sesión remota (incluyendo SSH) o desde un crontab; de forma predeterminada, los usuarios no root solo pueden montar volúmenes con udisksinicios de sesión interactivos locales. (Sin embargo, aún pueden ejecutar un script desde un inicio de sesión interactivo local que usa udisks).
Eliah Kagan
Sí, lo siento, acabo de notar (y edité) mi comentario anterior: de hecho, lo estoy ejecutando ssh. (Y actualmente buscando una solución en Google).
NicApicella
6

Como no quiero montar automáticamente en el arranque, fstab está fuera de cuestión (¿verdad?).

No noautola palabra clave hace que se salte el montaje en el momento del arranque

¿Existe una forma "fácil" de montar a través de CLI, tal como lo hace en la GUI haciendo clic en una unidad desmontada?

Lo más fácil sería agregarlo /etc/fstabcon noautoy usar ...

mount /dir

Esto tendrá una sonda de montaje para un punto de montaje y, si no se encuentra, para un dispositivo en /etc/fstab. /diraunque necesita existir.

Si se proporciona un dispositivo o UUID /etc/fstabno se sondea. Al igual que ...

mount /dev/sda1 /media/directory

O use udisks (dejaré que Eliah se encargue de eso> :-))


mount generalmente es solo superusuario.

Opciones de ejemplo:

  • rw,noauto,user lo monta como lectura + escritura pero no en el arranque y puede hacerlo como usuario.

  • También puede agregar permisos para un usuario /etc/fstabpara archivos. Puedes usar umaskpara eso.

  • umask = 0444: todos leen, no escriben, no ejecutan.

  • umask = 0333: todos leen, ejecutan.
  • umask = 0338: propietario, grupo leer y ejecutar; otros nada
Rinzwind
fuente
OK, probablemente seguiré adelante e intentaré eso, ya que parece ser la "forma de hacerlo" de todos modos. :-) Así que supongo que tendré que crear un directorio de punto de montaje (con los derechos correctos) de todos modos. ;-)
NicApicella
@Rinzwind ¿Podrá un usuario no root montar el dispositivo?
Eliah Kagan
1
@EliahKagan Sí, si configura las opciones apropiadas en fstab (uid, user, ...).
NicApicella
@NicolaApicella Espero que esta respuesta se amplíe para incluir información al respecto. :)
Eliah Kagan
@NicApicella le gusta mandarme: =)
Rinzwind
3

En uno de los comentarios, dijiste:

Por alguna razón, obtengo "Error de montaje: no autorizado" cuando lo ejecuto a través de ssh

Yo uso en pmountlugar de udisks. Funciona sobre ssh.

Si no recuerdo mal, esta es la sintaxis / etc que uso con ella; la mayoría de las mías están ocultas detrás de los alias en este punto:

pmount /dev/sdb1 my_usb
ls /media/my_usb/
eject /media/my_usb
Izkata
fuente
2

Utilizar

udisks --mount /dev/sdb1

(reemplace /dev/sdb1con el dispositivo que desea montar)

Florian Diesch
fuente