Festplatten unter Linux


1. Einführung

Das -vermutlich- Allererste, was einem Umsteiger von Windows auf Linux auffällt, ist das Fehlen der Laufwerksbuchstaben. Unter Linux gibt es keine Festplatte C oder D mehr, sondern Festplatten werden als sogenannte "Devices" angesprochen. Diese befinden sich als sogenannte Block-Devices im /dev Verzeichnis und tragen Bezeichnungen wie hda1, hdb2, etc. Dabei löst sich die Bezeichnung wie folgt auf:
hd = Harddisk am IDE-Kanal. SCSI-Festplatten haben sd.
a = Master-Platte am 1. IDE-Port.
1 = die erste, primäre Partition.
Folglich ist hda1 die erste, primäre Partition der als Master gejumperten Platte am 1. IDE Port. hda2 somit die zweite primäre Partition und hdb1 die erste primäre Partition der als Slave gejumperten Platte am 1. IDE Port, usw.

Leider kann man die Festplatten über das /dev Verzeichnis nicht direkt ansprechen, sondern man muß sie in den Verzeichnisbaum "einhängen". Das Einhängen geschieht mittels des mount-Befehls, welcher aber nur temporärer Natur ist. Dauerhaft werden Festplatten in der Datei /etc/fstab eingehängt. Diese Datei wird bei jedem Start abgearbeitet und hängt die entsprechenden Partitionen ein. Doch erst einmal der Reihe nach:


2. Partitionierung mit fdisk

Um festzustellen, wieviele Festplatten es im System gibt und welche Partitionen sich auf ihnen befinden, gibt es einmal den Befehl fdisk, der auch für das Partitionieren zuständig ist und mittels des Befehls cat kann man sich das Verzeichnis /proc/partitions ansehen, in denen die Partitionen gelistet sind:
# cat /proc/partitions
# fdisk -l (kleines L)

Wie man sieht, ist der fdisk-Befehl etwas ausführlicher, da er auch gleich die Dateisystem-Kennung mit anzeigt.
Möchte man eine Festplatte partitionieren genügt der Aufruf von
# fdisk /dev/hda (ohne Partitionsangabe!)
Nun befindet man sich im Programm fdisk und kann mittels Tastaturkürzeln die entsprechenden Schritte vornehmen. Als da wären:

m liefert eine Liste der möglichen Kommandos.
p zeigt die existierenden Partitionen an.
l liste der Kennungen der Partitionen, z.B. 82=swap, 83=Linux.
n legt eine neue Partition an.
t ändert die Standard-Kennung 83 (Linux).
a markiert die Partition als bootfähig.
d löscht eine Partition.
w schreibt die neue Partitionstabelle auf die Platte und beendet fdisk.
q fdisk verlassen ohne die Änderungen zu speichern.

fdisk schreibt erst mit w die neue Partitionstabelle auf die Platte, daher kann man jederzeit bei einem Fehler fdisk mit q beenden und so sämtliche Änderungen verwerfen.

Mehr Komfort gegenüber fdisk bietet cfdisk, da man einen ständigen Blick auf die zu bearbeitende Festplatte hat und man die entsprechenden Funktionen mittels den Cursor-Tasten auswählt. Somit erklärt sich die Handhabung von cfdisk auch von selbst. Der Aufruf bleibt der Gleiche:
# cfdisk /dev/hda


3. Partitionierung mit gdisk

fdisk kann man lediglich für Festplatten mit MBR verwenden. Möchte man eine Festplatte mit GPT-Partitionen (GUID Partition Table) formatieren, gibt es die fdisk-Variante gdisk.
Beim Aufruf des Programms, scannt es die angegebene Festplatte und gibt Informationen aus:

GPT fdisk (gdisk) version 0.8.1

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help):

Wie man sieht, kann man sich die Liste der Kommandos mittels eines Fragezeichens ausgeben lassen. Damit ist das Programm wie cfdisk selbst erklärend. Mittels gdisk ist es auch möglich eine GPT partitionierte Festplatte in eine mit MBR zurück zu verwandeln.


