Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Grub2 trubbel...

Jag har på senare tid haft återkommande problem med Grub2 i Linux mint. FoH menar att det funkar utan problem i Ubuntu,

Till att börja med funkade det även bra i LMDE, men efter senaste uppdateringen har samma problem uppstått där som i LM 10.

Jag tycker att Grub2 verkar riktigt sopig. Så här ser min grub.cfg ut:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'LinuxMint GNU/Linux, with Linux 2.6.38-2-686' --class linuxmint --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos8)'
    search --no-floppy --fs-uuid --set 572e2b85-4d70-4db1-bd93-93ed25c9c0cf
    echo    'Loading Linux 2.6.38-2-686 ...'
    linux    /boot/vmlinuz-2.6.38-2-686 root=UUID=572e2b85-4d70-4db1-bd93-93ed25c9c0cf ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.38-2-686
}

Varför blandar den in "msdos"?   Jag har absolut inget som har med microsoft eller dos att göra på min PC!

Dessutom kör jag ext4 och INTE ext2!!!

Sedan kommer det värsta:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "linux  (on /dev/sda1)" {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos1)'
    search --no-floppy --fs-uuid --set 96f90c7e-8b2e-4717-94d7-94f1bcd43993
    linux /boot/vmlinuz BOOT_IMAGE=linux root=UUID=96f90c7e-8b2e-4717-94d7-94f1bcd43993 resume=UUID=b439c9d0-72e9-4eda-a7e5-fe63a1640174 vga=788
    initrd (hd0,0)/boot/initrd.img

Grub kan inte ens se att det är PCLinuxOS som är installerat på ext4 på /dev/sda1!   Och så till sist så säger Grub2 att start-img ligger på hd0,0    ???  Det skall vara hd0,1!!!

Om det inte är Grub2 som är skit så måste det väl vara nå'n config-fil till Grub2 som är felaktig.

På bifogad bild kan man se hur filsystemet ser ut.

(Djup suck)

BilagaStorlek
Skärmbild.png102.34 kB

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

tux-svens bild

Jag har allvarllgt funderat på att nedgradera till Grub1 (legacy)

Det finns artiklar om detta:

https://help.ubuntu.com/community/Grub2#Uninstalling%20GRUB%202

---

Windows are for houses, Linux is for computers!

 

extons bild

Kanske ingen dum idé. Det måste finnas en anledning till att stora välkända distar (bl a Fedora och openSUSE) håller fast vid gamla goda GRUB.

Jag använder själv bara gamla GRUB på mina tre datorer, som jag har i snitt 10 OS på. När jag installerar en Ubuntu-dist avstår jag alltid från att installera GRUB2.

LINUX.EXTON.NET

1951s bild

Att det bara står menuentry linux..... beror ju på att du vid installation av

PCLInuxOS valde vad installationsprogrammet föreslog.

Det blir bara linux även om du använder Grub1.

Grub2 läser ju av det som står i /boot/grub/menu.lst

för PCLinuxOS, som ju använder Grub1.

På sista raden ska du ta bort hd0,0

jämför med sista raden för LinuxMint

FoHs bild

Versionen i Ubuntu 10.10 är 1.98+20100804-5ubuntu3 (11.04 kommer komma med 1.99, en skillnad som blev uppenbar på laptopen då jag fick en högupplöst grub-meny)

Angående Windows:
I den andra tråden pratade vi om Windows, så när jag menade att det fungerat felfritt för mig så gällde det grub2 + Ubuntu + Windows 7/Vista. När det gäller problem med grub2 och Windows så tänker jag att det kan bero på hur systemen installerats. Båda mina Windows-installationer har jag gjort själv, från grunden. På datorer som kommer förinstallerade med Windows så kan det ju ibland finnas specialpartitioner. Min laptop kom förinstallerad med Vista och ett mini-XP som det var någon mediacentergrej på, och där gick även grub1 bet.

Sen kör jag rätt enkelt, vilket så klart leder till färre problem: på skrivbordsdatorn har jag Ubuntu på en hårddisk och Vista på en annan. På laptopen har jag Windows 7 och Ubuntu på samma hårddisk. Ingendera har bjudit på några problem med grub2, men det blir ju kraftigt förenklat med bara en Linuxdistribution kan jag tänka mig. Enda gångerna som jag varit in och redigerat i grub2-filerna är när jag velat kasta om saker i menyerna.

