Wie greife ich über das Terminal auf ein USB-Flash-Laufwerk zu?


250

Ich habe nur Zugriff auf die Befehlszeile.
Ich muss meine Daten (im Benutzerordner) auf einem Stift (USB DOK) sichern.

  • Wie kann ich ein Flash-Laufwerk manuell einbinden?
  • Was soll der Kopierbefehl sein?

Antworten:


348

1. Finden Sie heraus, wie das Laufwerk heißt

Sie müssen wissen, wie das Laufwerk heißt, um es zu mounten. Um dies zu tun, schalte eine der folgenden Möglichkeiten aus (in der Reihenfolge meiner Präferenz):

lsblk
sudo blkid
sudo fdisk -l

Sie suchen eine Partition , die etwas aussehen soll: /dev/sdb1. Je mehr Festplatten Sie haben, desto höher ist wahrscheinlich der Buchstabe. Wie auch immer, finde es und erinnere dich, wie es heißt.

2. Erstellen Sie einen Einhängepunkt (optional)

Dies muss irgendwo in das Dateisystem eingehängt werden . Normalerweise können Sie / mnt / verwenden, wenn Sie faul sind und dort nichts anderes gemountet ist. Andernfalls möchten Sie ein neues Verzeichnis erstellen:

sudo  mkdir /media/usb

3. Montieren!

sudo mount /dev/sdb1 /media/usb

Wenn Sie fertig sind, feuern Sie einfach ab:

sudo umount /media/usb

Diese Antwort ist fast 6 Jahre alt und obwohl der Kern davon noch funktioniert, sind Dinge wie fdisk -lnicht die benutzerfreundlichsten Optionen. Es gibt auch neue Mechanismen in höheren Stapeln, mit denen Geräte auf vernünftige und übliche Weise montiert werden können, die möglicherweise nicht immer verfügbar sind.

Also habe ich aus den anderen Antworten etwas Politur hinzugefügt. Während Sie diese Fußnote lesen und dies auf einem Desktop-System tun, gibt es auf jeden Fall Argumente für die Verwendung udisksctlder Antwort von per wecac . Dies wird auf die gleiche Weise bereitgestellt, wie der Desktop es tut - er erstellt Ihr eigenes /media/$USER/deviceVerzeichnis -, aber ich denke, es gibt immer noch Argumente für einen statischen Bereitstellungspunkt, insbesondere wenn Sie nicht möchten, dass sich der Pfad ändert.

Udisks vertraut auch auf D-Bus, ist also möglicherweise nicht überall verfügbar.


Der Hauptnachteil dieser Methode besteht darin, dass das Gerät als Root bereitgestellt wird. Wenn das Gerät FAT-formatiert ist, kann der Benutzer nicht darauf schreiben. Der Mountpoint / media / $ USER / device ist auch immer derselbe
eMBee

45

Installieren pmount. Bereitstellen von Datenträgern in / media /

pmount /dev/sdb1
pumount /dev/sdb1

Kein Sudo nötig. Ersetzen Sie "sdb1" durch Ihren spezifischen Gerätepfad. Weitere Informationen finden Sie in der 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.

Dies funktionierte, wenn mountdarauf bestanden wurde, mein Laufwerk schreibgeschützt bereitzustellen.
Jonathan Landrum

12

Zusätzlich zur Verwendung des Standardbefehls mount(der root erfordert) können Sie Laufwerke mit udisksund dbusmit Ihrem Standardbenutzer mounten .

Um dies zu tun, ist es nützlich (aber nicht erforderlich), zuerst ein paar Dinge über das Laufwerk zu wissen:

  1. Um welches Gerät handelt es sich (dh /dev/sdb1)
  2. Welches Dateisystem wird verwendet?

Wenn Sie diese kennen, können Sie mit einem einfachen Befehl ein Laufwerk über die Befehlszeile einbinden.

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

Dieser Aufruf sollte den Pfad wiedergeben, unter dem er bereitgestellt wird, wenn die Bereitstellung erfolgreich ist.

Um Laufwerke zu deaktivieren, die auf diese Weise gemountet wurden, können Sie Folgendes ausführen:

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

NB das <device>ist einfach das Ende des Weges dorthin. Wenn also zum Beispiel das, woran Sie mounten /dev/sdb2möchten, sdb2an die Stelle von treten würde <device>.