4. Filesystem erstellen (formatieren) mit mkfs

Hat man die Partitionen erstellt, kann man mittels mkfs (make file-system) die Partitionen formatieren. Man nennt das unter Linux Dateisysteme anlegen.

Wichtig!
Eine Formatierung nur bei ausgehängten (nicht gemounteten) Dateisystemen anwenden! Das Laufwerk aber nicht auswerfen, sondern nur aushängen, denn sonst ist es gar nicht mehr erreichbar.

Hier eine kleine Auflistung der wichtigsten Befehle:
# mkfs -t ext3 /dev/hda3
legt (formatiert) ein ext3-Dateisystem auf der Partition /dev/hda3 an.
# mkfs.vfat -F 32 /dev/sde
formatiert eine Partition mit FAT32.
# mkfs.vfat -FI 32 /dev/sde
großes i= "Superfloppy"-Format, z.B. für USB-Sticks.
# mkswap -c /dev/hda7
formatiert die Partition hda7 als Auslagerungsspeicher.
Die Option -c prüft vorher die Blöcke. Danach mittels
# swapon /dev/hda7
den Swap-Speicher noch initialisieren. Zum entfernen:
# swapoff /dev/hda7


5. Informationen über Dateisysteme

Möchte man Informationen über die Dateisysteme einholen, hilft der Befehl blkid.
Er zeigt das Label (den Namen) der Partition und die Type.
# blkid
/dev/hda1: UUID="E63..." LABEL="WIN2000" TYPE="ntfs"
/dev/hda5: TYPE="swap"
/dev/hda6: UUID="e7..." TYPE="ext3"
...
blkid speichert seine Informationen in einem Cache-File. Nach einem kleinem Umbau der Festplattenkonfiguration kann es sein, daß die Übersicht nicht mehr aktuell ist. In dem Fall hilft die Option -g um die Konfiguration erneut einzulesen:
# blkid -g
Für eine leserfreundlichere Übersicht sorgt der Schalter -L:
# blkid -L

Möchte man das Label, also die Bezeichnung einer Partition ändern, hilft für ext2/ext3 Dateisysteme der Befehl e2label. Für MS-DOS Dateisysteme gibt es mlabel aus den mtools und für ntfs Dateisysteme ntfslabel.

e2label

Ohne Angabe eines neuen Names wird der vorhandene Angezeigt, z.B.
# e2label /dev/hda1
Mein_Plattenname
Zum umbenennen
# e2label /dev/hda1 Neuer_Name

ntfslabel

ntfslabel funktioniert genau wie e2label. Ohne Angabe des Labels wird der vorhandene angezeigt.
# ntfslabel /dev/sde1
Mein_Plattenname
Zum umbenennen
# ntfslabel /dev/sde1 Neuer_Name

mlabel

Vor der Verwendung von mlabel muß man noch die Konfigurations-Datei erstellen mit der Angabe einer Option. Ansonsten erhält man folgende Fehlermeldung:
Total number of sectors (15679396) not a multiple of sectors per track (63)!
Add mtools_skip_check=1 to your .mtoolsrc file to skip this test
Der Text verrät uns schon, was wir tun müssen:
# echo "mtools_skip_check=1" > ~/.mtoolsrc
Mit dieser Zeile wird die versteckte Datei .mtoolsrc im Home-Verzeichnis des Benutzers erstellt und die Option mtools_skip_check=1 eingetragen.
Anschließend kann man mit
# mlabel -i /dev/sde1 -s ::
das Label (hier eines USB-Sticks - /dev/sde1) erfragen und mit
# mlabel -i /dev/sde1 ::Neues_Label
ein neues Label eingeben.

Hinweis: Sämtliche labels der Partitionen stehen auch unter
# ls -al /dev/disk/by-label/


6. Freien Speicherplatz anzeigen lassen

