Installation von Slackware 9.1 auf gespiegelte Platten (Raid1/LVM)
Inhalt
- Einbau der Platten
- Slackware von CD starten
- Anlegen der Partitionen
- Raid-Devices anlegen
- Swap-Partition anlegen und aktivieren
- Slackware installieren
- Neues System von Platte starten
- Logical Volumes anlegen (Option LVM/LVM+)
- Dateisysteme in den LVs anlegen (Option LVM/LVM+)
- Dateisysteme umkopieren (Option LVM+)
- Fehlende Pakete nachinstallieren (Option LVM+)
- «/etc/fstab» anpassen
- Kernel-Konfiguration anpassen
- LILO-Konfiguration anpassen
Es folgt eine Schritt-für-Schritt-Anleitung zur Installation von Slackware 9.1 auf
softwareseitg gespiegelte (System-)Platten. Optional werden auf (weiteren) gespiegelten
Partitionen Volume Groups mit dem LVM (Option LVM) angelegt. Diese können auch Bereiche
des Systems umfassen, z.B. /usr, /var, /home ... (Option LVM+)
I. Einbau der Platten
Sinnvollerweise werden die beiden Spiegel-Platten an verschiedene IDE-Kanäle gehängt; dies
erhöht einerseits die Performance und andererseits die Verfügbarkeit, da Fehler auf einem
IDE-Kanal (z.B. auch ein defektes Kabel) sich nicht auf beide Spiegel-Kopien auswirken.
Unser Beispiel geht von jeweils einer Platte als Master auf beiden Kanälen (hda
und hdc) aus. Das CD-Laufwerk wäre dann Slave auf dem ersten Kanal (hdb).
II. Slackware von CD starten
CD einlegen und den Rechner neu starten, so dass von CD gebootet wird. Einmal enter drücken, deutschen Tastaturtreiber auswählen und sich dann am login-Prompt als root (oder was auch immer) anmelden. Wir finden uns am Shell-Prompt wieder:
slackware# _ |
An dieser Stelle wird normalerweise die Installationsprozedur aufgerufen - damit warten
wir aber noch ein bisschen (=> VI. Slackware installieren)...
III. Anlegen der Partitionen
Wir gehen davon aus, dass die Platten fabrikneu sind und noch keine Partitionstabelle aufweisen; andernfalls muss diese zunächst gelöscht werden. Wir starten das Partitionierungstool zunächst für die erste Platte:
slackware# cfdisk /dev/hda |
Im Beispiel werden vier primäre Partitionen angelegt; die erste für /, die zweite für den swap-Bereich und zwei weitere für den Systembereich bzw. den Datenbereich. Als Partitionstyp wird für alle Bereiche fd gewählt. Dieser Typ ist für Linux-Software-Raid reserviert.
cfdisk 2.12 Disk Drive: /dev/hda Size: 123522416640 bytes, 123.5 GB Heads: 255 Sectors per Track: 63 Cylinders: 15017 Name Flags Part Type FS Type [Label] Size (MB) ------------------------------------------------------------------------------ hda1 Boot Primary Linux raid autodetect 197.41 hda2 Primary Linux raid autodetect 518.20 hda3 Primary Linux raid autodetect 22529.05 hda4 Primary Linux raid autodetect 100274.39 [Bootable] [ Delete ] [ Help ] [Maximize] [ Print ] [ Quit ] [ Type ] [ Units ] [ Write ] Toggle bootable flag of the current partition |
Exakt dieselben Partitionen werden auf der zweiten Platte angelegt. Dazu wird wieder cfdisk gestartet:
slackware# cfdisk /dev/hdc |
IV. Raid-Devices anlegen
Nun werden die Raid-Devices angelegt; dazu legen wir eine kleine Tabelle im Verzeichnis /etc an:
slackware# vi /etc/raidtab |
mit folgendem Inhalt:
/etc/raidtab
raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 persistent-superblock 1 chunk-size 4 device /dev/hda1 raid-disk 0 device /dev/hdc1 raid-disk 1 raiddev /dev/md1 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 persistent-superblock 1 chunk-size 4 device /dev/hda2 raid-disk 0 device /dev/hdc2 raid-disk 1 raiddev /dev/md2 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 persistent-superblock 1 chunk-size 4 device /dev/hda3 raid-disk 0 device /dev/hdc3 raid-disk 1 raiddev /dev/md3 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 persistent-superblock 1 chunk-size 4 device /dev/hda4 raid-disk 0 device /dev/hdc4 raid-disk 1 |
Nach Anlegen dieser Datei, können die Raids initialisiert werden; dafür muss nacheinander für jedes Raid-Array der Befehl mkraid abgesetzt werden:
slackware# mkraid /dev/md0 slackware# mkraid /dev/md1 slackware# mkraid /dev/md2 slackware# mkraid /dev/md3 |
V. Swap-Partition anlegen und aktivieren
Dummerweise erkennt das Slackware-Installationsprogramm keine Swap-Partitionen auf Raid-Devices, sodass wir die Swap-Partition per Hand formatieren und aktivieren müssen:
slackware# mkswap /dev/md1 slackware# swapon /dev/md1 |
VI. Slackware installieren
Möchte man die Raid-Partitionen direkt für die Dateisysteme verwenden, kann an dieser Stelle die ganz normale Installationsprozedur durchlaufen werden. Der Punkt "Swap Partition einrichten" muss aus oben genannten Gründen übersprungen werden. Der Installationsprozess wird -wie immer bei Slackware- durch den Start des setup-Programms gestartet:
slackware# setup |
Die Raid-Devices md0 - md1 werden als Ziel-Partitionen angeboten. /dev/md0 wird /, /dev/md1 wird ausgelassen (swap!), /dev/md2 und /dev/md3 können für weitere Dateisysteme vergeben werden: beispielsweise /usr und /home.
Option LVM
Möchte man dagegen den LVM für die Nicht-Systempartitionen verwenden, werden nur /dev/md0 als /
und /dev/md2 als /usr (Beispiele) zur Installation freigegeben. Die Installationsroutinen
werden im weiteren Verlauf wie oben durchlaufen.
Option LVM+
Möchte man den LVM bereits für Systembereiche verwenden (Beispiel: /usr, /var, /opt,
/home) wird es kompliziert; da die nötigen LVM-Befehle während der Installation leider nicht zur
Verfügung stehen. Man wird sich also mit einem Trick behelfen müssen. Mein Trick bestand darin, nur /dev/md0
als Installations-Zielpartition / auszuwählen und alle anderen Partitionen unberührt zu lassen.
Da /dev/md0 naturgemäß klein gewählt wurde, reicht der Platz nicht zur Installation des ganzen Systems. Schließlich soll der größte Teil ja eigentlich auf die LVM-verwalteten Plattenbereiche. Deshalb wird zu diesem Zeitpunkt nur das Nötigste installiert; dies sind aus den Disk-Serien a und ap die Pakete, die als "REQUIRED" gelten, und natürlich die «lvm»- und «raidtools» aus der Serie ap. Ich habe außerdem noch das Basis-TCP/IP-Paket aus der n-Serie installiert, damit ich die Netzwerk-Konfiguration gleich während der Installation durchführen konnte.
Mit der Installation weiterer Serien wartet man dann bis Punkt XI.
VII. Neues System von Platte starten
Wenn die Installationsprozedur erfolgreich durchlaufen ist, wird das System an dieser Stelle von der Platte
neu gestartet. Man meldet sich an und führt die nötigen System-Konfigurationen durch. Falls der LVM nicht
verwendet werden soll, geht's bei Punkt XII weiter.
VIII. Logical Volumes anlegen (Option LVM/LVM+)
Zunächst machen Sie aus den Partitionen md2 und md3 "Physical Volumes" im Sinne des LVM:
darkstar# pvcreate /dev/md2 darkstar# pvcreate /dev/md3 |
Nun legen Sie eine oder mehrere "Volume Groups" an:
darkstar# vgcreate sysvg /dev/md2 <== Option LVM+ darkstar# vgcreate datavg /dev/md3 |
In den VGs können dann die "Logical Volumes" angelegt werden, in der datavg (Option LVM und LVM+) z.B.:
darkstar# lvcreate -L 8G -n home datavg lvcreate -- rounding size up to physical extent boundary lvcreate -- doing automatic backup of "datavg" lvcreate -- logical volume "/dev/datavg/home" successfully created darkstar# lvcreate -L 15G -n img datavg lvcreate -- rounding size up to physical extent boundary lvcreate -- doing automatic backup of "datavg" lvcreate -- logical volume "/dev/datavg/img" successfully created . . . |
und in der sysvg (Option LVM+):
darkstar# lvcreate -L 500M -n var sysvg lvcreate -- rounding size up to physical extent boundary lvcreate -- doing automatic backup of "sysvg" lvcreate -- logical volume "/dev/sysvg/var" successfully created darkstar# lvcreate -L 3G -n usr sysvg lvcreate -- rounding size up to physical extent boundary lvcreate -- doing automatic backup of "sysvg" lvcreate -- logical volume "/dev/sysvg/usr" successfully created darkstar# lvcreate -L 3G -n opt sysvg lvcreate -- rounding size up to physical extent boundary lvcreate -- doing automatic backup of "sysvg" lvcreate -- logical volume "/dev/sysvg/opt" successfully created |
IX. Dateisysteme in den LVs anlegen (Option LVM/LVM+)
In den LVs können alle von Linux unterstützten Dateisysteme ganz normal angelegt werden (ext2, ext3, xfs, jfs, reiserfs). Ich empfehle ext3 oder xfs (mit xfs_growfs lässt sich ein Dateisystem nach Vergrößerung des LVs schnell nachziehen; dabei bleibt alles online). Beispielsweise:
darkstar# mkfs.ext3 /dev/datavg/img mke2fs 1.34 (25-Jul-2003) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 32768 inodes, 131072 blocks 6553 blocks (5.00%) reserved for the super user First data block=1 16 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 26 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. . . . |
X. Dateisysteme umkopieren (Option LVM+)
Erinnern Sie sich? Wir hatten das komplette System zunächst auf /dev/md0 installiert (=> VI Slackware installieren). Darunter auch Verzeichnisbäume, für die eigentlich LVM-verwaltete Plattenbereiche vorgesehen sind. Diese müssen nun umkopiert werden. Im Beispiel wollen wir die /var-, /usr- und /home-Bäume auf den LVM-Bereich kopieren. Dafür vorgesehen seien die LVs
/dev/sysvg/usr /dev/sysvg/var /dev/datavg/homedie wir alle unter IX formatiert hatten. Diese werden zunächst in den Verzeichnisbaum eingehängt:
darkstar# mkdir /_usr /_var /_home darkstar# mount -t ext3 /dev/sysvg/usr /_usr darkstar# mount -t ext3 /dev/sysvg/var /_var darkstar# mount -t ext3 /dev/datavg/home /_home |
Nun kann die Umkopieraktion gestartet werden:
darkstar# cd /usr && tar cpf - . | ( cd /_usr && tar xvpf - ) darkstar# cd /var && tar cpf - . | ( cd /_var && tar xvpf - ) darkstar# cd /home && tar cpf - . | ( cd /_home && tar xvpf - ) |
Nach dem Umkopieren werden die alten Verzeichnisse gelöscht; und die neuen LVs stattdessen eingehängt:
darkstar# umount /_usr darkstar# mv /usr /.usr darkstar# mkdir /usr darkstar# mount -t ext3 /dev/sysvg/usr /usr darkstar# rm -rf /.usr darkstar# rmdir /_usr |
darkstar# umount /_var darkstar# mv /var /.var darkstar# mkdir /var darkstar# mount -t ext3 /dev/sysvg/var /var darkstar# rm -rf /.var darkstar# rmdir /_var |
darkstar# umount /_home darkstar# mv /home /.home darkstar# mkdir /home darkstar# mount -t ext3 /dev/datavg/home /home darkstar# rm -rf /.home darkstar# rmdir /_home |
Jetzt sind wir soweit: Wir haben Platz und können...
XI. Fehlende Pakete nachinstallieren (Option LVM+)
Falls Sie unter VI aus Platzmangel nicht alles installieren konnten, holen Sie es jetzt nach. Auf der Slackware-CD befinden sich alle Disk-Serien im Verzeichnis slackware:
a/ ap/ d/ e/ f/ k/ l/ n/ t/ tcl/ x/ xap/ y/In jedem dieser Unterverzeichnisse befindet sich ein Skript "install-packages", mit dem die Pakete nachinstalliert werden können. Dafür müssen Sie die Ausführungsberechtigung auf der CD haben (mount -o exec /mnt/cdrom).
XII. «/etc/fstab» anpassen
Eine Datei /etc/fstab wird schon während der Installation angelegt. Sie enthält aber noch keinen Eintrag für den swap-Bereich (=> V. Swap-Partition anlegen und aktivieren). Fügen Sie also folgende Zeile hinzu:
/dev/md1 swap swap defaults 0 0 |
Option LVM und LVM+:
Für die LVM-verwalteten Plattenbereiche muss jeweils ein Eintrag zur Datei /etc/fstab der Form
/dev/datavg/home /home ext3 defaults 1 2 |
XIII. Kernel-Konfiguration anpassen
Zu diesem Zeitpunkt läuft das System noch mit dem Installations-Kernel. Wenn Sie damit zufrieden sind, ist jetzt alles abgeschlossen. Falls Sie aber einen eigenen, angepassten Kernel übersetzen möchten, beachten Sie, dass folgende Punkte in der Kernel-Konfiguration angewählt werden müssen
Kernel-Konfiguration (Ausschnitt):
Multi-device support (RAID and LVM) ---> +-+-------------------------------------------------------------------------+-+ | | [*] Multiple devices driver support (RAID and LVM) | | | | <*> RAID support | | | | <*> Linear (append) mode | | | | < > RAID-0 (striping) mode | | | | <*> RAID-1 (mirroring) mode | | | | < > RAID-4/RAID-5 mode | | | | < > Multipath I/O support | | | | <*> Logical volume manager (LVM) support | | |
XIV. LILO-Konfiguration anpassen
Die LILO-Konfiguration, so wie sie während der Installation angelegt wurde, kann weigehend beibehalten werden. Die Zeile "boot=/dev/hda" kann gelöscht werden (stört aber auch nicht weiter). Ein Eintrag der Form
/etc/lilo.conf (Ausschnitt)
# Linux bootable partition config begins image = /vmlinuz root = /dev/md0 label = Linux read-only # Linux bootable partition config ends |
wurde bereits während der Installation angelegt. Eigentlich muss der LILO nur noch auf die zweite Platte geschrieben werden. Wir schreiben LILO an dieser Stelle auf beide Platten, sicher ist sicher:
darkstar# lilo -b /dev/hda Added Linux * darkstar# lilo -b /dev/hdc Warning: /dev/hdc is not on the first disk Warning: The boot sector and map file are on different disks. Added Linux * |
So gelangt der Linux Loader in den Master-Boot-Record beider Platten und das System bootet beim Ausfall einer Platte von der anderen.