To mnie naprawdę denerwuje. Mam Gentoo i Ubuntu, oba z Grub2. Gentoo ma dedykowaną /boot
partycję, podczas gdy Ubuntu nie. Mam menuentry
Gentoo /etc/grub.d/40_custom
do uruchomienia Ubuntu (a Ubuntu uruchamia się OK).
Ponieważ Ubuntu zawiera Grub, chcę do niego załadować, zamiast utrzymywać mój wpis, który ustawia root, jądro, initrd i inne. Oto, co mam dla programu ładującego łańcuch (Ubuntu jest włączony /dev/sda4
i już tam zainstalowałem Grub):
menuentry 'Chainloader' {
insmod chain
set root=(hd0,4)
chainloader +1
}
Daje mi error: Invalid signature
i nie znalazłem rozwiązania. Czy ktoś może coś wskazać?
To wynik </dev/sda4 head -c 512 | hd
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
To wynik fdisk -l
. /dev/sda1
jest /boot
z Gentoo, Gentoo jest w /dev/sda2
, Ubuntu jest w /dev/sda4
. Ubuntu też /boot
jest /dev/sda4
gotowe.
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe001152b
Device Boot Start End Blocks Id System
/dev/sda1 1 9 72261 83 Linux
/dev/sda2 10 13064 104864287+ 8e Linux LVM
/dev/sda4 * 18152 19457 10490445 83 Linux
Nie ma błędu z grub-install /dev/sda4 --no-floppy --force
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea..
/usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
/dev/sda4
. Czy masz więcej niż jeden dysk? Jaka jest twoja tabela partycji? Proszę zamieścić dane wyjściowefdisk -l
i wiadomości zgrub-install /dev/sda4 --no-floppy --force
.Odpowiedzi:
Możesz załadować GRUB2 z GRUB2, po prostu wypróbowałem go w sposób opisany i działa. Jednak podane informacje sprawiają, że wygląda na to, że obraz rozruchowy nie został osadzony w MBR dysku (inaczej nie byłyby to same zera).
Spróbowałbym tego, chociaż nie używa GRUB2 z Ubuntu (tylko plik konfiguracyjny). Możesz utworzyć pozycję menu w pliku konfiguracyjnym Gentoo GRUB2, który ładuje plik konfiguracyjny Ubuntu. Są dwa sposoby, aby to zrobić.
Ten, którego użyłbym, to normalne polecenie, które pozwala określić plik konfiguracyjny do załadowania w trybie normalnym. Jeśli pójdziesz tą drogą, istnieje polecenie o nazwie normal_exit, które możesz dodać jako niestandardowy element w konfiguracji Ubuntu, który pozwoli ci powrócić do konfiguracji Gentoo.
Inną opcją jest polecenie configfile , które pozwala określić alternatywny plik konfiguracyjny do załadowania. Wydaje się jednak, że trudniej byłoby „wycofać się” z tej opcji.
Więcej informacji na temat tych poleceń można znaleźć tutaj .
źródło
Początkowa część procesu rozruchu polega na załadowaniu kodu z pierwszego sektora dysku twardego, tzw. Master Boot Record (MBR) . Zwykle Grub jest zapisywany w tym pierwszym sektorze dysku twardego, a nie w pierwszym sektorze wstrzymania / rozruchu partycji. Można to jednak normalnie zmienić podczas instalacji Linuksa, ale w nowoczesnych procedurach instalacyjnych jest to często ukryte.
Mówisz, że masz gruba zainstalowanego na / dev / sda4, jednak twoja konfiguracja wygląda poprawnie, a wysłany komunikat o błędzie sugeruje, że Grub może nie być poprawnie zainstalowany na partycji, którą chcesz załadować. Powinieneś uruchomić system na Gentoo, a następnie chroot na partycję Ubuntu. Upewnij się, że / boot poprawnie wskazuje teraz Ubuntu- / boot, a nie Gentoo! Teraz zainstalować Grub 2 w pierwszym sektorze partycji Ubuntu / dev / sda4:
grub-install /dev/sda4 --no-floppy
.Jak zawsze, majstrując przy MBR i partycjach, przed rozpoczęciem upewnij się, że masz funkcjonalną i aktualną kopię zapasową.
źródło
/dev/sda4
(ostatnie dwa bajty muszą być0x55 0xaa
). Czy możesz opublikować wynik</dev/sda4 head -c 512 | hd
?grub-install /dev/sda4 --no-floppy --force
, w przeciwnym razie będą jakieś skargi na listyCzy sda4 nie będzie (hd0,3) w grub, czy też coś takiego zmieniło się w grub2?
źródło