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

250

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 copiar?
MEM
fuente

Respuestas:

348

1. Encuentra cómo se llama la unidad

Necesitará saber cómo se llama la unidad para montarla. Para hacer eso, dispare uno de los siguientes (clasificados en el orden de mi preferencia):

lsblk
sudo blkid
sudo fdisk -l

Usted está buscando una partición que debe ser algo como: /dev/sdb1. Cuantos más discos tenga, mayor será la letra. De todos modos, encuéntralo y recuerda cómo se llama.

2. Crear un punto de montaje (opcional)

Esto necesita ser montado en el sistema de archivos en algún lugar . Por lo general, puede usar / mnt / si está siendo flojo y no hay nada más montado allí, pero de lo contrario querrá crear un nuevo directorio:

sudo  mkdir /media/usb

3. Monte!

sudo mount /dev/sdb1 /media/usb

Cuando termines, simplemente dispara:

sudo umount /media/usb

Esta respuesta tiene casi 6 años y aunque su núcleo sigue funcionando, cosas como fdisk -lestas 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 sensata y estándar que no siempre están disponibles.

Así que he agregado un poco de esmalte de las otras respuestas. Mientras lee esta nota al pie y lo hace en un sistema de escritorio, definitivamente hay argumentos para usar udisksctl, según la respuesta de wecac . Esto se monta de la misma manera que lo hace el escritorio, creando su propio /media/$USER/devicedirectorio, pero creo que todavía hay argumentos para un punto de montaje estático, especialmente cuando no desea que cambie la ruta.

Udisks también depende de D-Bus, por lo que podría no estar disponible en todas partes.

Oli
fuente
La principal desventaja de este método es que monta el dispositivo como root. si el dispositivo tiene formato FAT, el usuario no podrá escribir en él. el / media / $ USER / punto de montaje del dispositivo también será siempre el mismo
eMBee
45

Instalar pmount. Monta discos en / media /

pmount /dev/sdb1
pumount /dev/sdb1

No se necesita sudo. Reemplace "sdb1" con la ruta de su dispositivo específico. 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.
Sepero
fuente
Esto funcionó cuando mountinsistí en montar mi unidad de solo lectura.
Jonathan Landrum
12

Además de usar el mountcomando estándar (que requiere root), puede montar unidades usando udisksy dbuscon su usuario estándar.

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

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

Sabiendo esto, puede usar un comando simple para montar una unidad desde la línea de comando.

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

esta llamada debería hacer eco de la ruta en la que está montado si el montaje tiene éxito.

Para desmontar 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 []

NB el <device>es simplemente el final del camino hacia él. Entonces, por ejemplo, si lo que desea montar es /dev/sdb2entonces, lo colocaría sdb2en lugar de <device>.


Si no sabe qué dispositivo es o qué sistema de archivos utiliza, no tema. 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 se IdUsage = 'filesystem'pueden montar con 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 usando el dbussistema de mensajería, de la misma manera que Nautilusotros administradores de archivos montan automáticamente las cosas. En estos comandos estamos enviando 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 se les haya otorgado) PolicyKit.

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

Alex L.
fuente
1
La forma de 2015 esgdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
Nick Alexander
12

Use udisksctlfrom package = udisks2(tanto en Ubuntu como en 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
    

    Por su tamaño, /dev/sdc1parece ser la unidad USB que quiero montar.

  2. Use udisksctlpara montar el dispositivo. Tenga en cuenta que -b== --block-device(para reducir la escritura) pero prefiero 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.
    

Abordar el comentario de Hans Deragon a continuación : también puedes decir udisksctlque hagas --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.
wecac
fuente
¿Qué es lo --object-pathque pide?
CMCDragonkai
5

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 se monte. Mientras el sistema operativo host sea compatible con el sistema de archivos, debe estar montado.

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

Para desmontar una unidad, puede usar umount.

sudo umount /media/usb0
Sandro
fuente
3

Así de simple. Cuando quiero usar una unidad USB en la terminal hago esto:

Crea una carpeta /mediacon:

mkdir /media/mountDrive 

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

sudo mount /dev/sdd1 /media/mountDrive 

sdd1Es la primera partición de mi USB. Luego puedes navegar a la carpeta que ya montaste con

cd /media/mountDrive

Si desea enumerar los archivos en la unidad, puede usar el lscomando.

Para desmontar la unidad, puede usar

sudo umount /dev/sdd1

Tenga en cuenta que en mi sistema la unidad usb es /dev/sdd1, pero en su sistema puede ser algo diferente. Para averiguar qué es, use el dfcomando para ver todos los discos conectados en este momento.

David Vale
fuente