df [option] [file] = (disc free) gibt an wieviel Platz auf den Dateisystemen vorhanden ist.
Die Option -h bereitet die Ausgabe etwas "menschenfreundlicher" auf, d.h. daß die Größenangaben in MB, bzw. GB angegeben werden.
Die Option -i gibt bei ext2 oder ext3 Dateisystemen die Anzahl der Inodes aus. Wenn die Inodes ausgehen können keine weiteren Dateien geschrieben werden, selbst wenn noch Speicher auf dem Datenträger verfügbar wäre. Der Inode (information node = Informations Knoten) ist die zentrale Instanz im Linux-Filesystem. Im inode werden alle relevanten Informationen über eine Datei außer dem Namen und den Daten selbst gespeichert. Also die Rechte, die verschiedenen Zugriffs- und Änderungszeiten, Besitzer und Gruppe der Datei, usw. Ferner enthält jeder inode noch die Liste der Zeigern auf die Datenblöcke, in denen die eigentlichen Daten gespeichert sind. Die Anzahl der inodes wird bei der Formatierung festgelegt und kann nachträglich nicht mehr verändert werden! Ohne eine File Angabe werden sämtliche Partitionen ausgegeben, mit Angabe eines Verzeichnisses oder Files, nur diese Partition, z.B.
# df -h
Dateisystem Größe Benut Verf Ben% Eingehängt auf
/dev/hdd1 29G 2,7G 25G 10% /

du [option] [file] = (disc usage) gibt den von Dateien belegten Platz wieder.
Optionen: -s = zeigt nur die Gesamtsumme pro Verzeichnis.
-a = liefert nicht nur den Platzbedarf aller Dateien, sondern auch den
jeder einzelnen Datei.
-c = gibt die Gesamtsumme.
-h = wie bei df => menschenfreundlich (human)
Beispiel:
# du -sch /usr/home
2.6 G /usr
5.8 G /home
8.4 G total


7. Festplatten auf Fehler überprüfen mit fsck

fsck = prüft Datenträger auf Konsistenz.

(ACHTUNG! NUR BEI AUSGEHÄNGTEN DATEISYSTEMEN VERWENDEN!)

Eigentlich werden Festplatten von Zeit zu Zeit automatisch überprüft, nach so und so vielen mounts. Für eine frühere Prüfung kann man fsck verwenden. Ohne Angabe eines Laufwerks, wie z.B. fsck /dev/hda3 prüft fsck sämtliche Laufwerke. Sonst nur das Benannte.
fsck greift auf die folgenden Unterprogramme zu: e2fsck, reiserfsck.
Die Option -f prüft Journaling Dateisysteme, auch wenn diese "sauber" aussehen.


8. DMA Modi und Benchmark mit hdparm

Welche UDMA-Modi von der Festplatte unterstützt werden liefert der Befehl:
# hdparm -i /dev/hda
im Normalfall schaltet Linux den schnellsten Betriebsmodus und den DMA-Modus automatisch ein. Sollte das ausnahmsweise nicht passieren, kann man mit
# hdparm -X Modus /dev/hda
den Betriebsmodus manuell verändern.
Die Tabelle weiter unten listet die möglichen Modi auf. Selbstverständlich muß der DMA-Modus aktiviert sein, bevor der Betriebsmodus aktiv werden kann.
Der Status kann mit
# hdparm -d /dev/hda
abgefragt werden und auch eingestellt werden:
# hdparm -d 1 /dev/hda (0=aus, 1=an)
Es geht auch in einem Schritt:
# hdparm -d 1 -X 66 /dev/hda
schaltet den DMA Modus ein und in den Betriebsmodus
Ultra-DMA-Modus 2.

Weitere Funktionen mit hdparm:
# hdparm -Tt /dev/hda
führt einen kleinen Benchmark durch und zeigt die Ergebnisse.
# hdparm -C /dev/hda
zeigt den aktuellen Stromsparmodus. "active/idle" ist der Normalzustand.
# hdparm -l /dev/hda
zeigt ausführliche Informationen über das Gerät an, z.B. Laufwerksgeometrie, verfügbare Betriebsmodi, Seriennummer oder Modellbezeichnung.
# hdparm -r /dev/hda
fragt ab, ob das Laufwerk nur lesbar ist.

