Grub2 aanpassen

Dames/Heren

Naar aanleiding van een defecte schijf ben ik een nieuw systeem aan het opbouwen.
Omdat OpenSuse elke 8 maanden met een nieuwe versie uitkomt wil ik de schijfindeling zodanig aanpassen dat ik een nieuwe uitgave van OpenSuse makkelijk op de schijf kan plaatsen.

Hier mijn partietieindeling:



   
    Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris
/dev/sda2   *     4208640    44965887    20378624   83  Linux
/dev/sda3        44965888   106510335    30772224   83  Linux
/dev/sda4       106510950   976768064   435128557+   f  W95 Ext'd (LBA)
/dev/sda5       106511013   147476699    20482843+   7  HPFS/NTFS/exFAT
/dev/sda6       147476763   290840759    71681998+   7  HPFS/NTFS/exFAT
/dev/sda7       290840823   393255134    51207156    7  HPFS/NTFS/exFAT
/dev/sda8       393255198   557102069    81923436    7  HPFS/NTFS/exFAT
/dev/sda9       557102133   976768064   209832966    7  HPFS/NTFS/exFAT

De systeembestanden van OpenSuse zet ik op sda1 en sda2 en sda3. Hiervoor heb ik in het totaal 50 Gb gereserveerd. Mijn home zet ik na de installatie op sda9. Bij een nieuwe versie van Opensuse gooi ik sda1,2 en 3 weg en kan zonder problemen weer een nieuwe installatie uitvoeren. Daarna de home even omzetten en al de data is weer volledig tot je beschikking.

Daarnaast heb ik 3 versies van Windows op de schijf geplaatst. Gebruik deze versies voornamelijk voor test-doeleinden. Heb toch ruimte genoeg, dus daarom deze schijfindeling.

Nu het opstarten in grub.
Grub is nu ingedeeld in 3 directory’s:
1- /boot/grub2 hier staat het configuratiebestand grub.cfg
Dit bestand kan je niet meer handmatig bewerken bewerken want het wordt gegenereerd door
grub zelf.

2- /etc/default staan ook door grub gegenereerde bestanden dus ook hier niet aankomen.

3-/etc/grub.d, hier staan verschillende bestanden waar de gebruiker aanpassingen kan aanbrengen.

Ik heb het bestand /etc/grub.d/40_custum aangepast om de Microsoft software toe te voegen aan het menu

40_custum


 #!/bin/sh
 exec tail -n +3 $0
 # This file provides an easy way to add custom menu entries.  Simply type the
 # menu entries you want to add after this comment.  Be careful not to change
 # the 'exec tail' line above.
 
 ### END /etc/grub.d/10_linux ###
 ### BEGIN /etc/grub.d/20_linux_xen ###
 ### END /etc/grub.d/20_linux_xen ###
 ### BEGIN /etc/grub.d/20_ppc_terminfo ###
 ### END /etc/grub.d/20_ppc_terminfo ###
 ### BEGIN /etc/grub.d/30_os-prober ###
     
 submenu 'Microsoft' $menuentry_id_option 'gnulinux-advanced-a7aa1c67-8c06-4d78-9d1f-4d0b9966ff7e' {
     
     menuentry 'Windows XP' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.4.28-2.20-desktop-recovery-75facb7f-801f-4c44-b129-d426257201ea' {
     echo 'hier de opstartoptie voor windows xp'
 }
     
     menuentry 'Windows Vista' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.4.28-2.20-desktop-recovery-75facb7f-801f-4c44-b129-d426257201ea' {
     echo 'hier de opstartoptie voor windows Vista'
}
 
    menuentry 'Windows 7' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.4.28-2.20-desktop-recovery-75facb7f-801f-4c44-b129-d426257201ea' {
     echo 'hier de opstartoptie voor windows 7'    
     }
 }
 
 EOF### END /etc/grub.d/40_custom ###
 

