¿Cómo acceder a un pendrive usb desde la terminal?

Además de usar el comando estándar mount (que requiere root) puedes montar unidades usando udisks y dbus con tu usuario estándar.

Para hacer esto es útil (pero no obligatorio) saber primero algunas cosas sobre la unidad:

  1. Qué dispositivo es (i.e. /dev/sdb1)
  2. qué sistema de archivos utiliza.
  3. Sabiendo esto se puede utilizar un simple comando para montar una unidad desde la línea de comandos.

    gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemMount "<filesystem>" 

    Esta llamada debe hacer eco de la ruta en la que está montada si el montaje tiene éxito.

    Para desmontar las unidades montadas de esta manera puedes ejecutar:

    gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/<device> --method org.freedesktop.UDisks.Device.FilesystemUnmount 

    N.B. el <device> es simplemente el final de la ruta de acceso. Así, por ejemplo, si lo que quieres montar está en /dev/sdb2 entonces pondrías sdb2 en lugar de <device>.

    Si no sabes qué dispositivo es o qué sistema de archivos utiliza no temas. Puedes imprimir fácilmente toda esa información con este pequeño comando:

    gdbus introspect --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices --recurse --only-properties | grep -E "(readonly .+ (IdLabel|IdType|Device(IsMounted|IsDrive|File) ).*|\}|.*\{)"

    Esto imprimirá algo así:

    node /org/freedesktop/UDisks/devices { node /org/freedesktop/UDisks/devices/sda { interface org.freedesktop.UDisks.Device { readonly s IdLabel = ''; readonly s IdType = ''; readonly s IdUsage = ''; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sda'; }; }; node /org/freedesktop/UDisks/devices/sda1 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = 'SYSTEM'; readonly s IdType = 'ntfs'; readonly s IdUsage = 'filesystem'; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sda1'; }; }; node /org/freedesktop/UDisks/devices/sda2 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = 'Windows7'; readonly s IdType = 'ntfs'; readonly s IdUsage = 'filesystem'; readonly b DeviceIsMounted = true; readonly s DeviceFile = '/dev/sda2'; }; }; node /org/freedesktop/UDisks/devices/sda3 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = 'Recovery'; readonly s IdType = 'ntfs'; readonly s IdUsage = 'filesystem'; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sda3'; }; }; node /org/freedesktop/UDisks/devices/sda4 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = ''; readonly s IdType = ''; readonly s IdUsage = ''; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sda4'; }; }; node /org/freedesktop/UDisks/devices/sda5 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = ''; readonly s IdType = 'ext4'; readonly s IdUsage = 'filesystem'; readonly b DeviceIsMounted = true; readonly s DeviceFile = '/dev/sda5'; }; }; node /org/freedesktop/UDisks/devices/sda6 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = ''; readonly s IdType = 'swap'; readonly s IdUsage = 'other'; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sda6'; }; }; node /org/freedesktop/UDisks/devices/sda7 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = ''; readonly s IdType = 'ext4'; readonly s IdUsage = 'filesystem'; readonly b DeviceIsMounted = true; readonly s DeviceFile = '/dev/sda7'; }; }; node /org/freedesktop/UDisks/devices/sdb { interface org.freedesktop.UDisks.Device { readonly s IdLabel = ''; readonly s IdType = ''; readonly s IdUsage = ''; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sdb'; }; }; node /org/freedesktop/UDisks/devices/sdb1 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = 'USB DRIVE'; readonly s IdType = 'vfat'; readonly s IdUsage = 'filesystem'; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sdb1'; }; }; node /org/freedesktop/UDisks/devices/sr0 { interface org.freedesktop.UDisks.Device { readonly s IdLabel = ''; readonly s IdType = ''; readonly s IdUsage = ''; readonly b DeviceIsMounted = false; readonly s DeviceFile = '/dev/sr0'; }; };};

    Los que tienen IdUsage = 'filesystem' pueden ser montados usando el comando anterior.

    Esto significa que, por ejemplo, si quisiera montar el dispositivo

    DRIVE USB

    ejecutaría el comando

    gdbus call --system --dest org.freedesktop.UDisks --object-path /org/freedesktop/UDisks/devices/sdb1 --method org.freedesktop.UDisks.Device.FilesystemMount "vfat" 

    Todos estos comandos funcionan utilizando el sistema de mensajería dbus, de la misma manera que Nautilus y otros gestores de archivos montan automáticamente las cosas. En estos comandos estamos enviando a varios objetos (es decir, /org/freedesktop/... mensajes pidiéndoles que monten y desmonten ciertos dispositivos. Pueden o no hacer esto dependiendo de los permisos que uno haya dado en PolicyKit.

    Usando comandos similares uno puede controlar casi todos los aspectos de su experiencia en Ubuntu y simular la mayoría de los programas y funciones del sistema (es decir, apagar, cambiar el volumen, etc.).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *