¿Cómo acceder a una unidad flash USB desde la terminal?

212

Solo tengo acceso a la línea de comando.
Necesito hacer una copia de seguridad de mis datos (en la carpeta del usuario) en un bolígrafo (USB DOK).

  • ¿Cómo puedo montar una unidad flash manualmente?
  • ¿Cuál debería ser el comando de copia?
pregunta MEM 29.04.2011 - 02:26

6 respuestas

296

1. Encuentra cómo se llama la unidad

Necesitará saber cómo se llama el disco para montarlo. Para hacer eso, desactive uno de los siguientes (ordenados por mi preferencia):

lsblk
sudo blkid
sudo fdisk -l

Está buscando una partición que debería verse como: /dev/sdb1 . Cuantos más discos tenga, mayor será la letra que probablemente sea. De todos modos, búscalo y recuerda cómo se llama.

2. Crear un punto de montaje (opcional)

Esto debe estar montado en el sistema de archivos en algún lugar . Por lo general, puedes usar / mnt / si eres perezoso y no hay nada más montado, pero si no querrás crear un nuevo directorio:

sudo  mkdir /media/usb

3. ¡Monte!

sudo mount /dev/sdb1 /media/usb

Cuando hayas terminado, solo dispara:

sudo umount /media/usb

Esta respuesta tiene casi 6 años y aunque el núcleo aún funciona, cosas como fdisk -l no son las opciones más fáciles de usar. También hay nuevos mecanismos en pilas más altas para montar dispositivos de una manera normal y sana que no siempre estará disponible.

Así que he agregado algunas palabras de las otras respuestas. Mientras está leyendo esta nota al pie y está haciendo esto en un sistema de escritorio, definitivamente hay argumentos para usar udisksctl , por wecac responder . Esto se monta de la misma manera que el escritorio, creando tu propio directorio /media/$USER/device , pero creo que todavía hay argumentos para un punto de montaje estático, especialmente cuando no quieres que la ruta cambie.

Los discos U también dependen de D-Bus, por lo que podrían no estar disponibles en todas partes.

    
respondido por el Oli 29.04.2011 - 02:43
39

Instalar pmount . Monta discos en / media /

pmount /dev/sdb1
pumount /dev/sdb1

No se necesita sudo Reemplaza "sdb1" con tu ruta de dispositivo específica. Para obtener más información, consulte la página de manual:

pmount  ("policy mount") is a wrapper around the standard mount program
which permits normal users to mount removable devices without a  match-
ing /etc/fstab entry.

pmount is invoked like this:

pmount device [ label ]

This  will  mount  device  to a directory below /media if policy is met
(see below). If label is given, the mount point will  be  /media/label,
otherwise it will be /media/device.
    
respondido por el Sepero 06.11.2013 - 02:39
11

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

Para hacerlo, es útil (pero no obligatorio) conocer primero algunas cosas sobre el disco:

  1. Qué dispositivo es (es decir, /dev/sdb1 )
  2. qué sistema de archivos usa.

Conociéndolos, puede usar un comando simple 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 repetir la ruta en la que está montada si el montaje tiene éxito.

Para desmontar las unidades montadas de esta manera, puede 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 hacia él. Entonces, por ejemplo, si lo que quiere montar está en /dev/sdb2 , pondría sdb2 en lugar de <device> .

Si no sabes qué dispositivo es o qué sistema de archivos usa, no temas. Puede 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 como esto:

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 montarse usando el comando anterior.

