raid Boot pe debian și de a restabili - note pe nuanțele aplicării diamant în server

În ultima (a opta la momentul scrierii acestui articol) versiune de restaurare Debian a prăbușită de boot software-raid-matrice, așa cum sa dovedit - nu e cu totul banală. După ce, la un moment dat, în timpul primei și grub - calculatorul încărcat în condiții de siguranță în absența drive-urile din matrice, cu toate acestea, 7 și 8 versiuni ale Debian - ceva sa rupt. Sistemul produce ceva de genul:
ALERTA / dev / discuri / by-UUID / o grămadă de diferite-krakozyablikov nu există.
Renuntarea la un shell!
Prin urmare, semnul pentru o scurtă, în primul rând, că ar trebui să imediat podshamanit din cauza unui raid software-ul Debian-și anume, pe de altă parte - ca această afacere pentru a recupera rapid. Nu va fi nimic despre cum se instalează sistemul pe un raid, sau cum de a converti unul existent. În plus, este recomandabil să ne amintim că manipularea drive-urile RAID și poate duce la pierderea permanenta a datelor, astfel încât asigurați-vă că pentru a avea o copie de siguranță a tuturor importante.
Mai întâi de toate - script-ul de boot podshamanim. Acest lucru va permite sistemului să pornească chiar și cu matrice degradate.
nano -w / usr / share / initramfs-unelte / scripturi / local-top / mdadm
Deschideți fișierul / usr / share / initramfs-tools / script / local-top / mdadm. Găsim acolo toate aparițiile --assemble și să le înlocuiască --incremental - cel mai probabil, acesta va trebui să facă două linii.
initramfs imagine Update.
update-initramfs -u -kall
Opțiuni înseamnă că imaginile sunt actualizate pentru toate versiunile disponibile ale kernel-ului (-kall), inclusiv cele care există deja (-u).
Acum, chiar dacă matricea este degradat - sistemul este încă complet încărcat, ceea ce simplifică foarte mult defalcarea și conectarea la raidul de noul hard disk. Cu toate acestea, dacă vă aflați în această situație am ajuns - va fi mai ușor să pornească de la ceva navrode SystemRescueCd și fie script-ul corect de boot și imaginea initramfs folosind comanda chroot, sau descărcate direct din sistemul de salvare a restabili raid-matrice. Poate că un astfel de comportament Debian - nu este un bug, dar o caracteristică, și anume și este conceput - să zicem, în cazul în care raidul rupt - nu-l atinge, în scopul de a evita, și să juzverej angajate Kamasutra Busybox, poate că într-adevăr este justificată undeva. dar raidul - încă nu de rezervă, dar principala sarcina sa - asigurarea bunei funcționări, astfel încât valoarea de caracteristici similare - IMHO este extrem de îndoielnic.
Mai mult - este important ca încărcătorul de boot (implicit în Debian folosește Grub) a fost instalat pe toate hard disk-uri boot-abil. Să presupunem că aveți două hard disk-uri, pe care sistemul de fișiere rădăcină cu / boot și totul stabilește ca reflex - RAID1. În mod implicit, în cazul în care un astfel de toate inițial set - instalare Debian va instala GRUB doar un singur hard disk. Deci, este logic să se repete instalarea pentru ambele hard disk-uri - conduse de root și despre aceste comenzi:
Grub-install / dev / sda
Grub-install / dev / sdb
În cazul în care / dev / sda și / dev / sdb - dvs. două unități. Ca rezultat, sistemul va porni de la oricare dintre unitățile disponibile. În cazul în care sistemul chiar și după aceste măsuri nu sunt încărcate - verificați setările BIOS, dacă el nu încearcă să pornească de la orice floppik? Acesta este și cazul unor plăci de bază după îndepărtarea una dintre unități (sarcina prioritară a discului rămasă este mai mică decât un DVD-drive, de exemplu).
Acum trecem la recuperare. Să presupunem că avem două volume identice de disc pe care două matrice funcționează în RAID1 - md0 și MD1. Pe MD1 vom pune swap (este necesară în cazul unui disc pe moarte în proces, la procesele care rulează nu devin bolnav când se face referire la pagina de memorie a eșuat). Pe md0 - fișierul rădăcină de sistem / încărcare și toate celelalte fișiere. Ie extrem de simplificată versiune, fără a toate precipitați sub / boot sau secțiuni / home individuale. Să presupunem că discurile sunt indicate prin / dev / sda și / dev / sdb.
Deci, el a lucrat el însuși / dev / sdb, a lucrat. și a murit subit. Rezultatul trist al vieții sale. Dacă faci script-ul de descărcare nu podshamanili - acum, când încercați să porniți sistemul va emite ALERTĂ de mai sus și aruncă în Busybox. Cu podshamanennym același script - sistemul este probabil să fie încărcate. Dacă nu ați configurat nicio acțiune și notificare la raidul eșuează - aveți o problemă cu tine, nu poate recunoaște chiar discul, dar configurația de notificări - dincolo de domeniul de aplicare al acestui articol. Pentru a verifica starea unui raid mână - care este suficient pentru a executa următoarea comandă:
Sau urmăriți conținutul l-am găsit în orice alt mod. Fișierul va fi ceva despre acest lucru:
md0. RAID1 activ sda1 [1]
2926528 blocuri super-1.2 [2/2] [_U]
MD1. RAID1 activ sda2 [1]
5855168 blocuri super-1.2 [2/2] [_U]
Aici, pentru fiecare matrice sunt listate în secțiunile rămase ale șirului (așa cum se poate observa localizată pe sda) + arată că cele două secțiuni din matrice este doar una - în mod normal, între paranteze drepte vor fi scrise [UU].
Astfel, discul este mort, dar raidul în viață. Oprirea calculatorului. Ajungem undeva nou (sau smulge măruntaiele celuilalt calculator) hard disk de aceeași mărime sau mai mare. Conectați-l la locul morților. Ne întoarcem pe calculator și urca imediat în BIOS-ul - pentru a vă asigura că descărcarea merge la supravietuitorul șuruburilor vechi, și nu doar adăugat. Se încarcă operatsinku.
Acum, trebuie să eliminați partițiile de pe noul hard disk (dacă este cazul) și re-rupe-l -, astfel încât / dev / sdb1 și / dev / sdb2 potrivite în mărime la / dev / sda1 și / dev / sda2, respectiv. Puteți face acest lucru cu fdisk. Puteți utiliza un GParted grafic. Cineva o va face webmin-lea. Alegerea este a ta. Am fost cel mai fericit cu despărțit. Noi îi spunem și să vedem ce este pe disc.
# despărțit
GNU Parted 3.2
Utilizarea / dev / sda
Bine ați venit la GNU Parted! De tip „ajutor“ pentru a vizualiza o listă de comenzi.
(Parted) unitate s
(Parted) print / dev / sda
Model: ATA ST3802110AS (scsi)
Disk / dev / sda: 156299375s
mărimea sectorului (logică / fizică): 512B / 512B
Partiția Tabel: msdos
Steaguri Disk:
Număr End Start Dimensiune Tip Flags sistem de fișiere
1 2048s 5859327s 5857280s de boot primar, raid
2 5859328s 17577983s 11718656s raid primar
(Parted) print / dev / sdb
Model: ATA ST3802110AS (scsi)
Disk / dev / sda: 156299375s
mărimea sectorului (logică / fizică): 512B / 512B
Partiția Tabel: msdos
Steaguri Disk:
Roșu - marcate comenzile introduse de către utilizator. Deci avem două discuri 80 gig pe / dev / sda - partiții și raid-on / dev / sdb - gol.
Echipa unitate s face parted pentru a arăta dimensiunea și compensate în sectoare altfel - parted arată aceste cifre în formă de om care poate fi citit și medie (de exemplu 7,45GB), care a stabilit numărul exact de octeți nu este posibilă. Valori în sectoarele convenabile în acest sector un implicit este de 512 octeți (a se vedea. Dimensiunea sectorului în linia de ieșire parted).
Linia „Utilizarea / dev / sda“ înseamnă că comenzile implicite ale utilizatorului exprimate vor fi aplicate pe disc / dev / sda. Nu ne place. Vom proceda după cum urmează:
(Parted) selectați / dev / sdb
Utilizarea / dev / sdb
Acum, echipa se va aplica la a doua unitate. Pe cală, după cum se poate observa - au deja o partiție MSDOS tip de tabel. În cazul în care nu a fost - ar trebui să creeze echipa mklabel. În același fel, puteți elimina rapid tabela de partiții vechi, în cazul în care există acum ceva vechi și nu este necesar.
(Parted) mklabel msdos
Acum, când discul este gol și tabela de partiții înființat - crearea a două noi secțiuni, cu aceleași dimensiuni, care pot fi vazute pe primul disc.
(parted) mkpart 5859327s 2048s primare
(Parted) set 1 lba off
(Parted) set 1 raid
(Parted) set 1 de încărcare de pe
(parted) mkpart 17577983s 5859328s primare
(Parted) set 2 lba off
(Parted) set 2 raid
(Parted) print / dev / sdb
Model: ATA MAXTOR STM380215 (scsi)
Disk / dev / sdb: 156299375s
mărimea sectorului (logică / fizică): 512B / 512B
Partiția Tabel: msdos
Steaguri Disk:
Număr End Start Dimensiune Tip Flags sistem de fișiere
1 2048s 5859327s 5857280s de boot primar, raid
2 5859328s 17577983s 11718656s raid primar
După cum puteți vedea, dimensiunile specificate în sector - sunt la fel cum se vede pe / dev / sda. set de comandă în secțiuni - activa și dezactiva steagurile necesare și inutile - de exemplu, pavilion LBA este plasat în mod implicit, dar mai ales nu avem nevoie, în timp ce în același timp, au nevoie de un steag raid de boot și steagul pentru partiția de boot.
Acum puteți restabili matrice degradate. Este destul de simplu:
mdadm / dev / md0 -a / dev / hdb1
mdadm / dev / md1 -a / dev / sdb2
cat / proc / mdstat
Ultima comandă ar trebui să afișeze informații cu privire la matrice, care va fi ceva de genul o bară de progres (cu benzi de interes) pentru procesul de recuperare. Ocazional conținutul de Uitându-/ proc / mdstat poate monitoriza procesul. Sau puteți face acest lucru în timp real despre comanda:
ceas -N1 pisica / proc / mdstat
Comanda va afișa conținutul fișierului pe ecran în fiecare secundă.