Modus Beschreibung
0
1
Standard-PIO-Modus
Standard-PIO-Modus, IORDY abgeschaltet

8
9
10
11
12
13
14
15

PIO-Modus 0
PIO-Modus 1
PIO-Modus 2
PIO-Modus 3
PIO-Modus 4
PIO-Modus 5
PIO-Modus 6
PIO-Modus 7
16
17
18
19
20
21
22
23
DMA-Modus 0
DMA-Modus 1
DMA-Modus 2
DMA-Modus 3
DMA-Modus 4
DMA-Modus 5
DMA-Modus 6
DMA-Modus 7
32
33
34
35
36
37
38
39
Multiword-DMA-Modus 0
Multiword-DMA-Modus 1
Multiword-DMA-Modus 2
Multiword-DMA-Modus 3
Multiword-DMA-Modus 4
Multiword-DMA-Modus 5
Multiword-DMA-Modus 6
Multiword-DMA-Modus 7
64
65
66
67
68
69
70
71
Ultra-DMA-Modus 0 (UATA)
Ultra-DMA-Modus 1
Ultra-DMA-Modus 2 (UATA-33)
Ultra-DMA-Modus 3
Ultra-DMA-Modus 4 (UATA-66)
Ultra-DMA-Modus 5 (UATA-100)
Ultra-DMA-Modus 6 (UATA-133)
Ultra-DMA-Modus 7


9. Geschwindigkeitstests

Für einen einfachen Benchmark reicht hdparm aus, z.B.
# hdparm -Tt /dev/hda
welches einen Durchschnittswert der Übertragung zum Speichermedium anzeigt. Für eine detailiertere Auflistung in Lesen und Schreiben eignet sich der Befehl dd:

# dd if=/dev/zero of=/Verzeichnis/Testdatei bs=1M count=1024
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 30,8418 s, 34,8 MB/s

dd schreibt eine 1GByte große Testdatei bestehend aus lauter Nullen (/dev/zero) in das angegebene Verzeichnis und gibt anschließend die durchschnittliche Schreib-Rate aus.

# dd if=/Verzeichnis/Testdatei of=/dev/zero
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 27,1496 s, 39,5 MB/s

liest die 1GByte große Testdatei vom Speichermedium wieder und gibt die durchnittliche Lese-Rate aus.


10. Partitionen mounten

mount = hängt Dateisysteme (Partitionen) in den Verzeichnisbaum ein.
umount = hängt sie wieder aus.
Bei einem Eintrag in der Datei /etc/fstab reicht es
# mount /dev/hda2
einzugeben. Ohne einen Eintrag muß man das "ordinäre" Mount-Kommando verwenden:
# mount -t vfat /dev/hda2 /media/windows-D
hängt die Partition /dev/hda2 unter /media/windows-D ein.
Dabei spielt es keine Rolle, ob das Verzeichnis leer ist. Befinden sich Dateien in dem Verzeichnis, werden diese durch den mount-Vorgang "verdeckt", d.h. es werden nur die Dateien der gemounteten Partition angezeigt. Hängt man mit umount die Partition wieder aus, sind die verdeckten Dateien wieder da.
Die Option -t (type) steht für das Dateisystem, hier FAT. Beispiele für t können sein: ntfs für lesenden Zugriff auf Windows-NTFS Partitionen
ntfs-3g für schreibenden Zugriff auf Windows-NTFS Partitionen
vfat für Windows-FAT Partitionen
iso9660 für CD-ROM/DVD
ext3 für Linux
Um Optionen beim ordinären Mount-Kommando anzugeben, benutzt man den Schalter -o, z.B.
# mount -t ntfs /dev/hda2 /media/windows-D -o ro,users
die Option ro bedeutet read-only und users sagt, daß auch Benutzer die Partition einhängen dürfen.

