[Debian 4.0] Opstarten van MD-device met failed disk

Pagina: 1
Acties:

  • Josefien
  • Registratie: Juni 2006
  • Laatst online: 02-01 00:18
Mijn thuisserver draait al sinds een tijd op Debian 4.0, en de schijven zijn ingericht m.b.v. Linux-RAID 1 (mirroring) met twee schijven. De /boot-partitie staat ook op een LVM-volume, welke op de Linux-RAID array staat. Als bootloader is automatisch LILO geïnstalleerd. Alles is al tijdens de installatie geregeld.

Nu is er echter één schijf defect geraakt (de eerste schijf, /dev/sda), en wil ik graag opstarten vanaf de tweede schijf (welke automatisch doorschuift naar sda). Helaas werkt dit niet naar behoren, en blijft het opstarten hangen bij "LILO". Op het scherm staat dan:
code:
1
LILO 22.6.1 Loading Linux......................................................................................................................................


Als ik de defecte schijf terugplaats op positie één, dan start het systeem wel (schijf is niet geheel stuk, maar wel degelijk dat hij als failed werd gemarkeerd, en de DIAG-tool van WD errors gaf), maar dit is natuurlijk niet de bedoeling.

Weet iemand wat er hier fout is gegaan, waardoor het systeem niet meer wil opstarten? Het probleem moet namelijk snel opgelost worden i.v.m. de taken welke door het systeem worden uitgevoerd ;)

P.s. Systeem start ook als alleen disk1 (defecte) is geplaatst, maar dan uiteraard totdat hij bij de schijffout aankomt ;) Het blijft vreemd waarom hij niet start met disk2 alleen.

Verwijderd

Je hebt dus 2 schijven in software raid 1 die je gebruikt als physical volume voor je lvm waar zowel je / als je /boot partitie opstaat. schijf 1 (sda) is kapot en geeft schrijf/lees fouten en schijf 2 is intact.

Naast dat dit een niet aanbevolen setup is, zit het probleem waarschijnlijk in je boot parameters. Opzich zou je setup moeten werken aangezien elke software raid schijf/partitie een uniek UUID heeft en een kopie van de raid config. Tijdens de boot zoekt mdadm elke schijf/partitie voor de raid header welke mdadm vertelt welke schijf dit is en tot welke raid deze behoort. Ook vertelt het welke schijfen er nog meer bijhoren. LVM gebruikt een zelde sooft systeem maar duidelijk gaat het eerder mis.

Ik snap alleen niet waarom lilo hier al vastloopt. Op dit punt zijn alleen de initial ramdisk(initrd) en de kernel zelf geladen. Het is de taak van de initrd om mdadm aan het werk te zetten, je raid te verzamelen, LVM te starten zodat je LVs beschikbaar komen en je root logical volume te mounten. Eigenlijk zou je dan denken dat je initrd corrupt is maar dan zou hij ook niet vanaf schijf 1 alleen kunnen starten. Mischien is je MBR corrupt?

Wat je zou kunnen proberen is om op schijf 1 de mdadm header of gewoon de hele schijf zover mogelijk te overschijfen met nullen. Let op dat je dus niet je MBR wist. Het idee is dat mdadm schijf 1 niet meer herkent als geldig en je schijf start met de MBR/initrd van schijf 1 met je physical volume van schijf 2.

Het vreemde is dat dit automatische zou moeten gebeuren aangezien de mdadm header een write-count bevat. Zodra je met schijf 1 opstart zal er geheid iets worden geschreven, een log bijvoorbeeld, en schijf 2 zou daardoor een lagere write-count hebben en dus ongeldig zijn. Eigenlijk zou dus schijf 2 problemen moeten geven en je een rebuild actie krijgt van schijf 1 naar 2. Gebeurt dit ook? check /proc/mdadm of de individuele headers.

Verder ben je wat schaars met informatie in je post, wat meer detail zou helpen en volgende keer: Plaatst je /boot gewoon los of nog beter gebruik software raid alleen voor een aparte /data partitie, zeker voor een server.

Aan de andere kant, je kunt ook gewoon een andere schijf/cf kaart + adapter in je server plaatsen en daar Debian Lenny opzetten. Gewoon een 50MB /boot en 650MB-1GB / root paritie en evt nog wat swap maar dat hoeft niet echt voor een thuis server. Je kunt dan schijf 2 gebruiken als data schijf en als schijf 1 terug is van RMA maak je daar 1 mdadm partitie op aan voor een nieuwe raid 1 waar je evt weer LVM op zet. Je zet dan je data van schijf 1 over naar schijf 2 en daarna maak je op schijf 2 ook een mdadm partitie en rebuild je van schijf 1 naar schijf 2 en heb je een veel robustere setup. Raid voor je boot en root partitie heeft eigenlijk alleen maar nadelen voor servers.

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Nu online

CAPSLOCK2000

zie teletekst pagina 888

/boot kun je beter buiten lvm houden.

Als je de hele schijf al in raid/lvm hebt gestoken kan het lastig zijn om ruimte vrij te maken. Een extra hardeschijf zoals Docey voorstelt. Eventueel zou je ook een USB key kunnen gebruiken. Die kun je snel en makkelijk installeren op een andere computer, waarna je hem in je defect server kan prikken om daarmee te booten.

This post is warranted for the full amount you paid me for it.


Verwijderd

Of nog beter: klonen

Een simpele Debian Lenny install kan onder de 1GB dus een USB stick van een paar euro is genoeg en daar kan je er makkelijk 2 van kopen en gewoon met dd de boel klonen. 1 gebruik je en de andere berg je op als backup. Als die andere stick problemen geeft dan wissel je ze om en ben je zo weer back-in-bizzness :) /boot kun je beter niet op LVM of raid zetten maar ik zet mijn / altijd wel op LVM zodat ik snapshots kan gebruiken.

Zo doe ik het alleen dan met compact flash kaartjes en een compact flash naar IDE adaptor in een PCI bracket.

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 12:55

Bergen

Spellingscontroleur

Je hebt het over /dev/sda (SATA of SCSI), dus de schijven zijn hot-swappable toch? Je zou met 2 schijven kunnen opstarten, dan terwijl het systeem draait de defecte schijf loshalen en vervangen door een nieuwe schijf. Zodra die gerebuild is, kun je eventueel ook de andere schijf vervangen als je het niet 100% vertrouwt.

Maar even read-only mounten en backuppen naar USB is idd geen overbodige luxe.

Verwijderd

Voor SATA hotswap heb je nog wel altijd een hotswap cage nodig en die zijn duurder als een nieuwe schijf.
Pagina: 1