Mam dwie sugestie ...
Opcja nr 1: Oddzielne ESP
Pod EFI moduł ładujący znajduje się na „ partycji systemowej EFI ” (ESP). Umieszczam słowo „the” w cudzysłowie, ponieważ nie ma reguły, która mówi, że jesteś ograniczony do jednego ESP. Jeśli utworzysz dwa ESP na dysku twardym, możesz użyć jednego z nich do pierwszej instalacji, a drugiego do drugiej instalacji. Powinno to działać dość płynnie, chociaż będziesz musiał ręcznie utworzyć partycje (używając opcji „Coś innego” podczas instalacji), przynajmniej dla drugiej instalacji Ubuntu.
Jednym z problemów związanych z tym podejściem jest to, że chociaż specyfikacja EFI wyraźnie stwierdza, że możesz utworzyć tyle ESP, ile chcesz, niektóre oprogramowanie może się przez to pomylić. Jednym z widocznych przykładów tego jest instalator Windows, przynajmniej przez Windows 7 (nie wiem o Windows 8 lub nowszym); gdy instalator systemu Windows 7 widzi dysk z dwoma ESP, odpryskuje i robi dziwne rzeczy. IIRC, nie kończy poprawnie instalacji. Można sobie wyobrazić, że narzędzia do naprawy systemu Windows miałyby ten sam problem. Jeśli nie uruchamiasz systemu Windows w tym systemie, nie powinno to stanowić problemu. Jeśli sąpodczas uruchamiania systemu Windows powinieneś po prostu zdawać sobie sprawę z problemu, ponieważ możesz łatwo go rozwiązać, tymczasowo zmieniając kod typu ESP (ów) innych niż Windows, jeśli napotkasz problemy. Należy pamiętać, że system Windows uruchomi się dobrze na dysku z wieloma ESP; to tylko instalator dusi się na takich dyskach.
Innym problemem jest sposób przełączania się między dwiema dystrybucjami. Konieczne może być dostosowanie jednego lub obu ustawień GRUB instalacji przy użyciu narzędzia takiego jak GRUB Customizer. Inną (ale nie niekompatybilną) opcją byłoby użycie własnego menedżera rozruchowego oprogramowania wewnętrznego do przełączania się między dwiema instalacjami GRUB-a i użycie każdej z nich do uruchomienia tylko własnej wersji Ubuntu.
Opcja # 2: Porzuć GRUB (lub przynajmniej narzędzia GRUB Ubuntu)
Problem z GRUB-em związany z twoją sytuacją polega na tym, że masz dwie instalacje i narzędzia konserwacyjne GRUB-a mogą się pomylić przez tę konfigurację. Ta obserwacja prowadzi do oczywistego rozwiązania, że po prostu nie powinieneś używać tych narzędzi. Istnieje kilka innych programów ładujących EFI dla systemu Linux, z których większość jest łatwiejsza w obsłudze niż GRUB. Możesz skonfigurować ELILO, SYSLINUX, łataną wersję GRUB Fedory, Gummiboot lub rEFInd i zarządzać obiema instalacjami ręcznie. W rzeczywistości, ponieważ funkcja REFInd wykrywa jądra przy każdym uruchomieniu, funkcja REFInd powinna być prawie bezobsługowa po skonfigurowaniu. Alternatywnie, ale w podobnym stylu, możesz ręcznie edytować grub.cfg
plik, aby robić to, co chcesz, zamiast polegać na skryptach instalacyjnych GRUB.
Oprócz rEFInd, wszystkie te narzędzia będą wymagać wprowadzenia zmian w konfiguracji przy każdej aktualizacji jądra, co będzie przeciągnięciem. Pojawia się również pytanie, kiedy i jak zainstalować dodatkowy program rozruchowy. Prawdopodobnie odłożyłbym go do czasu drugiej instalacji Ubuntu, ponieważ każda instalacja zarejestruje własną kopię GRUB-a jako domyślnego modułu ładującego i chcesz zastąpić tę domyślną.
Zauważ również, że żadne z tych narzędzi nie może odczytać jądra z zaszyfrowanego systemu plików lub z LVM, więc musisz mieć osobną niezaszyfrowaną /boot
partycję dla każdej instalacji Ubuntu. W ten sposób większość instrukcji, które widziałem, mówi o konfigurowaniu zaszyfrowanej instalacji Ubuntu, więc prawdopodobnie nie jest to wielka sprawa, chyba że chcesz grać na „krwawej krawędzi” szyfrowania dysku.
Niektóre moduły ładujące EFI mają dodatkowe określone wymagania dotyczące partycjonowania lub systemu plików. Przede wszystkim ELILO, SYSLINUX i gummiboot wymagają, aby jądro znajdowało się na partycji FAT, a ESP działa w tym celu najlepiej. Możesz to zrobić, instalując ESP w /boot
, ale jest to niepewne rozwiązanie w Ubuntu, ponieważ niektóre aktualizacje pakietów wymagają dowiązań symbolicznych. Będziesz miał również problem z zrobieniem tego z dwiema osobnymi instalacjami Ubuntu, ponieważ obie próbowałyby ubiegać się o te same pliki. (W tym przypadku „ESP” naprawdę oznacza „partycję, z której uruchomiono moduł ładujący”, więc w tym przypadku możesz mieć tylko jedną ESP.) GRUB Legacy i rEFInd są bardziej elastyczni w tej kwestii.
Moja rekomendacja
Osobiście użyłbym do tego rEFInd - ale utrzymując rEFInd, nie jestem do końca bezstronny. W rzeczywistości mam komputer, który uruchamia się między trzema instalacjami Ubuntu, a rEFInd przełącza się między nimi w porządku. Ten konkretny system nie używa szyfrowania, ale wątpię, czy spowoduje to jakieś nowe problemy z perspektywy rEFInd.
To powiedziawszy, osobne ESP również powinny działać dobrze, z zastrzeżeniem, że może być konieczne użycie GRUB Customizer, aby dostosować ustawienia co najmniej jednej z tych kopii GRUB.
Oto kroki, których użyłem do podwójnego rozruchu z dwoma systemami Ubuntu zaszyfrowanymi przez LUKS na jednym dysku twardym z UEFI przy użyciu opcji 2 zalecanej wcześniej przez Rod Smitha. Było to szczególnie z Ubuntu 18.04.1-desktop. Szyfrowanie katalogu domowego nie jest już podawane jako opcja podczas instalacji, ponieważ istnieją obawy dotyczące niezawodności i konserwacji eCryptfs. Zamiast tego zaleca się używanie LUKS, więc myślę, że to najlepsza opcja, aby mieć wielu użytkowników z zaszyfrowanymi partycjami domowymi.
źródło
Używam następującego podejścia z jednym ESP:
Utworzyłem dodatkowe programy ładujące dla każdego systemu operacyjnego
używając innego
ID
dla każdego systemu operacyjnego.Przykład:
Mam zainstalowane Ubuntu 16.04 i Ubuntu 18.04. Uruchamiam Ubuntu 16.04 i uruchamiam
Następnie z bootowanego do Ubuntu 18.04 uruchamiam
W ustawieniach UEFI widzę nowe pozycje startowe z nazwiskami
Ubuntu1604
iUbuntu1804
i zmienić kolejność startową, aby ustawić jeden z nowych zapisów do pierwszego miejsca.Widzę także foldery o tych nazwach w ESP.
Gdy aktualizacja systemu zostanie dostarczona z nową wersją gruba, ponownie zainstaluje nową instancję gruba w
ubuntu
folderze na ESP, nie wpłynie to na programy ładujące, które sam stworzyłem, ale muszę ponownie zmienić kolejność rozruchu ponieważubuntu
wejście zostanie przesunięte na pierwsze miejsce w kolejności rozruchu.Oto, co
efibootmgr -v
pokazuje moja konfiguracja:źródło
GRUB_DISTRIBUTOR="Bionic_18_04"
i ponowna instalacja grub używa tego jako domyślnego identyfikatora UEFI. Ale za każdym razem używa tylko /EFI/ubuntu/grub.cfg jako domyślnej lokalizacji do uruchamiania z nie nowego /EFI/bionic_18_04/grub.cfg.efibootmgr -v
które dodałem do mojej odpowiedzi. To działa. Możesz mieć dodatkowe zmiany, które ci to uniemożliwiają. To, co opisałem, jest jedyną rzeczą, którą robię, aby działało.