USB-Speicher unter Linux verwalten

    In dieser Anleitung geht es darum, wie man mobile Datenträger mit Linux über eine Konsole formatieren, partitionieren und mounten kann.

     

    Auf unserem Ubuntu-Server aus dem gleichnamigen Projekt läuft kein grafisches Frontend. Also müssen wir unsere Wechseldatenträger in der Konsole verwalten. In diesem Beitrag erfahrt Ihr, wie das funktioniert. Ich gehe davon aus, daß wir als root angemeldet sind. Wenn nicht, bitte vor jeden Befehl 'sudo ' davor setzen.

    Anschließen und Typ ermitteln

    Wir schließen unseren USB-Speicher, z.B. einen USB-Stick an den Linuxrechner an. Um festzustellen, ob und wie der Stick erkannt wurde, geben wir

    dmesg

    ein. Die Ausgabe sollte etwas in dieser Art sein:

    [88320.310035] usb 1-8: new high speed USB device using ehci_hcd and address 4
    [88320.472194] scsi7 : usb-storage 1-8:1.0
    [88321.471900] scsi 7:0:0:0: Direct Access   Kingston DataTraveler 2.0 PMAP PQ: 0 ANSI: 0 CCS
    [88321.472768] sd 7:0:0:0: Attached scsi generic sg2 type 0
    [88322.876239] sd 7:0:0:0: [sdb] 1853792 512-byte logical blocks: (1.00 GB/954 MiB)
    [88322.877719] sd 7:0:0:0: [sdb] Write Protect is off
    [88322.877726] sd 7:0:0:0: [sdb] Mode Sense: 23 00 00 00
    [88322.878468] sd 7:0:0:0: [sdb] No Caching mode page present
    [88322.878494] sd 7:0:0:0: [sdb] Assuming drive cache: write through
    [88322.883601] sd 7:0:0:0: [sdb] No Caching mode page present
    [88322.883640] sd 7:0:0:0: [sdb] Assuming drive cache: write through
    [88322.884503] sdb: sdb1
    [88322.887877] sd 7:0:0:0: [sdb] No Caching mode page present
    [88322.887919] sd 7:0:0:0: [sdb] Assuming drive cache: write through
    [88322.887944] sd 7:0:0:0: [sdb] Attached SCSI removable disk

    Der Stick wurde also als sdb erkannt und enthält eine Partition sdb1. Die Partitionierungsdaten unseres Rechners können wir mit

    cat /proc/partitions

    anzeigen lassen.

    major minor  #blocks  name

    8        0   78150744 sda
    8        1   74920960 sda1
    8        2          1 sda2
    8        5    3227648 sda5
    8       16     976896 sdb
    8       17     976345 sdb1

    Um den Stick zu mounten, müssen wir wissen, welches Filesystem sich auf dem Stick befindet. Dazu geben wir ein:

    parted /dev/sdb print

    Model: Kingston DataTraveler 2.0 (scsi)
    Disk /dev/sdb: 1000MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start   End     Size    Type     File system  Flags
    1      31,7kB  1000MB  1000MB  primary  fat32

    Mounten / Einhängen

    Damit wir den Stick mounten können, legen wir ein Verzeichnis an und hängen die Partition ein. Danach wechseln wir in das Verzeichnis und schauen uns den Inhalt des Sticks an:

    mkdir /media/usb
    mount -t vfat /dev/sdb1 /media/usb
    cd /media/usb
    ls -l

    Wenn alles geklappt hat (und sich Daten auf dem Stick befinden!), wird das Inhaltsverzeichnis angezeigt.

    Dismounten / Aushängen

    Um Datenverluste zu vermeiden, darf der USB-Stick nicht einfach herausgezogen werden, er muß zwingend Dismounted werden:

    umount /media/usb

    Erst dann darf der Stick entfernt werden.

    Formatieren und Partitionieren

    Für einen USB-Stick ist FAT32 sicher eine gute Wahl. Sowohl Linux als auch Windows können mit diesem Filesystem umgehen und das ist Voraussetzung, um Daten austauschen zu können. Wenn wir jedoch eine Festplatte ausschließlich unter Linux betreiben möchten, egal ob extern (USB) oder intern, möchten wir die Beschränkungen hinsichtlich maximaler Datei- und Partitionsgröße eigentlich nicht haben. Zum formatieren und partitionieren dient fdisk. fdisk kann mit Parametern aufgerufen werden oder man gibt lediglich den Speicher an, den man bearbeiten wird. Wir machen Letzeres:

    fdisk /dev/sdb

    und bekommen folgende Ausgabe:

    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
    switch off the mode (command 'c') and change display units to
    sectors (command 'u').

    Command (m for help):

    Die Meldung besagt sinngemäß, daß wir uns nicht in einem DOS-kompatiblen Modus befinden, das stört uns aber in diesem Fall nicht. Durch Eingabe von 'm' erhalten wir eine Liste der möglichen Funktionen angezeigt:

    Command action
    a   toggle a bootable flag
    b   edit bsd disklabel
    c   toggle the dos compatibility flag
    d   delete a partition
    l   list known partition types
    m   print this menu
    n   add a new partition
    o   create a new empty DOS partition table
    p   print the partition table
    q   quit without saving changes
    s   create a new empty Sun disklabel
    t   change a partition's system id
    u   change display/entry units
    v   verify the partition table
    w   write table to disk and exit
    x   extra functionality (experts only)

    Command (m for help):

    Um die Festplatte zu löschen und neu zu partitionieren, wählen wir 'd'. Ist nur eine Partition vorhanden, wir diese entfernt, bei mehreren müssen wir die Partition angeben, die wir löschen wollen:

    Command (m for help): d
    Partition number (1-4):

    Mit 'n' legen wir eine neue Partition an. Wir müssen uns entscheiden, ob wir eine primäre oder erweiterte Partition erstellen wollen und die Partitionsnummer angeben. Wollen wir nur eine einzige Partition erstellen, können wir alle folgende Abfragen mit [Enter] bestätigen, ansonsten müssen wir Start- und Endzylinder bzw. gewünschte Größe angeben. Im Beispiel erstellen wir eine einzige Partition:

    Command (m for help): n
    Command action
    e   extended
    p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-1016, default 1):
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-1016, default 1016):
    Using default value 1016

    Command (m for help):

    Wenn wir eine Partition mit z.B. 512 MB erstellen wollten, würden wir bei 'Last ...' einfach angeben: +512M. Mit 'p' lassen wir und das Ergebnis anzeigen:

    Command (m for help): p

    Disk /dev/sdb: 1000 MB, 1000341504 bytes
    31 heads, 62 sectors/track, 1016 cylinders
    Units = cylinders of 1922 * 512 = 984064 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x086685df

    Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1        1016      976345   83  Linux

    Wichtig: Wir haben im Moment nur angegeben, was wir machen wollen. Würden wir nun fdisk mit 'q' verlassen, würden die Änderungen nicht durchgeführt. Zum Speichern der Änderungen verlassen wir fdisk mit 'w'.

    Jetzt formatieren wir unsere neue Partition, z.B. mit dem Filesystem ext4:

    mkfs.ext4 /dev/sdb1

    Anstatt die Partition nun jedes Mal mit 'mount -t ...' einzuhängen, können wir uns das Leben etwas einfacher machen, indem wir unsere Mountoptionen in die Datei /etc/fstab eintragen. Eine interne, also fest eingebaute Festplatte lassen wir beim Start automatisch einbinden, bei einer externen Festplatte tragen wir nur die Optionen ein und mounten erst 'von Hand', wenn die Platte, z.B. zur Datensicherung, angeschlossen ist. Anstatt jedoch /dev/sdb1 zu mounten, nutzen wir den UUID (Universally Unique Identifier) der Festplatte. Das ist eine eindeutige Nummer, über die ein Datenträger immer zu erreichen ist, egal, ob er nun als sdb oder sdc, sdc1 oder wie auch immer erkannt wird. Die UUID müssen wir natürlich erstmal herausfinden. Es gibt zwei Möglichkeiten:

    blkid -c /dev/null

    oder

    ls -l /dev/disk/by-uuid

    In beiden Fällen erhalten wir die UUIDs der erkannten Speichergeräte.

    1. automatisches Mounten beim Start:

    UUID=8f1e2bac-8481-4572-9143-d2b029361eaf /media/platte2 ext4 defaults 0 2

    Das Verzeichnis /media/platte2 muß natürlich angelegt sein, dient nur als Beispiel.

    2. nicht automatisch mounten, nur vorbereiten:

    UUID=8f1e2bac-8481-4572-9143-d2b029361eaf /media/usb ext4 noauto,users,defaults 0 2

    noauto - nicht automatisch mounten

    users - auch andere Benutzer als root dürfen die Platte mounten

    Bei Bedarf mounten wir die Platte einfach mit

    mount /media/usb

    Wesentlich einfacher/kürzer als mit dem 'normalen' Mountbefehl. Durch die Verwendung der UUID spielt es keine Rolle, in welcher Reihenfolge wir unsere USB-Geräte angestöpselt haben.

    Auch wenn wir unsere USB-Festplatte immer am Server angeschlossen haben, ist die zweite Methode - wenn es sich um die Sicherungsplatte handelt - besser, da wir dann nicht versehentlich Daten löschen können, die Partition ist ja normalerweise nicht eingebunden. Wenn wir eine Datensicherung machen wollen, mounten wir die Partition und dismounten danach wieder. Das kann natürlich auch in einem Script automatisiert werden, dazu später mehr.

    © 2018 Exilschwaelmer. All Rights Reserved. Designed By JoomShaper
    Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
    Weitere Informationen Ok Ablehnen