995722db2b
*ta-raid migriert *ta-unix typo gefixed git-svn-id: svn://svn.c3d2.de/c3d2-web/trunk@463 31f61c52-7bfb-0310-b897-fc00f8a278f0
124 lines
2.9 KiB
Plaintext
124 lines
2.9 KiB
Plaintext
# Notizen zum RAID-TA des c3d2 am 18.03.2005 - RAID-1-Teil
|
|
# Fragen an: Frank Benkstein <frank@benkstein.net>
|
|
|
|
# Voraussetzungen
|
|
# RAID ist fest im Kernel, nicht als Modul!
|
|
# devfs wahlweise, aber hilfreich
|
|
|
|
# qemu -hda hda -hdb hdb -boot c
|
|
# System mit init=/bin/sh booten
|
|
# (der init=-Parameter sagt Linux, welchen Prozess es als ersten
|
|
# starten soll. normalerweise ist das /sbin/init, welcher nach den
|
|
# Einträgen in der inittab alle weiteren Prozesse startet)
|
|
# Achtung: die Init-Shell kann kein Job-Management
|
|
# Strg-C, Strg-Z funktionieren also nicht - kein ping, watch etc.
|
|
# benutzen
|
|
|
|
# Proc-Dateisystem mounten
|
|
mount -t proc none /proc
|
|
# devfs-Daemon starten
|
|
/sbin/devfsd /dev
|
|
|
|
# ist RAID überhaupt da?
|
|
cat /proc/mdstat
|
|
|
|
# Platten anschauen
|
|
fdisk -l /dev/hda
|
|
fdisk -l /dev/hdb
|
|
|
|
# hdb partitionieren
|
|
fdisk /dev/hdb
|
|
|
|
## neue (primäre) Partition
|
|
## Typ auf RAID autodetect (fd)
|
|
|
|
# RAID bauen - die zweite Platte ist noch nicht da (missing)
|
|
mdadm --create --raid-devices 2 --level 1 /dev/md0 /dev/hdb1 missing
|
|
cat /proc/mdstat
|
|
|
|
# Dateisystem erstellen
|
|
mkreiserfs /dev/md0
|
|
|
|
# ...mounten
|
|
mount /dev/md0 /mnt
|
|
|
|
# Kontrolle
|
|
df -h /mnt /
|
|
|
|
# root-system kopieren (-x ist dein Freund...)
|
|
# rsync empfiehlt sich, wenn acls verwendet werden,
|
|
# ansonsten auch star (besseres tar)
|
|
cp -ax / /mnt
|
|
|
|
# Kontrolle
|
|
df -h /mnt /
|
|
|
|
# jetzt fängt die Coolness an... :-)
|
|
|
|
# pivot_root wechselt das root-Dateisystem im Linux-VFS aus
|
|
# siehe pivot_root(2) und pivot_root(8)
|
|
# Vorher:
|
|
# /dev/hda1 -> /
|
|
# /dev/md0 -> /mnt
|
|
# Nachher:
|
|
# /dev/hda1 -> /mnt
|
|
# /dev/md0 -> /
|
|
#
|
|
# / wird nach /mnt/mnt verschoben und dann /mnt nach /
|
|
pivot_root /mnt /mnt/mnt
|
|
|
|
# alle vorher gemounteten Dateisystem sind jetzt natürlich
|
|
# relativ zu /mnt gemountet
|
|
|
|
# jetzt wird das alte Root freigemacht
|
|
umount /mnt/proc
|
|
mount -t proc proc /proc
|
|
killall devfsd
|
|
# mount --move verschiebt einen mount-Point
|
|
# /mnt/dev kann nicht ungemountet werden, da es von
|
|
# /bin/sh noch benutzt wird
|
|
mount --move /mnt/dev /dev
|
|
# exec ersetzt das aktuelle Prozess-Image
|
|
# da das alte /bin/sh noch /mnt benutzt, muss ein neues
|
|
# gestartet werden, das auf / operiert
|
|
exec /bin/sh
|
|
# am Schluss den devfs-Daemon neu starten
|
|
devfsd /dev
|
|
|
|
umount /mnt # Whoops! - das alte root ist weg
|
|
|
|
# /dev/hda wird nicht mehr benutzt - das System läuft jetzt
|
|
# von /dev/md0 (==/dev/hdb1)
|
|
# bis hier hin kann man ohne Sorgen Reset drücken, ohne dass
|
|
# Nebeneffekte auftreten
|
|
fdisk /dev/hda
|
|
|
|
## gleiche Partitionierung wie /dev/hdb
|
|
## Typ nicht vergessen (fd)
|
|
|
|
# Partition dem RAID hinzufügen
|
|
mdadm --add /dev/md0 /dev/hda1
|
|
|
|
# wer vorsichtig ist, wartet erstmal bis das rebuild fertig ist
|
|
cat /proc/mdstat
|
|
|
|
# fstab und grub.conf anpassen
|
|
vi /etc/fstab
|
|
vi /boot/grub/grub.conf
|
|
# jeweils /dev/hda1 durch /dev/md0 ersetzen
|
|
|
|
# grub installieren auf hd0 und hd1 - rebuild muss vorher fertig sein!!!
|
|
grub
|
|
## root (hd0,0)
|
|
## setup (hd0)
|
|
## root (hd1,0)
|
|
## setup (hd1)
|
|
|
|
# (neues) root read only mounten
|
|
mount -o remount,ro /
|
|
|
|
reboot -f
|
|
# oder, cooler
|
|
exec /sbin/init
|
|
|