Portál AbcLinuxu, 12. června 2024 17:14

Upgrade na Debian Etch: oprava SW RAIDu

Pokud si při upgradu z Debianu Sarge na Etch nedáte pozor, snadno se vám rozbije SW RAID (vytvořený pomocí mdadm). Jak tedy na to:

A. Ještě jste nic nedělali

  1. Upgradujte balík mdadm.
  2. Postupujte krok za krokem podle souboru: /usr/share/doc/mdadm/README.upgrading-2.5.3.gz
  3. Upgradujte zbytek systému

B. Byli jste moc rychlí, ale nemáte / ani /var na RAIDu nebo je na RAIDu máte, ale zatím jste je nestihli nekorektně odpojit.

Pak si vystačíte s nástroji, které jsou k dispozici v ramdisku. Postup je následující:
  1. Odpojte všechna zařízení, která se vám mohou plést mezi disky (např. USB disky všeho druhu
  2. Bootněte do ramdisku pomocí parametru jádra break=mount
  3. Pomocí echo a přesměrování znovu vytvořte soubor /etc/mdadm/mdadm.conf podle vašeho uspořádání disků. V mém případě (dvě pole raid 1 nad partišnami /dev/hda1, /dev/hdc1 a /dev/hda2, /dev/hdc2 to vypadá takto:
    echo 'DEVICES /dev/hd[ac][12]' > /etc/mdadm/mdadm.conf
    echo 'ARRAY /dev/md0 level=raid1 devices=/dev/hda1,/dev/hdc1' >>/etc/mdadm.conf
    echo 'ARRAY /dev/md1 level=raid1 devices=/dev/hda2,/dev/hdc2' >>/etc/mdadm.conf
    Nechte si pomocí cat vypsat obsah mdadm.conf a zkontrolujte, zda jste se někde nepřeklepli
  4. Opusťte shell, systém bude pokračovat v bootu
  5. Až nabootujete, zkontrolujte log, zda je systém souborů s / a /var v pořádku. Pokud ne, radši použijte postup s liveCD níže. Budete-li pracovat s připojeným poškozeným fs, riskujete nečekané zátuhy a všechna systémová data, pozor na to!
  6. Zkontrolujte, zda na zařízeních /dev/md* jsou ty systémy souborů, které tam mají být (zda se RAID pole namapovala do správných zařízení). Pokud jsou alespoň / a /var správně, pokračujte, jinak jeďte raději odznovu
  7. Vygenerujte si nový konfigurák mdadm:
    sh /usr/share/mdadm/mkconf
    Porovnejte si vygenerovaná UUID s tím, co vám mdadm řekne o jednotlivých polích
    mdadm --detail /dev/mdi
    Je-li vše v pořádku, přesměrujte výstup tohoto skriptu do konfiguráku:
    sh /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
  8. Dolaďte konfiguraci mdadm pomocí
    dpkg-reconfigure mdadm
    Sledujte výstup příkazu, zda se znovu generují ramdisky. Pokud ne, znovu je vygenerujte pomocí
    dpkg-reconfigure linux-image-2.6.18-4-486
    (dosaďte si názvy nainstalovaných balíčků s jádry)
  9. Používáte-li zavaděč LiLo, znovu jej zapište
  10. Rebootujte, abyste zkusili, zda vše správně funguje

C. Máte na softwarovém RAIDu poškozený kořenový systém nebo chcete extra pocit bezpečí a jistoty

Pak potřebujete jakékoliv CD s podporou mdadm. Já použil Ubuntu Dapper Drake live CD, ale může to být opravdu takřka kterékoliv. Postup je následující:
  1. Nabootujte do livecd a spusťte superuživatelský shell, nestane-li se tak automaticky
  2. Odpojte a vypněte všechna automaticky sestavená pole:
    for dev in /dev/md*;do umount $dev;mdadm --stop $dev;done
    Zkontrolujte v /proc/mdstat, zda jsou všechna MD pole odpojena
  3. Sestavte jednotlivá pole podle toho, jak se jmenovala v původním systému. Pokud jste měli pole /dev/md0 vytvořené nad partišnami /dev/hda1 a /dev/hdc1, použijte příkaz:
    mdadm --assemble /dev/md0 /dev/hda1 /dev/hdc1
    Pokud to neprošlo (části pole se potřebují synchronizovat), sestavte neúplný RAID a pak tam přidejte ostatní součásti:
    mdadm --assemble /dev/md0 /dev/hda1
    mdadm --add /dev/hdc1
    Sledujte stav synchronizace v /proc/mdstat. Pokračujte až budou všechna pole zesynchronizována.
  4. Zkontrolujte a případně opravte systémy souborů na zařízeních /dev/md*
  5. Připojte si jednotlivá pole a ověřte, zda se na jednotlivých zařízeních /dev/md* nacházejí ty správné systémy souborů
  6. Nachystejte se na chroot do kořenového systému a proveďte ho. Máte-li / na /dev/md0, /usr na kořenovém svazku a /var na /dev/md1, pak můžete jít na to třeba takto (pozor na lomítka ;-)):
    cd /mnt
    mkdir md0
    mount /dev/md0 md0
    cd md0
    mount /dev/md1 var/ # můžete připojit i případné další fs, ale není to nutné
    for dir in dev proc sys;do mount -o bind /$dir $dir;done
    chroot .
  7. (Odsud stejně jako dál od bodu 8 předchozího postupu. Díky přimountování proměnných systémových adresářů by neměly nastat problémy ani se zavaděči)

    Vygenerujte si nový konfigurák mdadm:
    sh /usr/share/mdadm/mkconf
    Porovnejte si vygenerovaná UUID s tím, co vám řekne mdadm o jednotlivých polích
    mdadm --detail /dev/mdi
    Je-li vše v pořádku, přesměrujte výstup tohoto skriptu do konfiguráku:
    sh /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
  8. Dolaďte konfiguraci mdadm pomocí
    dpkg-reconfigure mdadm
    Sledujte výstup příkazu, zda se znovu generují ramdisky. Pokud ne, znovu je vygenerujte pomocí
    dpkg-reconfigure linux-image-2.6.18-4-486
    (dosaďte si názvy nainstalovaných balíčků s jádry)
  9. Znovu zapište LiLo, pokud ho používáte
  10. Odejděte z chrootu, pro jistotu ručně odpojte všechna zařízení a rebootujte

Související dokumenty

README.upgrading (externí dokument)
Popis upgrade přiložený k balíčku mdadm
Zdejší diskuse (diskuse)

Dokument vytvořil: David Jaša, 15.4.2007 18:58 | Poslední úprava: David Jaša, 15.4.2007 20:09 | Historie změn | Zobrazeno: 1400×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.