Linux & Festplatten

Permalink

Ausgangslage analysieren

Bevor man Umbaumaßnahmen vornimmt ist es immer gut sich anzusehen wo man herkommt. Das hilft ungemein wenn etwas schiefgeht. Alle folgenden Befehle habe ich unter Debian‎ ausprobiert und gehe so vor das ich am ende eine zusätzliche Platte zur Verfügung habe.

Anfangen kann man damit alle Festplatten und Partitionen auflisten zu lassen:

ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2

Hier ist eine Festplatte zu sehen (sda) auf der zwei Partitionen verfügbar sind (sda1 und sda2). Dabei handelt es sich um sogenannte Gerätedateien die Linux als Stellvertreter für die tatsächliche Hardware benutzt und im Verzeichnis dev(Devices) anlegt.

Was genau hinter dieser Festplatte steckt kann man den Computer auch entlocken. Der folgende Befehl liefert alle Meldungen zu SATA-Festplatten auf die beim Booten gefunden wurden. Diese Meldungen liefern Informationen über ATA-Level, Hersteller, Modell und Firmware:

dmesg | grep ATA-[789] 
[    1.885207] ata9.00: ATA-8: SAMSUNG HD502HJ, 1AJ100E4, max UDMA/133

Als nächstes kann man sich anzeigen lassen wo diese Partitionen verwendet werden:

mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
…

Hier sieht man das die Partition /dev/sda1 als Root-Directory genutzt wird, also die grundlegende Partition für das ganze System ist. Das Dateisystem auf ist übrigens “ext3” Die Partition /dev/sda2 ist hier nicht aufgeführt weil es sich um eine Swap-Partition handelt die nicht zum speichern von Daten genutzt wird. Wie wir das erkennen zeige ich gleich.

Etwas mehr Informationen über als den Mountpoint liefert folgendes Kommando:

blkid -o list -w /dev/null 

Wie man schön an der tabellarischen Ausgabe sehen kann sind hier auch die Swap-Partitionen aufgeführt und die UUID. Die brauchen wir später noch.

<pre>device     fs_type label    mount point    UUID
-------------------------------------------------------------------------------
/dev/sda1  ext3    Debian   /              c91074ad-4843-4b86-9407-52ce4e1a187e
/dev/sda2  swap             <swap>         cd59162a-87c3-4274-89e6-f3cd77a080d5

Noch mehr Informationen über einzelne Partitionen liefert der Befehl tune2fs. Hier bei muss natürlich die konkrete Platte angeben werden anstelle meines Platzhalters “/dev/sd?#”.

tune2fs -l /dev/sd?#

Wer jetzt noch Hilfe braucht die einzelnen Platten in seinem System zu identifizieren kann sich auch die Plattengröße und -belegung anzeigen lassen;

df -h
Dateisystem           Size  Used Avail Use% Eingehängt auf
/dev/sda1             444G  379G   43G  90% /
…

Inbetriebnahme

Nachdem einbauen einer neuen Platte ist diese noch zu nichts nutze. Zuerst muss sie mal Partitioniert werden. Dazu verwende ich das Programm Parted das mit aptitude install parted aber erst mal installiert werden muss. Danach muss man mittels ls /dev/sd* herausfinde welche Gerätedatei der neuen Festplatte zugeordnet wurde. Mit dieser Information kann man dann Parted aufrufen. Dabei ist im folgenden das Fragezeichen immer durch den entsprechende Buchstaben zu ersetzen.

parted /dev/sd?

Dieser Befehl öffnet eine interaktive Konsole in der man Parted-Kommandos eingeben kann. Der erste dieser Befehle erzeugt eine Partitionstabelle gemäß dem Standard GPT

mktable gpt

Der zweite erzeugt eine Partition vom ersten (1) bis zum letzten Sektor (-1):

mkpart primary ext3 1 -1
quit

Wer mag kann auch noch ein Label für die neu erzeugte Partition vergeben:

tune2fs -L Label /dev/sd?1

Integration

Bei Linux gibt es ja anders als in der Windows-Welt keine Laufwerksbuchstaben. Stattdessen verwendet man die Partition wie einen Ordner. Dazu muss man einen leeren Ordner haben und die Partition dort hin mounten.

mkdir /media/wohin
mount /sd*1 /media/wohin

Diese beiden Befehle erzeugen erst mal einen leeren Ordner “wohin” im Ordner “/media” und mounted im zweiten Schritt die oben angelegte Partition in diesen Ordner. Ab jetzt wird alles was in den Ordner “/media/wohin” gespeichert wird in Wirklichkeit auf der Festplatte abgelegt.

Leider geht diese Zuordnung zwischen Verzeichnis und Partition beim nächsten Neustart verloren. Um das zu verhindern sollte man die Datei “/etc/fstab” (File System Table) editieren. In dieser Datei stehen nämlich alle Zuordnungen die beim Systemstart vorgenommen werden sollen. Um die nötigen Informationen zu bekommen wird noch einmal der Befehl blkid -o list -w /dev/null ausgeführt. Dieser verrät uns die UUID, eine eindeutige und unveränderliche Kennung, der Partition. Mit dieser können wir dann eine neue Zeile nach folgendem Muster in “/etc/fstab” eintragen:

 <file system> <mount point>   <type>  <options>       <dump>  <pass>
UUID=2cc507f3-0e6d-41cc-adf4-880a769a7cc3 /mount/wohin     ext3    errors=remount-ro 0       1