Esto significa que, por ejemplo, si quisiera montar el dispositivo 'USB DRIVE', 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 con el sistema de mensajería dbus , de la misma forma que Nautilus y otros administradores de archivos montan automáticamente cosas. En estos comandos estamos enviando varios objetos (es decir, /org/freedesktop/... mensajes pidiéndoles que monten y desmonten ciertos dispositivos. Podrían o no hacer esto dependiendo de los permisos que se le haya dado en PolicyKit .

Al usar comandos similares, uno puede controlar casi todos los aspectos de la experiencia de uno en Ubuntu y simular la mayoría de los programas y funciones del sistema (por ejemplo, apagado, cambio de volumen, etc.).

    
respondido por el Alex L. 29.08.2012 - 17:42
10

Utilice udisksctl del paquete = udisks2 (en Ubuntu y Debian). El procedimiento es:

  1. Encuentre la ID del dispositivo de bloque que desea montar, usando lsblk :

    user@machine:~$ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   1.8T  0 disk
    ├─sda1   8:1    0  19.1M  0 part /boot/efi
    ├─sda2   8:2    0   1.8T  0 part
    └─sda3   8:3    0    16G  0 part [SWAP]
    sdb      8:16   0 931.5G  0 disk
    ├─sdb1   8:17   0    37M  0 part
    ├─sdb2   8:18   0  15.9G  0 part [SWAP]
    └─sdb3   8:19   0 915.7G  0 part /
    sdc      8:32   1  14.4G  0 disk
    └─sdc1   8:33   1  14.4G  0 part
    sdd      8:48   0   1.8T  0 disk
    └─sdd1   8:49   0   1.8T  0 part
    

    De su tamaño, /dev/sdc1 parece ser la unidad USB que quiero montar.

  2. Use udisksctl para montar el dispositivo. Tenga en cuenta que -b == --block-device (para reducir el tipeo) pero prefiero las opciones largas para la documentación:

    user@machine:~$ udisksctl mount --block-device /dev/sdc1
    ==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount ===
    Authentication is required to mount Kingston DT microDuo 3C (/dev/sdc1)
    Multiple identities can be used for authentication:
     1.  XXXXX,,, (user)
     2.  ,,, (YYYYY)
    Choose identity to authenticate as (1-2): 1
    Password:
    ==== AUTHENTICATION COMPLETE ===
    Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.
    

Responder al comentario de Hans Deragon a continuación : también puedes decir udisksctl a hacer --no-user-interaction . No intenta autenticar al usuario, que generalmente "simplemente funciona":

user@machine:~$ udisksctl mount --block-device /dev/sdc1 --no-user-interaction
# possibly some complaining here about I/O charset or need to run 'fsck'
Mounted /dev/sdc1 at /media/user/USBDRIVELABEL.
    
respondido por el wecac 28.12.2016 - 16:34
2

Eso es simple. Cuando quiero usar un disco usb en la terminal, hago esto:

Crea una carpeta en /media con:

mkdir /media/mountDrive 

Esta carpeta se usará para el punto de montaje. Use este comando:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1 es la primera partición de mi USB. Luego puede navegar a la carpeta que ya montó con

cd /media/mountDrive

Si desea listar los archivos en la unidad, puede usar el comando ls .

Para desmontar la unidad, puede usar

sudo umount /dev/sdd1

Tenga en cuenta que en mi sistema el disco usb es /dev/sdd1 , pero en su sistema puede ser algo diferente. Para saber de qué se trata, use el comando df para ver todos los discos conectados en este momento.

    
respondido por el Deivid Vale 29.08.2012 - 16:08
2

También puede montar automáticamente dispositivos USB en Ubuntu Server con la ayuda de USBmount.

Asegúrese de ejecutar apt-get update / upgrade antes de comenzar la instalación:

sudo apt-get update && sudo apt-get upgrade

Ahora instale USBmount desde los repositorios:

sudo apt-get install usbmount

USBmount monta todas las unidades USB en /media/usb* (usb0, usb1, usb2 ...)

Ahora conecte una unidad USB y espere a que se detecte y monte. Siempre que el sistema operativo anfitrión sea compatible con el sistema de archivos, debe estar montado.

Para verificar si la unidad USB se montó correctamente, puede usar df -h para ver todas las unidades disponibles y sus respectivos puntos de montaje

Para desinstalar una unidad, puede usar desmontar.

sudo umount /media/usb0
    
respondido por el Sandro 14.05.2016 - 18:35

Lea otras preguntas en las etiquetas