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