Come accedere a una chiavetta USB dal terminale?

211

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?
posta MEM 29.04.2011 - 02:26

6 risposte

296

1. Trova ciò che viene chiamato il disco

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

lsblk
sudo blkid
sudo fdisk -l

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

2. Crea un punto di montaggio (facoltativo)

Questo deve essere montato nel filesystem da qualche parte . Di solito puoi usare / mnt / se sei pigro e non c'è altro montato lì, ma per il resto vorresti creare una nuova directory:

sudo  mkdir /media/usb

3. Mount!

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 come 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 lo stai facendo su un sistema desktop, ci sono sicuramente argomenti per utilizzando udisksctl , per wecac rispondere . Questo si monta nello stesso modo in cui il desktop crea la tua directory /media/$USER/device , 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.

    
risposta data Oli 29.04.2011 - 02:43
39

Installa pmount . Monta i 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.
    
risposta data Sepero 06.11.2013 - 02:39
11

Oltre all'utilizzo del comando standard mount (che richiede root) puoi 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. Quale dispositivo è (cioè /dev/sdb1 )
  2. quale filesystem utilizza.

Sapendo questi puoi usare 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 echo 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 []

NB. il <device> è semplicemente la fine del percorso. Ad esempio, se ciò che si desidera montare è a /dev/sdb2 , si inserisce 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' possono essere montati usando il comando precedente.

Questo 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 utilizzando il sistema di messaggistica dbus , nello stesso modo in cui Nautilus e altri gestori di file montano automaticamente le cose. In questi comandi inviamo vari oggetti (ad esempio /org/freedesktop/... messaggi che chiedono di montare e smontare determinati dispositivi. Potrebbero o meno farlo a seconda delle autorizzazioni che è stata data in PolicyKit .

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

    
risposta data Alex L. 29.08.2012 - 17:42
10

Utilizza 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 :

    [email protected]:~$ 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. Usa udisksctl per montare il dispositivo. Tieni presente che -b == --block-device (per ridurre la digitazione) ma preferisco le opzioni lunghe per la documentazione:

    [email protected]:~$ 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.
    

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

[email protected]:~$ 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.
    
risposta data wecac 28.12.2016 - 16:34
2

È semplice. Quando voglio usare 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 passare alla cartella che hai già montato con

cd /media/mountDrive

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

Per smontare l'unità, puoi usare

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 a cosa serve il comando df per vedere tutti i dischi connessi al momento attuale.

    
risposta data Deivid Vale 29.08.2012 - 16:08
2

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, puoi utilizzare df -h per visualizzare tutte le unità disponibili e i rispettivi punti di montaggio

Per disinstallare un'unità puoi utilizzare umount.

sudo umount /media/usb0
    
risposta data Sandro 14.05.2016 - 18:35

Leggi altre domande sui tag