[SUN] Booten van RAID1 root disk

Pagina: 1
Acties:

  • SambalBij
  • Registratie: September 2000
  • Laatst online: 15:14

SambalBij

We're all MAD here

Topicstarter
Ik ben het een en ander aan het prutsen om Ubuntu Gentoo linux op een Sun Netra T1 AC200 aan de gang te krijgen met een gemirrorde schijf.

In eerste instantie heb ik Ubuntu geinstalleerd op één 73GB SCSI hard disk, en dat werkte prima.
Later heb ik een tweede harddisk in de machine geplaatst, die echter een klein beetje kleiner is dan de eerste schijf (ander merk schijf)

SCSI device sda: 143374650 512-byte hdwr sectors (73408 MB)
SCSI device sdb: 142264000 512-byte hdwr sectors (72839 MB)

Ik heb vanmiddag op de tweede schijf een partitie aangemaakt van het type FD (raid autoconfig) en van die partitie heb ik vervolgens mbv mdadm een raid1 array aangemaakt. (Eén device als missing opgegeven, hij maakt dan een mirrorset met 1 disk, waar later een tweede aan toegevoegd kan worden).

Ik heb vervolgens die array gemount en mbv tar de inhoud van de oude root partitie (/dev/sda1) naar de array (/dev/md0) gekopieert.
Vervolgens wilde de machine prima booten van de array door root=/dev/md0 mee te geven.
(Nog bootende met de op de eerste schijf geinstalleerde SILO)

De partitietabel van de tweede schijf ziet er als volgt uit:
code:
1
2
3
4
5
6
7
Disk /dev/sdb (Sun disk label): 255 heads, 63 sectors, 8853 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sdb1             0      8798  70669935   fd  Linux raid autodetect
/dev/sdb2  u       8798      8853    441787+  82  Linux swap
/dev/sdb3             0      8853  71111722+   5  Whole disk


Nadat de boel hiervan wilde booten heb ik de eerste schijf van een nieuwe disklabel en partitie-indeling voorzien:

code:
1
2
3
4
5
6
7
8
Disk /dev/sda (Sun disk label): 255 heads, 63 sectors, 8922 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0      8798  70669935   fd  Linux raid autodetect
/dev/sda2  u       8798      8853    441787+  82  Linux swap
/dev/sda3             0      8922  71665965    5  Whole disk
/dev/sda4          8853      8922    554242+   0  Empty

Ik heb de root- en swappartities even groot gemaakt als op de tweede schijf, en van de ruimte die overblijft omdat de schijf iets groter is heb ik een lege partitie /dev/sda4 aangemaakt.

Echter, als ik nu mbv 'mdadm --add /dev/md0 /dev/sda1' die partitie aan de array toe heb gevoegd. (wat goed lijkt te gaan, /dev/mdstat geeft netjes een array aan die aan het recoveren is) dan is de partitietabel (disklabel) van de eerste schijf ineens exact gelijk aan de tweede schijf!?

code:
1
2
3
4
5
6
7
Disk /dev/sda (Sun disk label): 255 heads, 63 sectors, 8853 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1             0      8798  70669935   fd  Linux raid autodetect
/dev/sda2  u       8798      8853    441787+  82  Linux swap
/dev/sda3             0      8853  71111722+   5  Whole disk

De vierde partitie is verdwenen, en het aantal cylinders van de schijf is ook ineens gelijk aan dat van de andere schijf.

