Jak utworzyć środowisko wielodostępowe za pomocą LVM dla systemów operacyjnych * buntu na dysku systemowym sformatowanym w technologii GPT w systemie opartym na UEFI?


9

Moim powodem korzystania z LVM jest to, że ponownie instaluję, aktualizuję i ogólnie popsuję instalacje mojego systemu operacyjnego tak bardzo, że odkryłem, że LVM zapewnia mi fantastyczną elastyczność w przenoszeniu, rozszerzaniu, klonowaniu i tworzeniu kopii zapasowych moich partycji systemu operacyjnego, bez ryzyka. z innymi metodami partycjonowania. Sprawia to jednak, że wielokrotne uruchamianie systemów operacyjnych jest czasem trochę skomplikowane i nieprzewidywalne, szczególnie na nowszym sprzęcie, gdzie proces nabiera innego poziomu złożoności.

Mówię o nowych płytach głównych UEFI (w przeciwieństwie do BIOS-u), które pozwalają wykorzystać pełny potencjał dysków twardych 3 TB + i uruchomić się z nich (sformatowane w GPT w przeciwieństwie do MBR). Sprawy mogą się niesamowicie skomplikować i zepsuć, ponieważ za każdym razem, gdy instalujesz nowy system operacyjny na swoim komputerze, nadpisuje on pliki bootloadera EFI (.efi) z poprzedniej instalacji i kończysz się serią uszkodzonych wpisów w twoim EFI Lista rozruchowa „BIOS” i mnóstwo zbędnych programów ładujących gruba porozrzucanych po twoich partycjach. To obraża mnie na tak wielu poziomach, w tym nie tylko estetycznych.

Odpowiedzi:


6

UWAGA: taka była odpowiedź PO. Przeniosłem go tutaj jako CW, więc nie został zamknięty. Jeśli mod widzi to, prosimy o ponowne przekazanie własności OP jako odpowiedzi własnej.

Poniżej szczegółowo opisuję, jak sprawić, by to wszystko działało nieco harmonijnie i do pewnego stopnia uporządkować bałagan.

Część pierwsza: instalacja.

Pamiętaj, że jeśli chcesz mieć system Windows 7 (lub 8?) Zainstalowany na swoim komputerze, prawdopodobnie będziesz musiał go najpierw zainstalować , najlepiej na własnym dysku twardym, i nie będziesz mógł go zainstalować grupa woluminów logicznych. Wynika to z faktu, że instalator GPT / EFI dla systemu Windows 7 jest bardzo prosty i nie pozwala robić takich rzeczy, jak tutaj. Po instalacji systemu Windows można zmienić rozmiar i partycjonowanie, dodając partycje potrzebne do instalacji z wieloma rozruchami. Partycja systemowa EFI utworzona przez system Windows może zawsze zostać ponownie wykorzystana do instalacji systemu Linux, przy użyciu odmiany metody opisanej poniżej.

Po pierwsze , pomaga wyczyścić zamierzony dysk systemowy za pomocą gparted (lub podobnego) i zainicjować go jako dysk GPT, zanim zrobisz cokolwiek innego. Jeśli trochę denerwujesz się używaniem nie graficznego partycjonera do skonfigurowania dysku od zera, jest to zdecydowanie warte zachodu i można to łatwo zrobić ze standardowego instalatora pulpitu USB lub CD na żywo. Nie rób tego w systemie Windows. Nie jestem pewien, czy jest to absolutnie konieczne, ale właśnie to zrobiłem. Na tym etapie możesz również przeprowadzić podstawowe partycjonowanie dla partycji innych niż LVM, ponieważ nie zaszkodzi to i zapewni ramy dla właściwej instalacji.

Teraz wypal instalacyjne dyski CD / USB. Jeśli używasz systemu Ubuntu Alternate Desktop ISO (zalecane), musisz nagrać go na płytę CD, ponieważ po prostu nie będzie działać na pamięci USB. Gdy jest używany do instalacji LVM, zatrzymuje się z błędem krytycznym, gdy próbuje rozpocząć ładowanie i instalowanie oprogramowania za pomocą aptitude / tasksel, więc użyj płyty CD, jeśli wiesz, co jest dla Ciebie dobre!

  • Ubuntu Server instaluje się absolutnie dobrze z USB we wszystkich przypadkach (AFAIK), ale uważam, że jeśli chcę zbudować system Ubuntu / Mythbuntu na serwerze, wprowadza on wszelkiego rodzaju niezamierzone dziwactwa, które następnie wymagają czasu. Więc trzymaj się Pulpitu, jeśli o to ci chodzi.

  • Quantal (12.10) ma LVM jako opcję w graficznym instalatorze (co jest świetne!), Więc alternatywne ISO zostało usunięte. Stwierdziłem jednak, że interfejs ręcznego partycjonowania jest nieelastyczny, brakuje mu opcji LVM i po prostu nie działa w przypadku wielokrotnego rozruchu. Być może było to spowodowane wspomnianym wcześniej problemem z USB, ale szczerze mówiąc, miałem tak wiele problemów z systemem Quantal, że próbowałem, że dość szybko zrezygnowałem i wróciłem do Precise (12.04.1).

  • Inną główną opcją jest użycie instalatora Net-boot, którego nie mam żadnego prawdziwego doświadczenia (z wyjątkiem mojego Raspberry Pi), ale uważam, że istnieją mini ISO z instalatorami tekstowymi i GUI (GTK), które można spalić i uruchomić. Ściągają one większość plików instalacyjnych bezpośrednio z repozytorium i są wysoce konfigurowalne.

Następnie należy uruchomić system z dysku CD lub USB przy użyciu wpisu rozruchu UEFI z poziomu „BIOS” lub menu rozruchu (zwykle jeden z [F8] - [F12] na klawiaturze).

Zostawię to tobie, aby przejść przez wstępne procedury instalacji, ale kiedy przejdziesz do części partycjonowania, wybierz Ręczne partycjonowanie, a następnie utwórz (lub zmodyfikuj, jeśli już niektóre z nich utworzyłeś) te partycje:

  1. Pojedyncza partycja o rozmiarze 200 MB, FAT32, partycja systemowa EFI, o nazwie / oznaczona „EFI”, rozruchowa, format.

  2. Kilka partycji: rozmiar 256 MB, EXT2, rozruch, format;

    • Powinieneś nazwać je / oznaczyć każdym z nich dla systemu operacyjnego, który będą reprezentować, tj. „OS_01_Boot” ... „OS_03_Boot” ... itd.

    • Zacznij od zamontowania pierwszego z nich jako „/ boot”, a wszystkich pozostałych jako „nie używaj”.

    • Utwórz jedną partycję dla każdego systemu operacyjnego, który zamierzasz zainstalować.

  3. Jedna partycja, zajmująca resztę miejsca na dysku, jako wolumin dla LVM.

    • Skonfiguruj LVM na woluminie, który właśnie podzieliłeś na partycje, tworząc grupę woluminów dla wszystkich systemów operacyjnych, nadając mu odpowiednią nazwę i dużo miejsca dla nich wszystkich. Polecam faktoring w co najmniej 40 GB dla każdego, w zależności od rodzaju instalacji, którą planujesz dla każdego.
  4. Utwórz jeden wolumin logiczny tego samego rozmiaru co fizyczna pamięć RAM w systemie, tj. 8 GB, nazwij go „Zamień”, użyj jako wymiany, sformatuj.

  5. Utwórz jeden wolumin logiczny dla każdego systemu operacyjnego w grupie woluminów, zmieniając ich rozmiar zgodnie z powyższym opisem i nadając każdemu z nich nazwę, np. „Ubuntu_12.04” itp.

    • Sformatuj każdą z nich do EXT4, nazywając / oznaczając partycje w miarę upływu czasu.

    • Zacznij od zamontowania pierwszego z nich jako „/” (root), a wszystkich pozostałych jako „nie używaj”.

Otóż ​​to! Teraz masz partycję wymiany, „/ boot” i „/” (root) dla swojego systemu i części zamienne do kolejnych instalacji. Możesz teraz zatwierdzić zmiany w tabeli partycji i kontynuować resztę instalacji.

Jeśli chodzi o instalację następnego systemu operacyjnego, upewnij się, że zamontujesz odpowiednio następną partycję „/ boot” i „/” (root). Upewnij się, że zaznaczyłeś wszystkie pozostałe jako „nie używaj”, w tym te, których użyłeś ostatnio.

Część druga: Tworzenie kopii zapasowych plików rozruchowych UEFI.

Jak tylko uruchomisz nowy system operacyjny, musisz wykonać kopię zapasową modułu ładującego UEFI do późniejszego użycia i upewnić się, że nie zostanie on nadpisany podczas kolejnej instalacji. Można go znaleźć w „/ boot / efi / EFI”, w jego własnym folderze, zwykle o nazwie „ubuntu”. Plik, o którym mowa, będzie miał nazwę podobną do „grubx64.efi”, w zależności od architektury komputera; więc „/boot/efi/EFI/ubuntu/grubx64.efi”, dla mojego komputera.

W moim przypadku, aby wykonać kopię zapasową, skopiowałem ją za pomocą konsoli, w następujący sposób:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

Zdecydowanie opłaca się zrobienie kolejnej kopii w folderze domowym lub w innym bezpiecznym miejscu, na wszelki wypadek:

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

Po wykonaniu tej czynności możesz bezpiecznie zainstalować następny system operacyjny (zgodnie z powyższą radą), który najprawdopodobniej nadpisze oryginalny plik i folder, a także stanie się domyślnym wpisem rozruchowym UEFI w „BIOS”. Powtórz ten proces jeszcze raz i tyle razy, ile to konieczne, nadając każdemu folderowi inną, ale reprezentatywną nazwę:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

Część trzecia: Modyfikowanie wpisów UEFI w „BIOS” UEFI.

W terminalu wpisz:

sudo efibootmgr

Powinieneś otrzymać takie dane wyjściowe:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

To naprawdę dość oczywiste. Powinien odzwierciedlać to, co widzisz na liście rozruchowej systemu BIOS.

Przeczytaj:

man efibootmgr

aby zobaczyć, co robią polecenia, zmodyfikuj poniższe polecenia przykładowe, aby dodać i usunąć wpisy rozruchu.

Najpierw usuń wiersz „Boot0000 * ubuntu” za pomocą:

sudo efibootmgr -b 0000 -B

Wynik:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Następnie dodamy kilka wpisów dla trzech systemów operacyjnych.

System operacyjny nr 1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \\EFI\\Ubuntu_12.04.1\\grubx64.efi

Wynik:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

OS nr 2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \\EFI\\Server_12.04.1\\grubx64.efi

Wynik:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

OS # 3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \\EFI\\Mythbuntu_12.04.1\\grubx64.efi

Wynik:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

Aby zmienić kolejność rozruchu:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

Wynik:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Gotowy!

W grę wchodzi pewna dziwna składnia, szczególnie wokół ścieżek plików, ale jest całkiem prosta, jeśli masz dobry przewodnik (który mam nadzieję, że tak jest).

Dziękuje za przeczytanie. :)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr


Dzięki, AbrahamVanHelpsing. Próbowałem odpowiedzieć samemu, ale myślę, że jestem tu zbyt wielkim noobem. Spróbuję to później uporządkować; formatowanie jest okropne! Jest 1:30 rano, więc na razie się poddaję!
Rich.T.

2

Każdy instalator systemu operacyjnego, który usuwa pliki modułu ładującego EFI poprzednich lub innych systemów operacyjnych, jest poważnie uszkodzony. Ubuntu miał ten problem w przeszłości, ale podobno został on naprawiony w wersji 12.04. (Mówię „rzekomo”, ponieważ widziałem kilka raportów o problemach, które sprawiają, że myślę, że błąd może nadal występować w większości systemów.) To powiedziawszy, tworzenie kopii zapasowej partycji systemowej EFI (ESP) przed nowa instalacja systemu operacyjnego jest przydatną polisą ubezpieczeniową. Kopia zapasowa na poziomie pliku powinna być wystarczająca, ponieważ EFI nie polega na kodach wyciśniętych w sektorach rozruchowych. (To ma polegać na partycji GUID, choć, więc jeśli coś usuwa ESP i tworzy nowe wpisy EFI jest boot loader może przestać działać.)

Mówiąc ogólnie, dla twojego typu konfiguracji zalecam utworzenie ESP, tyle /bootpartycji, ile uważasz, że może być potrzebne, oraz duża partycja LVM. Jeśli spodziewasz się zainstalować dystrybucje Linuksa razem z innymi systemami operacyjnymi, zrób trzy lub cztery partycje LVM o różnej wielkości, które następnie scalisz w jedną grupę woluminów; w ten sposób możesz wyciągnąć jedną partycję (wolumin logiczny) ze swojej grupy woluminów i poświęcić ją systemowi operacyjnemu niż Linux. /bootPartycje inne niż LVM dają opcję użycia programów ładujących, które nie rozumieją LVM (to znaczy programów ładujących innych niż GRUB2).

Podczas instalowania nowego systemu operacyjnego prawdopodobnie zainstaluje on własny moduł ładujący jako domyślny. W złożonej konfiguracji, takiej jak Twoja, jest to prawdopodobnie niewłaściwa czynność przez większość czasu. Aby to poprawić, warto mieć dysk flash USB lub dysk CD-R z zainstalowanym preferowanym programem ładującym. Coś, co może automatycznie wykryć inne programy ładujące, takie jak rEFIt lub jego pochodna rEFInd, prawdopodobnie będzie dobrze działać w tym kontekście. (Pamiętaj, że pliki binarne w witrynie rEFIt działają tylko na komputerach Mac; rEFInd jest bezpieczniejszym wyborem dla komputerów opartych na UEFI.) Alternatywnie lub dodatkowo, sposób uruchomienia powłoki EFI może być pomocny, ponieważ możesz przenosić pliki, dostosuj opcje rozruchu i napraw szereg problemów z powłoki EFI. Wiele programów ładujących i menedżerów rozruchowych EFI może uruchamiać powłoki EFI. (Widziećta wiki Arch Arch Linux do pobierania linków do niektórych powłok EFI.) Zarówno obrazy rEFIt, jak i rEFInd CD zawierają powłoki EFI.


2

Nie musisz używać EFI do uruchamiania dysku 2 + TB; wystarczy użyć GPT i utworzyć partycję bios_grub 1 MB poniżej znaku 2Tb. Jeśli uważasz, że EFI jest problematyczny, może to działać lepiej dla Ciebie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.