Wenn Sie nicht wissen, um welches Gerät es sich handelt oder welches Dateisystem es verwendet, haben Sie keine Angst. Mit diesem kleinen Befehl können Sie alle diese Informationen ganz einfach ausdrucken:

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) ).*|\}|.*\{)"

Dies wird ungefähr so ​​aussehen:

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

Diejenigen, die IdUsage = 'filesystem'gemountet wurden, können mit dem obigen Befehl gemountet werden.

Dies bedeutet, dass, wenn ich zum Beispiel das Gerät 'USB DRIVE' mounten wollte, ich den Befehl ausführen würde

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

Diese Befehle arbeiten alle mit dem dbusMessaging-System, genauso wie Nautilusandere Dateimanager Dinge automatisch bereitstellen . In diesen Befehlen senden wir verschiedene Objekte (dh /org/freedesktop/...Nachrichten, in denen sie aufgefordert werden, bestimmte Geräte zu aktivieren oder zu deaktivieren). Dies kann abhängig von den Berechtigungen geschehen, die ihnen erteilt wurden PolicyKit.

Mit ähnlichen Befehlen kann man fast jeden Aspekt seiner Ubuntu-Erfahrung steuern und die meisten Systemprogramme und -funktionen (dh Herunterfahren, Lautstärkeänderung usw.) simulieren.


1
Der Weg 2015 istgdbus introspect --system --dest org.freedesktop.UDisks2 --object-path /org/freedesktop/UDisks2/drives --recurse --only-properties
Nick Alexander

12

Verwenden Sie udisksctlfrom package = udisks2(sowohl in Ubuntu als auch in Debian). Vorgehensweise ist:

  1. Suchen Sie die ID des Blockgeräts, das Sie mounten möchten, mit 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
    

    Von seiner Größe /dev/sdc1scheint das USB-Laufwerk zu sein, das ich mounten möchte.

  2. Verwenden Sie udisksctl, um das Gerät zu montieren. Beachten Sie, dass -b== --block-device(um die Eingabe zu reduzieren), aber ich lange Optionen für die Dokumentation bevorzuge:

    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.
    

Ansprechen von Hans Deragons Kommentar unten : Sie können auch sagen udisksctl, was zu tun ist --no-user-interaction. Es wird nicht versucht, den Benutzer zu authentifizieren, was normalerweise "nur funktioniert":

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.

Was ist das, --object-pathwonach es fragt?
CMCDragonkai

5

Sie können USB-Geräte mit Hilfe von USBmount auch automatisch auf Ubuntu Server mounten.

Stellen Sie sicher, dass Sie apt-get update / upgrade ausführen, bevor Sie mit der Installation beginnen:

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

Installieren Sie nun USBmount aus den Repositories:

sudo apt-get install usbmount

USBmount hängt alle USB-Laufwerke ein /media/usb*(usb0, usb1, usb2 ...)

Schließen Sie nun ein USB-Laufwerk an und warten Sie, bis es erkannt und gemountet wurde. Solange das Host-Betriebssystem das Dateisystem unterstützt, sollte es bereitgestellt werden.

Um zu überprüfen, ob das USB-Laufwerk ordnungsgemäß df -hbereitgestellt wurde, können Sie alle verfügbaren Laufwerke und ihre jeweiligen Bereitstellungspunkte anzeigen

Um ein Laufwerk abzuhängen, können Sie umount verwenden.

sudo umount /media/usb0

3

Das ist einfach. Wenn ich ein USB-Laufwerk im Terminal verwenden möchte, gehe ich folgendermaßen vor:

Erstelle einen Ordner /mediamit:

mkdir /media/mountDrive 

Dieser Ordner wird für den Einhängepunkt verwendet. Verwenden Sie diesen Befehl:

sudo mount /dev/sdd1 /media/mountDrive 

sdd1ist die erste Partition meines USB. Dann können Sie zu dem Ordner navigieren, mit dem Sie bereits gemountet haben

cd /media/mountDrive

Wenn Sie die Dateien im Laufwerk auflisten möchten, können Sie den lsBefehl verwenden.

Zum Abmelden des Laufwerks können Sie verwenden

sudo umount /dev/sdd1

Beachten Sie, dass in meinem System das USB-Laufwerk ist /dev/sdd1, aber in Ihrem System kann es etwas anderes sein. Um herauszufinden, was es ist, verwenden Sie den dfBefehl, um alle derzeit verbundenen Festplatten anzuzeigen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.