# mount
mount alleine zeigt alle eingehängten Partitionen mit den Optionen an, die auch noch in der Datei /etc/mtab protokolliert werden.
# umount /dev/hda2
hängt die Partition wieder aus. Wird die Partition jedoch noch verwendet, z.B. wenn man sich auf der Konsole innerhalb eines Verzeichnisses der Partition befindet oder weil ein Programm abgestürzt ist welches auf die Partition zugreift, verweigert umount das Aushängen. In dem Fall kann man mittels des Befehls
# fuser -m -u /mnt/usb
/mnt/usb: 1347c(root) 1348c(guido) 1349c(guido)

feststellen wer die Partition belegt. Der fuser Befehl zeigt eine Liste von Prozessen, die noch ein Dateisystem benutzen. Nun kann man mit
# ps auxw
checken, was das für Prozesse sind und sie mit kill beenden. Danach wird umount funktionieren.

Wie schon angesprochen, ist der mount-Befehl nur temporärer Natur und nach einem Neustart sind die Partitionen wieder ausgehängt. Um Dauerhaft Partitionen unter Linux einzubinden, muß ein Eintrag in der Datei /etc/fstab getätigt werden.


11. ISO-Images mounten

Man kann auch ein ISO-Image unter Linux mounten und so auf die Dateien des Images zugreifen, ohne es zu brennen. Dies geschieht mit Hilfe eines sogenannten Loop-Devices:
# mount -t iso9660 -o ro,loop=/dev/loop0 image.iso /mnt/iso
oder auch einfacher
# mount -t iso9660 -o loop image.iso /mnt/iso
bei der einfachen Schreibweise wird das Image allerdings rw eingehängt und als Loop-Device Standardmäßig /dev/loop0 genommen. Anstatt ISO kann man auch NRG-Images (Nero) mounten. Dafür gibt es zwei Möglichkeiten: entweder läßt man vorher mit dem Tool nrg2iso ein paar Bytes am Anfang der Datei abschneiden und macht so aus der nrg-Datei eine iso-Datei (Nero Images unterscheiden sich von ISO Images nur durch ein paar Bytes am Anfang), oder man mountet das Image direkt gibt aber den korrekten Startpunkt als Option an:
# mount -o loop,offset=307200 Image.nrg /mnt/nero


12. fstab-Einträge

Beispiel für eine FAT32 Partition:

/dev/hda1 /mnt/Windows-C vfat users,exec,umask=0000,utf8 0 0

/dev/hda1 = Partition die eingehängt wird
/mnt/Windows-C = Position im Verzeichnisbaum (Mountpoint)
vfat = Dateisystem
users = auch Benutzer dürfen das Dateisystem einhängen
exec = Man darf Dateien auch ausführen (default=noexec)
umask = die Zahl 0000 zwingt dem Dateisystem die vollen Rechte auf
utf8 = der verwendete Zeichensatz
0 = Dump: Falls das Backup-Programm dump dieses Dateisystem sichern soll, steht hier ein Wert ungleich 0.
0 = Pass (Durchgang Nr.): Das Wurzeldateisystem ("root") hat hier eine 1, im Regelfall alle sonstigen auf Festplatten befindlichen Dateisysteme eine 2, alles andere (Pseudodateisysteme, Netzdateisysteme, nicht automatisch gemountete Dateisysteme) eine 0.

Beispiel für eine NTFS Partition:

/dev/hda1 /mnt/Windows-C ntfs ro,users,uid=1000,gid=1000,umask=0002,nls=utf8 0 0

ro = read only, auf NTFS kann ohne den fuse-Treiber nur lesend zugegriffen werden.
uid = Sämtliche Dateien auf der Partition bekommen die User-ID 1000.
gid = Sämtliche Daten auf der Partition bekommen die Gruppen-ID 1000.
Die eigene ID bekommt man mit dem Befehl # id heraus, ansonsten kann man auch in die Datei /etc/passwd sehen.
umask = hier mit eingeschränkten Rechten.
nls = utf8, der Zeichensatz für die korrekten Umlaute.

Beispiel für ein CD-ROM Laufwerk:

/dev/cdrom /mnt/cdrom auto ro,noauto,user,exec 0 0

auto = Dateisystem automatisch erkennen, sonst geht auch iso9660.
ro = read only (klar bei CD-ROM)
noauto = wird nicht automatisch beim Start eingehängt.

