Domanda Come accedere a una chiavetta USB dal terminale?


Ho solo accesso alla riga di comando.
Ho bisogno di fare il backup dei miei dati (sulla cartella utente) su una penna (USB DOK).

  • Come posso montare manualmente un'unità flash?
  • Quale dovrebbe essere il comando di copia?

212
2018-04-29 00:26


origine




risposte:


1. Trova ciò che viene chiamato il disco

Avrai bisogno di sapere che cosa è chiamato il drive per montarlo. Per fare quel fuoco su uno dei seguenti (ordinati in base alla mia preferenza):

lsblk
sudo blkid
sudo fdisk -l

Stai cercando una partizione che dovrebbe assomigliare a qualcosa: /dev/sdb1. Più dischi hai, più alta è la lettera che è probabile che sia. Ad ogni modo, trovalo e ricorda come si chiama.

2. Creare un punto di montaggio (opzionale)

Questo deve essere montato nel filesystem da qualche parte. Di solito puoi usare / mnt / se sei pigro e nient'altro è montato lì, ma altrimenti vorrai creare una nuova directory:

sudo  mkdir /media/usb

3. Montare!

sudo mount /dev/sdb1 /media/usb

Quando hai finito, spara:

sudo umount /media/usb

Questa risposta ha quasi 6 anni e mentre il nucleo di esso funziona ancora, cose del genere fdisk -l non sono le opzioni più user-friendly. Ci sono anche nuovi meccanismi negli stack superiori per il montaggio di dispositivi in ​​modo sano e standard che potrebbero non essere sempre disponibili.

Quindi ho aggiunto del lucido dalle altre risposte. Mentre stai leggendo questa nota a piè di pagina e stai facendo questo su un sistema desktop, ci sono sicuramente argomenti per utilizzando udisksctl, per la risposta di Wecac. Questo si monta nello stesso modo in cui il desktop crea il tuo /media/$USER/device directory - ma penso che ci siano ancora argomenti per un punto di mount statico, specialmente quando non vuoi che il percorso cambi.

Gli Udisk si affidano anche a D-Bus, quindi potrebbe non essere disponibile ovunque.


297
2018-04-29 00:43



lo svantaggio principale di questo metodo è che monta il dispositivo come root. se il dispositivo è formattato FAT, l'utente non sarà in grado di scrivere su di esso. anche il punto di mount / media / $ USER / dispositivo sarà sempre lo stesso - eMBee


Installare pmount. Monta dischi in / media /

pmount /dev/sdb1
pumount /dev/sdb1

Non è necessario sudo. Sostituisci "sdb1" con il percorso del dispositivo specifico. Per ulteriori informazioni consultare la manpage:

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.

40
2017-11-06 01:39



Questo ha funzionato quando mount ha insistito per montare il mio lettore in sola lettura. - Jonathan Landrum


Oltre a utilizzare lo standard mount comando (che richiede root) è possibile montare unità utilizzando udisks e dbus con il tuo utente standard.

Per fare ciò è utile (ma non è necessario) conoscere prima alcune cose sul disco:

  1. Che dispositivo è (cioè /dev/sdb1)
  2. quale filesystem usa.

Sapendo questi è possibile utilizzare un semplice comando per montare un'unità dalla riga di comando.

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

questa chiamata dovrebbe echeggiare il percorso su cui è montata se la montatura ha successo.

Per smontare le unità montate in questo modo è possibile eseguire:

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

N.B. il <device> è semplicemente la fine del percorso. Quindi, per esempio, se quello che vuoi montare è a /dev/sdb2 allora lo metteresti sdb2 al posto di <device>.


Se non sai quale dispositivo è o quale filesystem usa non temere. Puoi facilmente stampare tutte queste informazioni con questo piccolo 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) ).*|\}|.*\{)"

Questo stamperà qualcosa di simile a questo:

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';
    };
  };
};

Quelli che hanno IdUsage = 'filesystem' può essere montato usando il comando precedente.

Ciò significa che, ad esempio, se volessi montare il dispositivo "USB DRIVE", avrei eseguito il comando

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

Questi comandi funzionano tutti usando il dbus sistema di messaggistica, nello stesso modo in cui Nautilus e altri gestori di file montano automaticamente le cose. In questi comandi inviamo vari oggetti (ad es. /org/freedesktop/... messaggi che chiedono di montare e smontare determinati dispositivi. Potrebbero o meno farlo a seconda dei permessi a cui è stato dato PolicyKit.

Usando comandi simili si può controllare quasi ogni aspetto della propria esperienza in Ubuntu e simulare la maggior parte dei programmi e delle funzioni di sistema (vale a dire spegnimento, cambio di volume, ecc.).


11
2017-08-29 15:42



Il modo 2015 è gdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties - Nick Alexander


Uso udisksctl dal pacchetto =udisks2 (sia in Ubuntu che in Debian). La procedura è:

  1. Trova l'ID del dispositivo a blocchi che vuoi montare, 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
    

    Dalle sue dimensioni, /dev/sdc1 sembra essere l'unità USB che voglio montare.

  2. Uso udisksctl per montare il dispositivo. Nota che -b == --block-device (per ridurre la digitazione) ma preferisco le opzioni lunghe per la documentazione:

    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.
    

Rivolgendosi a Hans Deragon commento qui sotto: puoi anche dirlo udisksctl fare --no-user-interaction. Non tenta di autenticare l'utente, che di solito "funziona":

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.

10
2017-12-28 15:34





È semplice Quando voglio utilizzare un'unità USB nel terminale, faccio questo:

Crea una cartella in /media con:

mkdir /media/mountDrive 

Questa cartella verrà utilizzata per il punto di montaggio. Usa questo comando:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1 è la prima partizione della mia USB. Quindi puoi accedere alla cartella con cui hai già montato

cd /media/mountDrive

Se si desidera elencare i file nell'unità, è possibile utilizzare ls comando.

Per smontare l'unità è possibile utilizzare

sudo umount /dev/sdd1

Si noti che nel mio sistema è l'unità USB /dev/sdd1, ma nel tuo sistema potrebbe essere qualcosa di diverso. Per scoprire a cosa serve il df comando per vedere tutti i dischi collegati al momento attuale.


2
2017-08-29 14:08





Puoi anche montare automaticamente dispositivi USB su Ubuntu Server con l'aiuto di USBmount.

Assicurati di eseguire apt-get update / upgrade prima di iniziare l'installazione:

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

Ora installa USBmount dai repository:

sudo apt-get install usbmount

USBmount monta tutte le unità USB in /media/usb* (usb0, usb1, usb2 ...)

Ora collega un'unità USB e attendi che venga rilevata e montata. Finché il sistema operativo host supporta il file system dovrebbe essere montato.

Per verificare se l'unità USB è stata montata correttamente è possibile utilizzare df -h per visualizzare tutte le unità disponibili e i rispettivi punti di montaggio

Per disinstallare un'unità è possibile utilizzare umount.

sudo umount /media/usb0

2
2018-05-14 16:35