Het probleem wat ik nu heb is dat ik het niet voor elkaar krijg om van de machine te booten.
Ik heb in de /etc/silo.conf netjes de root partitie aangepast naar /dev/md0 en silo opnieuw gedraait, maar bij het booten van de machine krijg ik (zowel met een 'boot disk0' als een 'boot disk1' en melding in de trant van 'the file just loaded doesn't seem to be executable' (exacte melding weet ik even niet, machine staat nu de array opnieuw te syncen)

Heeft iemand ervaringen met linux raid op een Sun Sparc machine? Ergens op internet vond ik de tip dat SILO geinstalleerd zou moeten worden op de 3e partitie (Whole Disk) van beide schijven, maar ik kan helemaal nergens terugvinden *hoe* dat dan moet...
Daarnaast was ik in de veronderstelling dat md partities in raid zet en geen hele schijven, en dat de partitietabellen dus best verschillend mogen zijn. (bijv op de ene schijf een swappartitie en op de andere schijf een /tmp ofzoiets)
Klopt mij veronderstelling niet of doe ik iets verkeerd?

edit:
Hmm... ik kom nu net iets tegen dat het mogelijk helpt om de array niet op cylinder 0 maar op cylinder 1 te laten beginnen... Met de raid kopieert ie de gehele partitie, dus waarschijnlijk ook het disklabel...

edit2:
Lijkt er op dat dat inderdaad het probleem is/was. Ik heb op de eerste schijf nu de partities 1 cylinder opgeschoven aangemaakt. Na het opnieuw toevoegen van /dev/sda1 aan de array blijf nu het disklabel wel in tact :)

edit3:
Nou zoals verwacht lost dat de problemen wel op. SILO kan nu zonder problemen zijn bootblock wegschrijven en de machine kan dat ook lezen en starten (moet wel booten met 'boot disk0:3' om de derde partitie te laten starten)

(Waarom ben ik daar al de hele middag naar op zoek, en vind ik de (waarschijnlijke) oplossing echt 10 minuten *nadat* ik hier een topic heb geplaatst.... Ach, leuk voor het archief :P)

[ Voor 8% gewijzigd door SambalBij op 04-09-2007 01:24 ]

Sometimes you just have to sit back, relax, and let the train wreck itself


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13:45

deadinspace

The what goes where now?

SambalBij schreef op maandag 03 september 2007 @ 20:07:
Waarom ben ik daar al de hele middag naar op zoek, en vind ik de (waarschijnlijke) oplossing echt 10 minuten *nadat* ik hier een topic heb geplaatst....
Misschien omdat je voor dit topic alles een goed op een rijtje hebt gezet. Dat kan voor jezelf net die duidelijkheid verschaffen die je nodig had om tot de oplossing te komen :P

Mooie topicstart btw :)

</tamelijk offtopic>

  • SambalBij
  • Registratie: September 2000
  • Laatst online: 15:14

SambalBij

We're all MAD here

Topicstarter
Dat zou best eens heel goed kunnen inderdaad :)

(lol @ je sig in deze context :P) Waarom zit ik nou weer over Ubuntu te oh-en... 't is toch echt Gentoo... 8)7


Nog wel een ander dingetje; de machine wil nu netjes booten met 'boot disk0:3' (derde partitie (whole disk) van de eerste schijf)
Als ik echter 'boot disk1:3' opgeef dan start hij daar niet mee op --> silo staat dus alleen op de eerste disk.
Ik las zoals gezegd ook ergens de tip om silo op beide schijven te installeren, ik kan echter niet vinden hoe ik dat dan moet doen. Silo default naar de schijf waar de root partitie op staat, en schijnbaar pakt ie bij een raid array dan ook gewoon de eerste schijf. (silo -t werkt ook niet, dan zou hij silo naar de (mirrored) partitie moeten schrijven maar daar wil de machine niet van booten)

[ Voor 84% gewijzigd door SambalBij op 04-09-2007 01:25 ]

Sometimes you just have to sit back, relax, and let the train wreck itself


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13:45

deadinspace

The what goes where now?

Wat staat er in je /etc/silo.conf?

Ik vind het trouwens vreemd dat silo geen command-line optie heeft om aan te geven waar hij de bootloader moet wegschrijven, en ik vind de manpage niet bijzonder helder.

Misschien dat je met strace uit kunt vogelen op welk device silo precies de bootloader wegschrijft onder invloed van verschillende opties.