Übersicht der wichtigsten Mount-Optionen:

defaults Voreinstellung: rw, suid, dev, exec, auto, nouser und async
exec Erlaubt die Ausführung von Binaries und Skripten
noexec Verbietet die Ausführung von Binaries und Skripten
user Gestattet jedem User das Mounten des Dateisystems
noauto Wird erst durch den Befehl mount eingehängt und nicht automatisch beim starten
ro Mount des Dateisystems als read-only
rw Mount des Dateisystems als read-write
umask Inverse Bitmaske der Zugriffsrechte (z. B. für FAT-Dateisystem)
uid User-Zugehörigkeit der Daten
gid Gruppenzugehörigkeit der Daten
sync Synchrone In/Out-Operationen, d.h. Dateien die auf die Partition kopiert werden, werden nicht gepuffert, sondern sofort geschrieben.

Zu beachten:
mounted man Windows Verzeichnisse und gibt diese mit Samba über das Netzwerk frei, ist es besser die Optionen uid und gid anzugeben, damit sämtliche Dateien dem angemeldeten Benutzer gehören.

Beispiel für eine fstab-Datei:

<filesystem>
/dev/hda8
/dev/hda1
/dev/hda5
/dev/hda7
proc
/dev/cdrom
/dev/dvd
/dev/fd0
<mountpoint>
/
/windows/C
/windows/D
none
/proc
/media/cdrom
/media/dvd
/media/floppy
<type>
ext3
ntfs
vfat
swap
proc
auto
auto
auto
<options>
errors=remount-ro
ro,uid=1000,gid=1000,umask=0002,nls=utf8
users,exec,umask=0000,utf8
sw
defaults
user, noauto
user, noauto
user, noauto
d
0
0
0
0
0
0
0
0
p
0
1
0
0
0
0
0
0


13. NTFS-Festplatten schreibend einbinden mit ntfs-3g

Wir erinnern uns: Früher konnte man ntfs-Festplatten nur lesend einbinden, da der Treiber nicht in der Lage war, auf selbige zu schreiben. Das gehört nun mit dem
ntfs-3g Treiber der Vergangenheit an. Somit entfällt das Lästige ich-leg-mir-eine-FAT-Partition-für-den-Datenaustausch-zwischen-Windows-und-Linux-an.

Damit ntfs-3g funktioniert, benötigt man das Kernelmodul fuse. Fuse ist für jeden neueren Kernel verfügbar. Das Kompilieren eines eigenen Kernelmoduls ist nicht notwendig, wenn ein Debian-Etch-Kernel oder neuer verwendet wird.
Man installiert lediglich das Paket ntfs-3g und trägt in die fstab die entsprechenden Zeilen ein:

/dev/hda1 /windows/C ntfs-3g uid=1000,gid=1000,umask=0027,locale=de_DE.utf8 0 0

Wenn man anschließend die Partition mounted, wird im Normalfall das Kernelmodul fuse automatisch geladen (kann man überprüfen mit # lsmod | grep fuse). Falls nicht, muß man das Modul von Hand nachladen:
# modprobe fuse

Hinweis:
Die Mount-Option users funktioniert bei ntfs-3g nicht, bzw. muß unter ntfs-3g erst definiert werden, ist aber sowieso nicht von Nöten, da man die Partition als root einhängt und für die Zukunft beim starten automatisch eingehängt wird.


14. Korrekte Partitionierung von Festplatten mit 4k Blöcken

Die neue Generation von Festplatten benutzt nicht mehr 512 Bytes große Datenblöcke, sondern 4 KByte große Blöcke, speziell Festplatten von Western Digital. Ältere Partitionierungsprogramme können unter Umständen noch nicht mit dieser neuen Blockgröße umgehen und partitionieren diese Fesplatten dann falsch, was bei neueren fdisk Versionen ab 2.25.2 zu folgender Fehlermeldung führt:

Pic: western-digital-4k.jpg

Diese fehlerhafte Partitionierung führt auch zu dramatischen Performance Einbußen, so daß die Festplatte beim schreiben sehr langsam ist, z.B. anstatt 160 MB/sec gerade mal 40 MB/sec oder sogar nur 5 MB/sec hat! Erkennen kann man eine 4k Festplatte ab einer neueren Version von fdisk, welche dann Angaben unter der Partitionstabellen-Anzeige (mit fdisk -l) folgender Art enthält:
Sector Size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Für eine 4k Festplatte ist es zwingend erforderlich die Partitionierung korrekt an den 4k Blöcken auszurichten! Dies erreicht man in dem man fdisk mit folgenden Optionen startet:
# fdisk -H 224 -S 56 /dev/sdb
Mit diesen Optionen richtet fdisk die Partitionierung automatisch an den 4k Blöcken aus. Nach erfolgreicher Partitionierung kann man die Festplatte wie gewohnt mit mkfs formatieren. Sollte man die Festplatte bereits fehlerhaft formatiert haben, kann fdisk einen Hinweis anzeigen, doch bitte vorher wipefs zu benutzen um eventuell vorhandene alte Partitionierungsdaten die stören könnten zu löschen. Der korrekte Befehl zum löschen ist:
# wipefs --all /dev/sdb

Wer sich tiefer mit diesem Thema beschäftigen will, kann darüber etwas ausführlicher hier nachlesen.


15. Probleme mit Umlauten von externen NTFS-Festplatten mit ntfs-3g

Steckt man eine USB-Festplatte oder einen USB-Stick ein, legt udev nach vordefinierten Device-Regeln in /etc/udev/rules.d/ einen Device-Knotenpunkt unter /dev an. Anschließend schickt es eine Nachricht an hal (Hardware Abstration Layer), welcher das Device in den Verzeichnisbaum einhängt. In der Regel mit dem Labelnamen unter /media.

So eine Regel sieht beispielsweise so aus:
SUBSYSTEMS=="usb", KERNEL=="sd?1", ATTRS{serial}=="57583231453534454B383038", ATTRS{product}=="My Passport 0820", RUN+="/bin/mount -t ntfs-3g -o uid=1000,gid=1000,umask=0027,locale=de_DE.utf8 /dev/$k /media/My_Passport"

Hier in diesem Fall wird eine USB-Festplatte mit der Gerätekennung sd*1, der Seriennummer 57583... und dem Produkt Namen My Passport 0820 ein externer mount-Befehl zugewiesen, was die Platte zwar korrekt einhängt, aber außerhalb von hal und somit muß sie von Hand wieder ausgehängt werden.

Dummerweise gibt es einen Fehler im Zusammenspiel mit Kernel -> udev -> hal -> mount, so daß bei einer NTFS-Festplatte die mittels des ntfs-3g Treibers eingebunden wird, der falsche Zeichensatz verwendet wird. Was dazu führt, daß Dateinamen mit Umlauten ä,ö oder ü GAR NICHT angezeigt werden und sich in Luft auflösen, obwohl sie da sind! Leider sind die Entwickler von hal so von ihrem Zeichensatz überzeugt, daß sie es nicht für nötig halten eine Möglichkeit einzubauen, udev oder hal oder wem auch immer, andere Mount-Optionen mitgeben zu können, was es unmöglich macht mit normalen konfigurationstechnischen Mitteln eine vernünftige automatische NTFS-USB-Festplatten-Einbindung zu ermöglichen. Leider hilft dort nur ein kleiner "Hack" oder "Workaround":

Zuerst löscht man den Symlink /sbin/mount.ntfs-3g, welcher auf den Befehl /usr/bin/ntfs-3g zeigt. Anschließend erstellt man ein Shell-Skript mit gleichen Namen /sbin/mount.ntfs-3g mit folgendem Inhalt:
#!/bin/bash

/usr/bin/ntfs-3g $1 "$2" -o locale=de_DE.UTF-8,$4

Nachdem man das Skript ausführbar gemacht hat, werden NTFS-Festplatten immer mit dem Zeichensatz de_DE.UTF-8 eingehängt und man hat keinerlei Probleme mehr mit den Umlauten.