Instalacja 6 różnych systemów na jednym dysku twardym (Windows + Linux)


(Lysolus) #1

Witam,

 

Chcę zainstalować 6 systemów na jednym dysku twardym. Te systemy to: Windows 7, Windows Server 2012 R2, Windows 10, RHEL 6.5, RHEL 7.0, SLES 11 SP3. O i le sama instalacja każdego z systemów przebiegła pomyślnie to bootowanie każdego systemu już nie poszło tak łatwo. Napiszę może jeszcze jaki jest główny cel oraz konfiguracje partycji:

 

Dysk 250GB (ms_dos):

/dev/sda1 -> Windows 7                             (primary)

/dev/sda2 -> Windows Server 2012 R2      (primary)

/dev/sda3 -> Windows 10                           (primary)

/dev/sda4 ->                                               (extended)

       /dev/sda5 -> /boot        FAT32             (logical)

       /dev/sda6 -> SWAP                             (logical)

       /dev/sda7 -> SLES 11 SP3                  (logical)

       /dev/sda8 -> RHEL 7.0                        (logical)

       /dev/sda9 -> RHEL 6.5                        (logical)

 

Założenie jest takie aby w każdym systemie znajdował się skrypt który pyta o wybór systemu i tak modyfikuje grub.conf aby ten system się zbootował, właśnie dlatego potrzebuję /boot na osobnej partycji i FAT32.

Po instalacji RHEL 6.5 w grubie mam tylko RHEL oraz Other który bootuje Windows 10. Próbowałem ręcznie skopiować wpisy do odpowiedniego pliku jednak nie działa. Problemem jest też fakt iż RHEL 7.0 instaluje już GRUB2 a w nim wpisy wyglądają inaczej niż w GRUB.

Moje pytanie brzmi: Jak instalować te systemy aby na końcu GRUB widział i bootował wszystkie systemy? Nie chcę mieć GRUB2, bo tego nie da się "wyeksportować" na FAT32.


(nintyfan) #2

/boot montujesz do każdego systemu? Większość dystrybucji tworzy dowiązania symboliczne do jądra i ramdysku rozruchowego, co może stanowić problem podczas bootowania.


(Lysolus) #3

Próbowałem montować /boot do każdego z systemów ale także osobno i później zainstalować GRUB na /dev/sda5.

 

Jeszcze takie pytanie: czy na partycji /boot (/dev/sda5) muszą być pliki ramdysku i kernela żeby zbootować? Wydaje mi się że nie, ponieważ przed każdym bootowaniem jest określone root (hd0, x).


(roobal) #4

Grub2 przecież uruchamia wszystkie wymienione tu systemy bez problemu. To że starszy RHEL korzysta z Grub v1 nie znaczy, że Grub v2 go nie uruchomi.

Zainstaluj poprostu najnowszą wersję na samym końcu lub zainstaluj w dowolnej kolejności i ręcznie doinstaluj Grub, LiLo bądź inny program rozruchowy.

No nie da się, bo Linux nie ruszy z FAT32. Tak samo jak Windowsa nie zainstalujesz na Ext4. Jeśli masz różne wersje Gruba, to albo zrezygnuj ze współdzielonego /boot, albo zainstaluj Grub v1 na partycji (nie w MBR), a MBR zainstaluj Grub v2 i uruchamiaj Grub v1 z Grub v2. Nie powiem Ci jak to zrobić, ale myślę, że da się tak zrobić. Mimo wszystko, Grub2 powinien bez problemu uruchomić wszystkie systemy. Grub nie ma problemu nawet z uruchomieniem FreeBSD, o uruchamianiu systemów z obrazów ISO na dysku już nawet nie wspominam. Grub2 to nie tylko inne wspisy, ale również dodatkowe funkcje.


(Lysolus) #5

Współdzielony /boot to konieczność. Spróbuje jeszcze instalować systemy bez programu rozruchowego i na końcu zainstalować GRUB na /dev/sda5. Niestety nie zdążę zrobić tego dzisiaj, także do jutra.


(marcin82) #6

