1. Długie ładowanie: GRUB-a, jądra, initrd
GRUB ładuje się długo pokazując na ekranie takie napisy:
Kod: Zaznacz cały
GRUB Loading stage1.5.
GRUB loading, please wait...
Ciekawe jest to, że jeśli komputer nie jest uruchamiany "z wyłączenia", a restartowany (tzn. wcześniej uruchomiony był jakiś system operacyjny – sprawdzałem to z moim aktualnym Debianem oraz dodatkowo z Knoppiksem i MenuetOS), to GRUB, jądro i initrd ładują się szybko. Czyli tak jakby systemy te zmieniały jakieś parametry, których nie ustawia BIOS (podobny problem miałem kiedyś z myszą USB: w Linuksie działała tylko wtedy, gdy przez Linuksem uruchomiony był Windows 98). Nie znam się, ale może chodzi o coś z geometrią dysku.
Wersja GRUB-a według dpkg: 0.97-47lenny2.
System to Debian Lenny/Sid (instalowany około rok temu – wtedy Lenny jeszcze był klasyfikowany jako wersja testowa). Instalowany był na dysku Seagate Barracuda ATA IV (80 GB) w komputerze z procesorem Athlon 500 MHz. Potem dysk został przełożony do innego komputera – z procesorem Pentium III 800 MHz. Problem z długim ładowaniem istniał już od samego początku – czyli jeszcze na komputerze z Athlonem.
Filmik pokazujący ładowanie: GRUB-a, jądra, initrd; potem uruchamianie się systemu: http://www.youtube.com/watch?v=NqDy1OBRB88. Filmik nagrany był na poprzednim komputerze (z Athlonem).
Na obecnym komputerze czas ładowania jest trochę krótszy (może dlatego, że procesor jest o 300 MHz szybszy), ale pod warunkiem, że czuwam przy klawiaturze – jeśli bym nie nacisnął ENTER, to czas ten wynosiłby nieskończoność… I to jest drugi problem z GRUBem – opisany w pkt. 2.
Jeszcze jedna ciekawa/dziwna rzecz: MBR i plik /boot/grub/stage1 mają inną zawartość. Nie znam się, ale wydaje mi się, że powinny być takie same (z wyjątkiem oczywiście fragmentu, w którym znajduje się tablica partycji).
Pierwsze 446 bajtów dysku:
Kod: Zaznacz cały
00000000: EB 48 90 01 B5 01 4C 49 4C 4F 16 06 9A 64 0E 48 |.H....LILO...d.H|
00000010: 00 00 00 00 AE DC 0D 48 C4 31 EE 2D 01 00 80 60 |.......H.1.-...`|
00000020: 3F 77 EA 00 B8 C0 07 8E D0 BC 00 08 FB 52 53 06 |?w...........RS.|
00000030: 56 FC 8E D8 31 ED 60 B8 00 12 B3 36 CD 10 03 02 |V...1.`....6....|
00000040: FF 00 00 20 01 00 00 00 00 02 FA 90 90 F6 C2 80 |... ............|
00000050: 75 02 B2 80 EA 59 7C 00 00 31 C0 8E D8 8E D0 BC |u....Y|..1......|
00000060: 00 20 FB A0 40 7C 3C FF 74 02 88 C2 52 BE 7F 7D |. ..@|<.t...R..}|
00000070: E8 34 01 F6 C2 80 74 54 B4 41 BB AA 55 CD 13 5A |.4....tT.A..U..Z|
00000080: 52 72 49 81 FB 55 AA 75 43 A0 41 7C 84 C0 75 05 |RrI..U.uC.A|..u.|
00000090: 83 E1 01 74 37 66 8B 4C 10 BE 05 7C C6 44 FF 01 |...t7f.L...|.D..|
000000A0: 66 8B 1E 44 7C C7 04 10 00 C7 44 02 01 00 66 89 |f..D|.....D...f.|
000000B0: 5C 08 C7 44 06 00 70 66 31 C0 89 44 04 66 89 44 |\..D..pf1..D.f.D|
000000C0: 0C B4 42 CD 13 72 05 BB 00 70 EB 7D B4 08 CD 13 |..B..r...p.}....|
000000D0: 73 0A F6 C2 80 0F 84 EA 00 E9 8D 00 BE 05 7C C6 |s.............|.|
000000E0: 44 FF 00 66 31 C0 88 F0 40 66 89 44 04 31 D2 88 |D..f1...@f.D.1..|
000000F0: CA C1 E2 02 88 E8 88 F4 40 89 44 08 31 C0 88 D0 |........@.D.1...|
00000100: C0 E8 02 66 89 04 66 A1 44 7C 66 31 D2 66 F7 34 |...f..f.D|f1.f.4|
00000110: 88 54 0A 66 31 D2 66 F7 74 04 88 54 0B 89 44 0C |.T.f1.f.t..T..D.|
00000120: 3B 44 08 7D 3C 8A 54 0D C0 E2 06 8A 4C 0A FE C1 |;D.}<.T.....L...|
00000130: 08 D1 8A 6C 0C 5A 8A 74 0B BB 00 70 8E C3 31 DB |...l.Z.t...p..1.|
00000140: B8 01 02 CD 13 72 2A 8C C3 8E 06 48 7C 60 1E B9 |.....r*....H|`..|
00000150: 00 01 8E DB 31 F6 31 FF FC F3 A5 1F 61 FF 26 42 |....1.1.....a.&B|
00000160: 7C BE 85 7D E8 40 00 EB 0E BE 8A 7D E8 38 00 EB ||..}.@.....}.8..|
00000170: 06 BE 94 7D E8 30 00 BE 99 7D E8 2A 00 EB FE 47 |...}.0...}.*...G|
00000180: 52 55 42 20 00 47 65 6F 6D 00 48 61 72 64 20 44 |RUB .Geom.Hard D|
00000190: 69 73 6B 00 52 65 61 64 00 20 45 72 72 6F 72 00 |isk.Read. Error.|
000001A0: BB 01 00 B4 0E CD 10 AC 3C 00 75 F4 C3 00 00 00 |........<.u.....|
000001B0: 00 00 00 00 00 00 00 00 C4 31 EE 2D CF C9 |.........1.-.. |
Kod: Zaznacz cały
00000000: EB 48 90 00 00 00 00 00 00 00 00 00 00 00 00 00 |.H..............|
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 02 |................|
00000040: FF 00 00 80 01 00 00 00 00 08 FA EB 07 F6 C2 80 |................|
00000050: 75 02 B2 80 EA 59 7C 00 00 31 C0 8E D8 8E D0 BC |u....Y|..1......|
00000060: 00 20 FB A0 40 7C 3C FF 74 02 88 C2 52 BE 7F 7D |. ..@|<.t...R..}|
00000070: E8 34 01 F6 C2 80 74 54 B4 41 BB AA 55 CD 13 5A |.4....tT.A..U..Z|
00000080: 52 72 49 81 FB 55 AA 75 43 A0 41 7C 84 C0 75 05 |RrI..U.uC.A|..u.|
00000090: 83 E1 01 74 37 66 8B 4C 10 BE 05 7C C6 44 FF 01 |...t7f.L...|.D..|
000000A0: 66 8B 1E 44 7C C7 04 10 00 C7 44 02 01 00 66 89 |f..D|.....D...f.|
000000B0: 5C 08 C7 44 06 00 70 66 31 C0 89 44 04 66 89 44 |\..D..pf1..D.f.D|
000000C0: 0C B4 42 CD 13 72 05 BB 00 70 EB 7D B4 08 CD 13 |..B..r...p.}....|
000000D0: 73 0A F6 C2 80 0F 84 EA 00 E9 8D 00 BE 05 7C C6 |s.............|.|
000000E0: 44 FF 00 66 31 C0 88 F0 40 66 89 44 04 31 D2 88 |D..f1...@f.D.1..|
000000F0: CA C1 E2 02 88 E8 88 F4 40 89 44 08 31 C0 88 D0 |........@.D.1...|
00000100: C0 E8 02 66 89 04 66 A1 44 7C 66 31 D2 66 F7 34 |...f..f.D|f1.f.4|
00000110: 88 54 0A 66 31 D2 66 F7 74 04 88 54 0B 89 44 0C |.T.f1.f.t..T..D.|
00000120: 3B 44 08 7D 3C 8A 54 0D C0 E2 06 8A 4C 0A FE C1 |;D.}<.T.....L...|
00000130: 08 D1 8A 6C 0C 5A 8A 74 0B BB 00 70 8E C3 31 DB |...l.Z.t...p..1.|
00000140: B8 01 02 CD 13 72 2A 8C C3 8E 06 48 7C 60 1E B9 |.....r*....H|`..|
00000150: 00 01 8E DB 31 F6 31 FF FC F3 A5 1F 61 FF 26 42 |....1.1.....a.&B|
00000160: 7C BE 85 7D E8 40 00 EB 0E BE 8A 7D E8 38 00 EB ||..}.@.....}.8..|
00000170: 06 BE 94 7D E8 30 00 BE 99 7D E8 2A 00 EB FE 47 |...}.0...}.*...G|
00000180: 52 55 42 20 00 47 65 6F 6D 00 48 61 72 64 20 44 |RUB .Geom.Hard D|
00000190: 69 73 6B 00 52 65 61 64 00 20 45 72 72 6F 72 00 |isk.Read. Error.|
000001A0: BB 01 00 B4 0E CD 10 AC 3C 00 75 F4 C3 00 00 00 |........<.u.....|
000001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 12 |..............$.|
000001C0: 0F 09 00 BE BD 7D 31 C0 CD 13 46 8A 0C 80 F9 00 |.....}1...F.....|
000001D0: 75 0F BE DA 7D E8 CF FF EB 9D 46 6C 6F 70 70 79 |u...}.....Floppy|
000001E0: 00 BB 00 70 B8 01 02 B5 00 B6 00 CD 13 72 D7 B6 |...p.........r..|
000001F0: 01 B5 4F E9 E6 FE 00 00 00 00 00 00 00 00 55 AA |..O...........U.|
Może właśnie te strzępy LILO powodują tak długie ładowanie się stage1.5?
2. Problem z niedziałającym odliczaniem i automatycznym uruchomieniem wybranej pozycji.
Drugi problem to niedziałające uruchamiania domyślnej pozycji. Odliczanie mam ustawione na 3 sekundy.
Poniżej listy systemów pokazuje się napis:
Kod: Zaznacz cały
The highlighted entry will be booted automatically in 3 seconds.
Zrobiłem mały test. GRUB ładuje podany system, tylko wtedy, gdy plik /boot/grub/menu.lst ma następującą – chyba najmniejszą możliwą – treść:
Kod: Zaznacz cały
default 0
timeout 0
title Debian GNU/Linux, kernel 2.6.26-1-686
kernel (hd0,2)/boot/vmlinuz-2.6.26-1-686 root=/dev/hda3 ro edd=off
initrd (hd0,2)/boot/initrd.img-2.6.26-1-686
Kod: Zaznacz cały
default 0
timeout 1
title Debian GNU/Linux, kernel 2.6.26-1-686
kernel (hd0,2)/boot/vmlinuz-2.6.26-1-686 root=/dev/hda3 ro edd=off
initrd (hd0,2)/boot/initrd.img-2.6.26-1-686
Czyli wystarczy, że parametr timeout ma wartość inną niż 0 i już przestaje działać. Czy to jest jakiś błąd GRUB-a związany z "parsowananiem" pliku konfiguracyjnego, czy może jakiś problem sprzętowy u mnie: w BIOS-ie, procesorze, płycie głównej?
A może wynika to z pozostałości po LILO, o których pisałem wcześniej?
Jeszcze mała historyjka związana z plikami /boot/grub/*stage*. Kilka miesięcy temu dysk twardy upadł z wysokości około 30 cm na podłogę (nie wiem, czy wtedy pracował, ale po kłopotach, które z tego wynikają, przypuszczam, że tak). Po tym GRUB się nie ładował (nie pamiętam numeru błędu) i zepsuł się system plików (który naprawiłem poprzez reiserfsck --rebuild-tree). GRUB-a naprawiłem kopiując pliki stage1, reiserfs_stage1_5, stage2 z innego systemu (nie pamiętam już, czy był to Knoppix czy Ubuntu), a stare zostawiłem zmieniając ich nazwę, bo myślałem, że znajdowały się na uszkodzonych sektorach dysku.
Potem pomyślałem, że może te pliki (pochodzące z innego systemu) są niekompatybilne z częścią GRUB-a zapisaną w MBR, więc przekopiowałem je z paczki grub_0.97-47lenny2_i386.deb. Dodatkowo (bo wydaje mi się, że ta część zapisana w MBR nie szuka stage1.5 po nazwie pliku lecz po sektorze) wykonałem grub-install, żeby nowe położenie na dysku tego pliku zostało zapisane do MBR. Po tym jądro nie uruchamiało się, tylko wypisywało komunikat, żeby dodać parametr edd=off. Dodałem to na stałe do menu.lst i teraz się ładuje.
Według Wikipedii EDD to: Enhanced Disk Drive, aka INT13h Extensions, information provided by a computer BIOS to the operating system. Czyli chyba jednak coś z BIOS-em… Tylko dziwne, że wcześniej działało.