# Notizen zum RAID-TA des c3d2 am 18.03.2005 - RAID-1-Teil # Fragen an: Frank Benkstein # 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