[linux] Re: Boot van SATA-dvd (nog meer:()

hans rood hansrood op xs4all.nl
Wo Mrt 18 17:27:08 CET 2009


Samenvatting van deze thread over recente multiboot-problemen. 

Cecil noemde het idee om uit deze linux op list-threads een soort FAQ samen
te stellen, dit verslag zou een eerste aanzet daarvoor kunnen zijn.

Sorry voor de underquote, De thread fungeert hier als referentie en als
credits voor de deelnemers aan de thread. Met dank aan die hieraan
hebben bijgedragen!.

===============================
Ik heb onlangs op een nieuwe computer (Asus P5QL-MC bord met Intel core
2 E2700 en SATA WMD-schijf en SATA DVD) achtereenvolgens Ubuntu 8.10,
SuSE 11.1 en Fedora 10 geïnstalleerd. Dat lijkt tegenwoordig erg
eenvoudig en foutloos te verlopen, met uitzondering echter van het
multiboot-gebeuren. Dat liep stroef. Wat ik daarvan geleerd heb kan
mogelijk voor andere beginners ook van belang zijn. 

Een kort verslag:

1) installeren van ubuntu 8.10 (op sda1 en sda2 als swap) verliep
vlekkeloos. In het menu.lst had ik iets verwacht van:

I
1 title     ubuntu 8.10.----
2 root     (hd0,0)
3 kernel   /boot/vmlinuz  root=/dev/sda1 ro 
4 initrd   /boot/initrd

1 grub toont de titles in keuzemenu
2 default partitie wordt (hd0,0) = hda1
3 grub laadt een kernel, mount de rootpartitie en start 
init, thats all!
4 initrd nodig als de kernel een driver tekort komt


Maar, ubuntu gebruikt tegenwoordig niet meer de id van de fysieke schijf
met partitienummer (b.v. hda3), maar de UUID, een lange tekenreeks die
bij het formatteren aan het filesysteem wordt gegeven! 

Ziehier het betreffende stukje van menu.lst van mijn ubuntu:

II
1 title Ubuntu 8.10, kernel 2.6.27-11-generic
2 uuid 8074ad43-e9bb-4157-972e-92f1f70aad8f
3 kernel /boot/vmlinuz-2.6.27-11-generic
root=UUID=8074ad43-e9bb-4157-972e-92f1f70aad8f ro quiet splash 
4 initrd /boot/initrd.img-2.6.27-11-generic

Dit is correcter, we bedoelen een filesystem en niet het busadres van
een schijfpartitie waarop mijn ubuntu zit. Het filesystem-UUID is
daarvoor bedacht (type «tune2fs -l /dev/sda5 |grep UUID» om het op te
vragen)  


2 SuSE 11.1 wil ik op sda5 installeren met sda6 als homedir. Ook SuSE
had wat bedacht om de "sdxn" partitienamen te vermijden, SuSE gebruikt
de identificatie de de fabrikant aan de schijf heeft toegekend: 
gebruikt tegenwoordig
III

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.19-3.2
    root (hd0,4)
    kernel /boot/vmlinuz-2.6.27.19-3.2-default
root=/dev/disk/by-id/ata-WDC_WD5000AACS-00G8B1_WD-WCAUH0263912-part5
resume=/dev/disk/by-id/ata-WDC_WD5000AACS-00G8B1_WD-WCAUH0263912-part2
splash=silent showopts vga=0x317
    initrd /boot/initrd-2.6.27.19-3.2-default

Mijn schijf heeft dus van Western Digital de naam "WDC_WD5000AACS..."
gekregen en via de module "uvev" zijn en linkks gemaakt naar /dev/sda5
en sda2 (swap)

Om bestaande systemen ook nog steeds te kunnen booten werden de stanza's
uit alle menu.lst-files die er te vinden zijn in de eigen menu-file
gecopieerd. Ook hier doet SuSE iets origineels:


IV
###Don't change this comment - YaST2 identifier: Original name:  Ubuntu
8.10, kernel 2.6.27-11-generic (/dev/sda1)###
title Ubuntu 8.10, kernel 2.6.27-11-generic (/dev/sda1)
    root (hd0,0)
    configfile /boot/grub/menu.lst

Ofwel, het verwijst voor ubuntu naar de volledige menu-file van ubuntu!

Dus zelfs als ubuntu zijn menu.lst verandert, b.v. uitbreidt met een
nieuwere kernel, zou het nog moeten werken!

Helaas dit werkt op een of andere manier niet samen met ubuntu 8.10. Wel
kan ik op de grub-commandline, met opdrachten als bij I hierboven ubuntu
nog starten. 

Ook de volgende stanza deed het goed:

#
title Ubuntu mijn manier
root     (hd0,0)
kernel   /boot/vmlinuz root=/dev/sda1 ro
initrd /boot/initrd

Vervolgens Fedora. Die deed het weer anders en liep in eerste instantie
ook niet! Maar misschien is de fedora-manier toch wel  beste:

Tijdens install vroeg Fedora of in nog andere systemen wilde blijven
gebruiken.

Je kunt dan alleen  één of meer partities uitkiezen. Ik koos hd0,0 en
hd0,4 (of hda1 en dfa5 dat weet ik niet meer:( )
Fedora-installer maakte daar twee chainloaderopdrachten van, in
menu.lst.:

V
1	title SuSE11.1
2		rootnoverify (hd0,4)
3		chainloader +1
4	title Ubunthu810
5		rootnoverify (hd0,0)
6		chainloader +1

"noverify" omdat grub alleen de eerste sector (" +1) hoeft te laden en
te starten en het filesysteem niet hoeft te verifieeren.  Het mag zelfs
een onbekend propriety-fs zijn!

Daarvoor is het wel nodig dat er in de boot-sectoren van partitie 1 en 5
een correct bootrecord aanwezig is, initieel staan er alleen nullen in. 

Dat kan aldus, boot de betreffende distributie en geef, als root, de
volgede opdracht: 

root op ubuntup5ql:~# grub
grub>setup (hd0,0)


of, natuurlijk 
«setup (hd0,4)» onder SuSE op /dev/sda5

CONCLUSIE.
Misschien is dit voorlopig wel de beste methode: Installeer elk systeem
met een bootrecord in zijn eigen partitie en voeg een chainloaderrecord
toe aan het menu dat bij het MasterBootRecord hoort. Want als je het op
dit moment aan de diverse distro's zelf over laat wordthet een puinhoop.

=======================================================


Op vrijdag 27-02-2009 om 21:28 uur [tijdzone +0100], schreef Peter
Vollebregt: 
> 
> J.S. Rood schreef:
> > Op woensdag 18-02-2009 om 14:09 uur [tijdzone +0100], schreef Daniel von
> > Asmuth:
> >   
> >> On Wed, Feb 18, 2009 at 02:48:49AM +0100, hans rood wrote:
> >>     
> >>> Mijn nieuwe systeem: ASUS p5ql-cm bord met SATA-dvd wil alleen van de
> >>> nieuwste life-cd's booten. 
> >>>       
> > Nou dat weer:(
> >
> > Ik heb nu ook SuSE 11 geïnstalleerd en nu kan ik ubuntu alleen nog met
> > de grub-commandline starten. Het volgende is er aan de hand:
> >   
> <knip>
> > En nou lijkt het erop dat dat lange uuid-nummer niet meer klopt als ik
> > via het SuSE-menu binnenkom. Dat zegt Grub "Err. 15 file not found"
> >   
> Dat UUID nummer verandert als je een partitie fomatteert. Gebeurt dus
> altijd bij een nieuwe install.
> > Maar als ik handmatig root (hd0,0) en "kernel ..... root=/dev/sda1"
> > ingeef dan lukt het booten wel.
> >
> > Da's wel lastig want ubuntu heeft de gewoonte om voortdurend nieuwe
> > kernels te installeren.
> >   
> Om deze reden heb ik een tamelijke hekel aan die onleesbare UUID's die
> veel distro's zijn gaan oebruiken. Omdat sommige distro's ook schuiven
> met de /dev/sdX nummers gaat dat ook niet altijd goed. Mijn vluchtweg is
> om labels te gebruiken die wel hetzelfde blijven.
> 
> Dat "installeer probleem van nieuwe kernels" los ik op door op te laten
> starten via een keten (chain) waarbij grub vanuit het MBR grub in de
> root-partitie aanroept. Die nieuwe kernels worden dan altijd toegevoegd
> aan de 'eigen' grub van een distro in de root-partitie. Eén bepaalde
> distro beheert dan de grub in MBR, meestal de laatste vanwege het gemak
> bij installeren..
> 
> Mijn menu.lst ziet er nu als volgt uit,. De oude versie Mandriva 2008.0
> wordt in een keten aangeroepen. Detail: swap wordt wel via UUID gemount
> omdat ik die partitie nooit verander / formatteer.
> 
> timeout 5
> color black/cyan yellow/cyan
> gfxmenu (hd2,0)/boot/gfxmenu
> default 0
> 
> title Linux Mandriva 2008.1
> kernel (hd2,0)/boot/vmlinuz BOOT_IMAGE=Mandriva_2008.1 root=LABEL=root2
> resume=UUID=710ad218-ef74-493a-9ad3-c9ddcb9ebe5f splash=silent vga=788
> initrd (hd2,0)/boot/initrd.img
> 
> title Mandriva 2008.0 (oude versie)
> root (hd1,6)
> configfile /boot/grub/menu.lst
> 
> 
> > Is daar een eenvoudige verklaring voor? Wanneer wordt die uuid
> > vastgelegd?
> >   
> Ja dus
> >
> > groet
> > hansr
> >  
> >
> >
> >   
> Peter
> 




More information about the Linux mailing list