Angående part_msdos, msdos1 och ext2:
Modulen ext2 används för ext2, 3 och 4. Det är alltså samma modul oavsett dessa filsystem. Modulen part_msdos används för MBR-partitionerade hårddiskar. Jämför med part_gpt som används för GPT-partitionerade. Eftersom det är en MBR-formaterad disk så noteras (numera, tror inte det var så när Grub2 kom) partitioner efter vilken partitionstabell som disken följer, dvs msdos-sättet (MBR). Lite olyckligt namnval kan tyckas, men det är inget som är fel i din grub.cfg (med avseende på moduler och partitionsnumrering med msdos#).

Angående PCLinuxOS:
Att Grub2 inte ens "ser" att det är PCLinuxOS som är installerat beror på de program som används för att sammanställa Grub2-filerna. os-prober och linux-boot-prober tror jag båda är utvecklade under Debian-projektet. De har olika tester för att avgöra namnet på den distribution som de hittar. För LSB-distributioner är det inget problem (tror jag), de ska ha en fil som heter /etc/lsb-release med den informationen. PCLinuxOS är inte LSB-certifierat och har möjligtvis en annan fil där med informationen, möjligtvis /etc/mandrake-release eftersom det har Mandrake-arv men kanske vill man inte skriva ut någon sådan fil när det idag är nästan mer likt Debian eftersom det kör APT-systemet. Det kan ju vara så att fler program uttolkar de filerna och agerar efter vad som står i dem, och då är det kanske bättre att man inte låtsas vara Debian- eller Mandrake/Mandriva-kompatibel, jag vet inte. Kolla om du hittar någon fil som heter /etc/*-release.

Förmodligen är det ovan nämnda verktyg som även lägger till hd0,0  felaktigt vid initrd, kanske pga någon bugg i dessa verktyg eller för att PCLinuxOS har en konfigurationsfil som är annorlunda utformad än andra distar. Som jag förstått det så scannar de igenom en hel rad filer i de system de hittar för att försöka att återskapa hur just denna distribution vill starta (menu.lst och /etc/fstab nämns bland annat), med flera hundra olika Linuxdistributioner är det väl ett ganska klokt förfarande? Jag gissar att PCLinuxOS använder grub1 (tillägg: bekräftat enligt inlägg ovan) och därför någonstans säger att partitionen där den har initrd ligger på hd0,0. Jag tror inte ens du behöver ett hd0,1 på din rad, det bör räcka med initrd /boot/initrd.img.

Angående de upplevda problemen med Grub2:
Det här är mina tankar om varför man stöter på problem med Grub2 och vad man bör göra åt det... När vi pratar om Grub2 så handlar det om ett Grub2 som lutar sig mot ovan nämnda Debian-verktyg. Det är grub-mkconfig som skapar grub.cfg (Grub2-motsvarigheten till menu.lst). Grub2 utan detta verktyg skulle vara väldigt likt Grub1, du skulle helt enkelt kunna redigera grub.cfg precis som du tidigare redigerade menu.lst, allt som är annorlunda är syntaxen. Så jag tycker inte man kan kalla Grub2 sopigt Smile

Med Grub1 så letades det bara efter andra operativsystem vid installation (oftast?). Endera hittades det och lades till i menu.lst (även då med varierat resultat) eller så hittades det inte och man fick lägga till det själv. Det ligger väl i betraktarens öga om det är bättre eller sämre att få lägga till andra operativsystem själv, eller fixa det som läggs till. Jag tror att en av orsakerna till att man upplever Grub2 som krångligare är att det uppdaterar grub.cfg (menu.lst) vid varje kärnuppdatering, exempelvis. Man tycker det finns mindre kontroll över det hela och blir kanske något handlingsförlamad över det automatiska uppdaterandet. Möjligtvis är det anledningen till att ditt LMDE fungerade bra i början (innan någon sådan uppdatering skett), men nu "förstört" för dig.

Förut var det nästan bara Grub1 för hela slanten, och då bör ju de olika systemen lira bättre med varandra. Nu får man en blandning med Grub1 och Grub2, där Grub2 försöker tolka Grub1-distributionerna och tillgodogöra sig informationen. Personligen tycker jag inte det är konstigt om det inte alltid blir bra, med tanke på alla olika distar.

MEN, lösningen är enkel: Inaktivera os-prober-funktionaliteten och lägg till dina (Grub1-)distributioner själv. Då får du det gamla sättet där du själv får uppdatera vad som ska visas i Grub-menyn. Hur du gör beskrivs på Wikin, men kortfattat så kopierar du de aktuella menuentry-posterna från grub.cfg till en separat fil i /etc/grub.d. Jag skulle personligen göra 30_os-prober till icke körbar snarare än att inaktivera os-prober helt (den kan ju bidra till att skriva ut menuentry-poster i filen som man sedan kan kopiera till sina egna filer, så sliper man tänka helt själv :) ).

tux-svens bild

Tack FoH, det var ett mycket uttömmande och bra svar.  Fantastiskt bra.  Smile

Jag HAR själv löst det temporärt genom att ändra "Linux" till "PCLOS" och "hd0,0" till "hd0,1", men det är ju åxå lite "taffligt"....

Att jag gick i taket var väl att det för mig förhatliga "ms" dyker upp som en gubbe ur lådan. Wink

(Det går även att ersätta "msdos1" med bara "1")

Om man har att välja på ett bootsystem som är helt automagiskt, men tillför felaktigheter och ett bootsystem som inte klarar allt men är LÄTT att manuellt editera så tror jag att jag föredrar det senare.

Men jag tror absolut att Grub2 kan bli bättre framöver.

 

---

Windows are for houses, Linux is for computers!

 

FoHs bild

Även jag tror Grub2 kommer bli bättre framöver - i takt med att distributioner överger Grub1 Smile

Men det ÄR lätt att editera själv, bara annorlunda Smile Det kräver lite förarbete för att åsidosätta automagin, men sedan fungerar det ju precis som förr.

sudo chmod a-x /etc/grub.d/30_os-prober (åsidosätter automagin, dvs letar inte efter andra operativsystem)

Öppna /boot/grub/grub.cfg och kopiera alla poster utom LMDEs och klistra in dessa i /etc/grub.d/40_custom och så editerar du så mycket ditt hjärta behagar Tongue (Och uppdaterar med update-grub-kommandot efteråt.)

Du kanske rent av kan öppna /usr/sbin/update-grub och skriva in ett exit innan några kommandon körs så kommer grub.cfg aldrig röras. Men å andra sidan vill du nog inte ha det fullt så manuellt eftersom du då får redigiera grub.cfg även när kärnan uppdateras i LMDE.

extons bild

Tack för grub2-tipsen. Riktigt nyttiga!

LINUX.EXTON.NET

tux-svens bild

Ha-ha, när jag Googlade runt lite på "grub2" fann jag detta:

http://amplicate.com/hate/grub2

Grub2-hatarnas egen sida!!!

MEN det lär finnas ett gui för att ställa in grub2 numera:
http://ubuntuguide.net/manager-grub2-boot-loader-using-grub-customizergui

Det kanske blir väl nå'n gång till slut i alla fall?? Wink

---

Windows are for houses, Linux is for computers!

 

FoHs bild

Grub 1.99 har släppts och det finns lite ytterligare klarhet i det här nya sättet att namnge partitioner:

* Handle installation across multiple partition table types.
* Support nested partition tables.  GRUB now prefers to name partitions
  in the form `(hd0,msdos1,bsd1)' rather than `(hd0,1,a)'.

http://lists.gnu.org/archive/html/grub-devel/2011-05/msg00032.html

90% är rena grekiskan för mig, men som jag tolkar det så är det en nödvändig förändring om man ska kunna blanda MBR- och GPT-partitionerade diskar. Största möjliga partitionsstorlek för MBR-partitioner är 2.19TB så vi börjar ju närma oss övergången till GPT (Linux är ett av få operativsystem som klarar av att boota GPT-partitioner från PC/BIOS, Windows Vista/7 kräver EFI exempelvis). Men även EFI börjar väl bli vanligare och då kommer nog GPT bli mer standard. Då kan man ha upp till 128 partitioner istället för att krångla med extended/utökade partitioner Smile