Het standaardmenu van Suse is wat mij betreft prima, als default opstartpakket blijft OpenSuse staan. Als extra optie heb ik een item Microsoft toegevoegd, waaronder weer als submenu de drie Windowsversies hangen. Nadat de aanpassingen in 40_custum zijn aangebracht worden met het commando in een terminal venster “grub2-mkconfig -o /boot/grub2/grub.cfg” een nieuw configuratiebestand voor grub gegenereerd.

Tot zo ver gaat alles prima het menu is aangepast en in het Microsoft submenu worden keurig de subitems weergegeven.

Ik heb met ghost images van de Microsoft versies gemaakt, deze op de aangemaakte partities geplaatst. De MBR is dus nog helemaal leeg! (ook geen bootvirus)
Nu is mijn vraag hoe krijg ik de Windows versies zoals ze er nu bijstaan met grub opgestart.
Windows XP staat op hd0 en sda5
Windows Vista op hd0 en sda6
Windows 7 op hda0 en sda7

Wie weet een oplossing

Ik zie eerst een heel ander probleem: je hebt volgens jouw opgave, je /home op een NTFS partitie geplaatst. Dat kan niet. Betekent o.a. dat de rechten/permissies niet gehandhaafd worden, dwz de hele bescherming van jou als user wegvalt.

Als je zoiets wilt doen, maak dan per openSUSE installatie een partitie van ± 20GB, en één, voor alle versies geldende, /home, op een linux filesysteem.

Voordat je verder gaat, moet eerst dit in orde zijn.

Verder is GRUB2 gebaseerd op het automatisch detecteren van linux en windows installaties. Als je wijzigingen in de setup daarvan maakt, moet het draaien van

grub2mkconfig -o /boot/grub2/grub.cfg

je GRUB aanpassen aan de nieuwe situatie.

Een volgend mogelijk probleem dat ik zie, is het feit dat de Windozen op logische partities staan, voor zover ik weet kan dat niet.
Je zou dan de Windozen op 3 primaire partities moeten plaatsen en het hele linux verhaal op de logische binnen de extended.

Knurpht,

Bedankt voor je snelle reactie.

Home
De home laat ik standaard plaatsen volgens de standaard installatie, dus nu staat mijn home nog op een linux partitie, en inderdaad later wil ik deze omzetten naar en NTFS partitie. Dat de rechten niet overgenomen worden is op zich geen groot probleem maar ik kan er ook een Ext4 van maken. Dus dat probleem is simpel op te lossen.

GRUB2
grub2mkconfig -o /boot/grub2/grub.cfg heb ik gedraaid maar kreeg de windowsversies niet draaiend. Inderdaad staan de windowsversies op logische partities.
In mijn gedachte was alsvolgt, ik vind windows niet zo interessant en heb deze alleen voor test-doeleinden op de schijf staan daarop had ik OpenSuse op de primare partities geplaatst en daarnaast een aantal logische partities binnen de extended.

Dus het komt er op neer dat ik de heleboel moet omdraaien!
Jammer vond mijn idee zo handig.

Inderdaad jammer :D.
Als je windozen alleen voor testdoeleinden gebruikt, is dan VirtualBox niet een betere oplossing? Ik heb altijd wel een windoos ter beschikking, testen van websites in Explorer (alhoewel ik zelf vind dat je met Explorer helemaal het web niet op moet gaan :P), klanten eisen dat.

Ben het grotendeels met je eens maar Microsoft heeft nog veruit het grootste marktaandeel, dus je komt vaak een versie van Microsoft tegen.
Kan je virtualbox op elke machine draaien?

In principe wel. Heb zelf Vbox altijd gedraaid op mijn vorige laptop, die “maar” 4 GB intern had. XP en Win7 (Vista wordt door MS zelf als mislukt beschouwd) draaiden daar prima op. Je moet natuurlijk niet proberen op een ouwe machine die amper XP kan draaien een virtuele Win7 te draaien. Pakketten zijn via de repos verkrijgbaar, als je ook USB2 helemaal werkend wilt hebben, dan moet je de versie van virtualbox.org downloaden en installeren.