Come accedere a un'unità flash USB dal terminale?


250

Ho accesso solo alla riga di comando.
Devo eseguire il backup dei miei dati (nella cartella utente) su una penna (USB DOK).

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

Risposte:


348

1. Trova come si chiama l'unità

Dovrai sapere come si chiama l'unità per montarlo. Per fare questo spegni uno dei seguenti (ordinati secondo le mie preferenze):

lsblk
sudo blkid
sudo fdisk -l

Siete alla ricerca di una partizione che dovrebbe essere simile a: /dev/sdb1. Maggiore è il numero di dischi, maggiore è la probabilità che questa sia. Comunque, 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, spegni semplicemente:

sudo umount /media/usb

Questa risposta ha quasi 6 anni e mentre il suo nucleo funziona ancora, cose come fdisk -lnon sono le opzioni più facili da usare. Ci sono anche nuovi meccanismi in pile superiori per il montaggio di dispositivi in ​​modo normale e normale che potrebbero non essere sempre disponibili.

Quindi ho aggiunto un po 'di smalto dalle altre risposte. Mentre stai leggendo questa nota a piè di pagina e lo stai facendo su un sistema desktop, ci sono sicuramente argomenti da usare udisksctl, secondo la risposta di Wecac . Questo si monta allo stesso modo del desktop —creare la propria /media/$USER/devicedirectory— ma penso che ci siano ancora argomenti per un mountpoint statico, specialmente quando non si desidera che il percorso cambi.

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


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

45

Installa pmount. Monta i dischi in / media /

pmount /dev/sdb1
pumount /dev/sdb1

Nessun sudo necessario. Sostituisci "sdb1" con il percorso del tuo dispositivo specifico. Per maggiori 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.

Questo ha funzionato quando ha mountinsistito sul montaggio del mio disco di sola lettura.
Jonathan Landrum,

12

Oltre a utilizzare il mountcomando standard (che richiede root) è possibile montare unità usando udiskse dbuscon l'utente standard.

Per fare ciò è utile (ma non necessario) sapere prima alcune cose sull'unità:

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

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 fare eco al percorso su cui è montata se il montaggio ha esito positivo.

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

NB la <device>è semplicemente la fine del percorso. Quindi, per esempio, se quello che vuoi montare è, /dev/sdb2allora dovresti metterlo sdb2al posto di <device>.


Se non sai di quale dispositivo si tratta o quale filesystem utilizza 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 del genere:

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 sono stati IdUsage = 'filesystem'possono essere montati usando il comando sopra.

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

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

Tutti questi comandi funzionano utilizzando il dbussistema di messaggistica, allo stesso modo in cui Nautilusaltri gestori di file montano automaticamente le cose. In questi comandi stiamo inviando vari oggetti (ad esempio /org/freedesktop/...messaggi che chiedono loro di montare e smontare determinati dispositivi. Potrebbero o meno farlo a seconda delle autorizzazioni concesse 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 (ad es. Spegnimento, modifica del volume, ecc.).


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

12

Utilizzare udisksctlda package = udisks2(sia in Ubuntu che in Debian). La procedura è:

  1. Trova l'ID del dispositivo a blocchi che desideri montare, utilizzando 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/sdc1sembra essere l'unità USB che voglio montare.

  2. Utilizzare udisksctlper montare il dispositivo. Nota che -b== --block-device(per ridurre la digitazione) ma preferisco lunghe opzioni 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.
    

Di seguito il commento di Hans Deragon : puoi anche dire udisksctldi 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.

Qual è --object-pathquello che chiede?
CMCDragonkai,

5

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 /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 -hper visualizzare tutte le unità disponibili e i rispettivi punti di montaggio

Per smontare un'unità è possibile utilizzare umount.

sudo umount /media/usb0

3

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

Crea una cartella /mediacon:

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 passare alla cartella con cui hai già montato

cd /media/mountDrive

Se si desidera elencare i file nell'unità è possibile utilizzare il lscomando.

Per smontare l'unità è possibile utilizzare

sudo umount /dev/sdd1

Nota che nel mio sistema l'unità USB è /dev/sdd1, ma nel tuo sistema potrebbe essere qualcosa di diverso. Per scoprire di cosa si tratta usa il dfcomando per vedere tutti i dischi connessi al momento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.