Wspólny boot to bardzo zły pomysł … “Redhatowate” tworzą linki symboliczne do vmlinuz i initrd.img. Pierwsza lepsza aktualizacja jądra i zrobi ci się tam bajzel …

 

W każdym z tych dwóch systemów (piszę tak, żeby była jasność):

/dev/sda7 -> SLES 11 SP3 (logical)
/dev/sda9 -> RHEL 6.5 (logical)

Gruba w wersji 0.97 zainstaluj odpowiednio w VBR /dev/sda7 oraz /dev/sda9.

 

Gruba2, którego dostarcza /dev/sda8 -> RHEL 7.0 (logical) zainstaluj w MBR dysku twardego /dev/sda.

 

Jakim wpisem np. /etc/grub.d/40_custom załadować Gruba1  z poszczególnych partycji znajdziesz tutaj:

http://www.gnu.org/software/grub/manual/grub.html#Multi_002dboot-manual-config .


(Lysolus) #7

@marcin82: Dzięki za pomysł, ale Twoje rozwiązanie mnie nie zadowala. Musi to być GRUB1 oraz musi być na osobnej partycji FAT32 żeby Windy go widziały.


(roobal) #8

No to tak się nie da. Jak chcesz mieć dostęp do tej partycji, to sformatuj ją na Ext2, a w Windows zainstaluj jakiś sterownik do obsługi Ext2.

Tak poza tym czemu upierasz się przy Grubv1? Przecież Grub2 uruchomi Ci zarówno RHEL6, RHEL7, jak i Windows 10? Jeśli chodzi Ci o to, że menu.lst jest dla Ciebie łatwiejsze w konfiguracji, to źle zarządzasz Grub2. Grub2 konfiguruje się w /etc/default/grub, a poszczególne sekcje w /etc/grub.d/. Pliku grub.cfg się nie rusza, nie bez powodu ma prawo tylko do odczytu.


(Lysolus) #9

Robiłem wcześniej takie rzeczy z przykładowo dwoma Windowsami i jednym linuksem i dało się. Była osobna partycja /boot na FAT32 (co prawda na początku była sformatowana jako EXT2, ale zrobiłem backup, sformatowałem jako FAT32 i przywróciłem backup). Dało też się zarządzać plikiem grub.conf z poziomu Windowsa i linuksa i wszystko było ok. Właśnie dlatego nie chcę GRUB2, bo tego dziada nie da się obsługiwać na FAT32.


(roobal) #10

Działa, bo Linux obsługuje FAT32, a bootloader zapisany jest i tak w MBR.

Próbowałeś przechowywać samą konfiguracją gruba na partycji FAT i wskazywać ją jako root dla Gruba? Obsługę FAT masz wkompilowaną na stałe czy jako moduł? Może Syslinux Cię zadowoli?


(Lysolus) #11

Tego nie próbowałem.

 

Obsługa FAT jest sdandardowa tzn nic z tym nie kombinowałem także jest domyślna.

 

Syslinuxa nigdy nie ogarniałem i wolałbym się trzymać rzeczy na których konfiguracji jako tako się znam. Wydaje mi się też ze zmiana programu uruchamiającego to zbyt pracochłonny zabieg szczególnie że mam GRUBa instalującego się z systemem.


(system) #12

Możesz pobawić się http://www.boot-us.com/


(Lysolus) #13

Problem rozwiązany. Najpierw zainstalowałem Windowsy na partycjach jak w pierwszym poście. Następnie linuksy. Na pierwszy ogień poszedł RHEL 7.0 z grub2. Wszystko instalowane na jednej partycji a nie np/boot podmontowany do /dev/sda5.

Następnie RHEL 6.5 - i tak samo, boot wewnątrz systemu a nie na osobnej partycji. Na koniec SLES 11 - w nim akurat ustawiłem zainstalowanie /boot na /dev/sda5/. Instalator wykrył wszystkie systemy oprócz RHEL 7.0. Tego pana musiałem dopisać ręcznie wzorując się na konfiguracji z RHEL 6.5. Aktualnie menu.lst wygląda tak: