To jest rzeczywiście możliwe .
Zanim przejdę dalej, instrukcje te są przeznaczone dla pustych partycji systemowych EFI (ESP) i prawdopodobnie zastąpią istniejące pliki lub nie będą działać zgodnie z oczekiwaniami. Przynajmniej rób kopie zapasowe!
Dodanie wymaganych partycji dla różnych platform
Platformy: starszy komputer, komputer z systemem UEFI, komputer Apple
Dodaj ESP do istniejącej instalacji za pomocą MBR
Musisz postępować zgodnie z tymi instrukcjami z innej instalacji lub nośnika na żywo.
Zainstaluj grub-efi-amd64-bin
pakiet. Spowoduje to zainstalowanie tylko potrzebnych zasobów. Nie zmieni twojej istniejącej instalacji w stylu MBR na UEFI i nie wywróci rzeczy do góry nogami.
Zmniejsz partycję Ubuntu w GParted, aby zrobić miejsce na ESP. Zalecane rozmiary ESP wynoszą od 100 MB do 500 MB, ale pliki utworzone zgodnie z tymi instrukcjami nie będą wymagały więcej niż 2 do 5 megabajtów.
Uwaga: nie powinno mieć znaczenia, gdzie ESP znajduje się na dysku, a zmniejszenie partycji Ubuntu o kilka megabajtów od końca powinno być szybkie i bezpieczne. Kurczenie się na początku nie jest bezpieczne . Jednym zastrzeżeniem jest to, że ESP powinien być partycją podstawową i nie może być częścią partycji rozszerzonej lub woluminu logicznego, numery partycji od 1 do 4 są w porządku, powyższe liczby wskazują na partycję rozszerzoną w tabelach partycji MBR.
Wybierz FAT32 jako system plików i ustaw flagę rozruchową.
Zamontuj właśnie utworzony ESP i skurcz główny system plików:
mkdir -p /mnt/esp
mount $esp_device /mnt/esp
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
Uwaga: Wymień $esp_device
i $root_device
przy czym odpowiednie urządzenia , np /dev/sdb2
a /dev/sdb1
. Punkty montowania /mnt/esp
i /mnt/rootfs
są tylko przykładami wybranymi do pracy z pozostałą częścią tej odpowiedzi.
Zainstaluj obraz EFI GRUB i minimalny plik konfiguracyjny z:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
Pamiętaj, że $device
jest to całe urządzenie, np. /dev/sdb
Nie partycja.
To już koniec, ale spróbuję wyjaśnić kilka rzeczy.
Ten parametr --target x86_64-efi
zapewni, że obrazy i moduły UEFI zostaną zainstalowane na podanych ścieżkach. --removable
zainstaluje obraz UEFI na zakodowanej ścieżce \EFI\BOOT\BOOT{arch}.EFI
dla nośników wymiennych, zamiast ścieżki specyficznej dla dystrybucji. Twój grub.cfg
w /boot/grub/
powinny współpracować z obiema metodami startowych i nowy folder o nazwie x86_64-efi
powinna istnieć obok i386-pc
.
Dla kompletności jest to polecenie dla nośników niewymiennych, które zapisuje wpisy NVRAM na platformie i polega na nich:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
Prawidłowe instalacje UEFI obejmują linię podobną do poniższej w /etc/fstab
, ale konfiguracja działa bez, a obraz UEFI (podobny do bootloadera MBR) jest zwykle zapisywany / aktualizowany tylko podczas instalacji systemu operacyjnego.
UUID=1234-567F /boot/efi vfat defaults 0 1
Dodanie ESP lub GRUB-BBP do instalacji z GPT
Dodawanie ESP do starszej instalacji na dysku z partycjami GPT jest bardzo podobne do powyższego:
- Zainstaluj
grub-efi-amd64-bin
pakiet.
- Utwórz partycję z systemem plików FAT32 podobnym do powyższych instrukcji, zmieniając rozmiar partycji głównej i ustawiając
boot
flagę.
- Zamontuj partycje i uruchom
grub-install
polecenie z góry, które zawiera --removable
parametr.
Działa to również, jeśli chcesz tylko uruchomić istniejącą instalację UEFI na innym komputerze.
Tworzenie partycji rozruchowej systemu BIOS (BBP) dla GRUB jest nieco inne:
Zainstaluj grub-pc-bin
pakiet.
Utwórz partycję podobną do powyższych instrukcji, zmieniając rozmiar partycji głównej i ustawiając bios_grub
flagę. Wybierz system plików i pozostaw go niesformatowanym.
Edytuj plik konfiguracyjny /etc/default/grub
z uprawnieniami administracyjnymi i dodaj GRUB_DEVICE=/dev/sdb6
go na końcu. Zamień /dev/sdb6
na rzeczywistą nazwę urządzenia swojego BBP. Możesz użyć edytora wiersza poleceń nano, aby zachować prostotę.
Zainstaluj obraz GRUB MBR na BBP za pomocą:
grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
Możesz usunąć lub skomentować linię /etc/default/grub
i dodać ją do faktycznej instalacji.
Bonus: Dodaj partycję dla komputerów Mac w instalacji z GPT
Odkryłem, że bardzo nowy komputer Mac (Mac Mini A1347 EMC 2840), z którym testowałem, może uruchomić się ze standardowego FAT32 ESP, nawet z MBR! W każdym razie, zaczynamy:
Zainstalować grub-efi-amd64-bin
, hfsprogs
, mactel-boot
oraz mactel-boot-logo
(nieobowiązkowo). Musisz włączyć repozytoria Wszechświata ( Jak włączyć repozytorium „Wszechświat” z wiersza poleceń? ) I dodać bieżące wsparcie PPA dla Mactel ( więcej szczegółów znajdziesz w zespole Społeczności wsparcia Mactel ), aby zainstalować je wszystkie.
Utwórz partycję z systemem plików HFS + podobnym do powyższych instrukcji, zmieniając rozmiar partycji głównej. Tym razem potrzebujemy o kilka megabajtów więcej miejsca, więc podwoj rozmiar ESP, jeśli wcześniej miałeś tylko 5 megabajtów. Flaga nie jest wymagana.
Zamontuj partycje:
mkdir -p /mnt/esp-mac
mount $esp-mac_device /mnt/esp-mac
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
Uwaga: wybrałem $esp-mac_device
i /mnt/esp-mac
aby uniknąć konfliktów.
Uruchom grub-install
polecenie zawierające --removable
parametr:
grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
Na koniec skonfiguruj partycję tak, jak tego oczekuje Mac:
sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
Aby uruchomić system Ubuntu z zewnętrznego nośnika na komputerze Mac, wystarczy nacisnąć klawisz opcji ⌥ lub Altklawiaturę Windows i wybrać odpowiedni dysk.
Informacje o flagach partycji, typach kodów i identyfikatorach GUID
Aby być możliwie najdokładniejszym, flaga rozruchowa nie jest ważna dla GRUB-a, domyślnie GRUB wyszukuje UUID-y, aby znaleźć odpowiedni system plików do uruchomienia. Ustawienie flagi rozruchowej lub flagi bios_grub w GParted zwykle ustawia typ (MBR) lub GUID (GPT) dla partycji.
Zaletą ustawienia prawidłowego typu lub identyfikatora GUID, oprócz poprawnego działania konfiguracji, jest to, że partycje te zostaną ukryte w menedżerze plików. Najłatwiejszym sposobem sprawdzenia i zmiany typów i identyfikatorów GUID jest użycie Disks ( gnome-disks
).
Alternatywnie możesz użyć parted lub gdisk:
- 0xef to kod typu ESP w MBR do użytku z fdisk
- ef00 to skrócony kod typu ESP w GPT do użytku z gdisk
- ef02 to skrócony kod typu BBP w GPT do użytku z gdisk
Wikipedia ma dużą listę identyfikatorów GUID dla GPT .
Odpowiednikami wiersza polecenia parted
zgodnie z instrukcją są parted $device set partition esp on
i parted $device set partition bios_grub on
.
/boot/
nie znaleziono pliku ”.grub.cfg
W ESP punktów partycji na prawo UUID. Jakieś pomysły? Z przyjemnością opublikuję nowe pytanie.