Czy nadal można zainstalować Ubuntu na zewnętrznym dysku twardym z UEFI?

Odpowiedzi:

12

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.

  1. Zainstaluj grub-efi-amd64-binpakiet. 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.

  2. 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ą.

  3. 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_devicei $root_deviceprzy czym odpowiednie urządzenia , np /dev/sdb2a /dev/sdb1. Punkty montowania /mnt/esp i /mnt/rootfssą 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 $devicejest to całe urządzenie, np. /dev/sdbNie partycja.

  4. To już koniec, ale spróbuję wyjaśnić kilka rzeczy.

    Ten parametr --target x86_64-efizapewni, że obrazy i moduły UEFI zostaną zainstalowane na podanych ścieżkach. --removablezainstaluje obraz UEFI na zakodowanej ścieżce \EFI\BOOT\BOOT{arch}.EFIdla nośników wymiennych, zamiast ścieżki specyficznej dla dystrybucji. Twój grub.cfgw /boot/grub/powinny współpracować z obiema metodami startowych i nowy folder o nazwie x86_64-efipowinna 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:

  1. Zainstaluj grub-efi-amd64-binpakiet.
  2. Utwórz partycję z systemem plików FAT32 podobnym do powyższych instrukcji, zmieniając rozmiar partycji głównej i ustawiając bootflagę.
  3. Zamontuj partycje i uruchom grub-installpolecenie z góry, które zawiera --removableparametr.

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:

  1. Zainstaluj grub-pc-binpakiet.

  2. Utwórz partycję podobną do powyższych instrukcji, zmieniając rozmiar partycji głównej i ustawiając bios_grubflagę. Wybierz system plików i pozostaw go niesformatowanym.

  3. Edytuj plik konfiguracyjny /etc/default/grubz uprawnieniami administracyjnymi i dodaj GRUB_DEVICE=/dev/sdb6go na końcu. Zamień /dev/sdb6na 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/grubi 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:

  1. Zainstalować grub-efi-amd64-bin, hfsprogs, mactel-bootoraz 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.

  2. 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.

  3. 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_devicei /mnt/esp-macaby uniknąć konfliktów.

    Uruchom grub-installpolecenie zawierające --removableparametr:

    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.

    Mac Startup Manager pokazuje woluminy i logo Ubuntu

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).

zrzut ekranu pokazujący dyski i partycje na dyskach gnome

zrzut ekranu pokazujący okno dialogowe edycji partycji na dyskach gnome

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 partedzgodnie z instrukcjąparted $device set partition esp oni parted $device set partition bios_grub on.

LiveWireBT
źródło
Nie udokumentowałem szczegółów. Ale byłem w stanie po prostu podzielić dysk flash na partycję gpt, utworzyć partycję efi i skopiować pliki rozruchowe efi na partycję efi. Grub-mkimage tworzy grubx64.efi, który oczekuje określonych ścieżek dla plików, więc właśnie skopiowałem strukturę pliku z mojej instalacji do / boot / grub i dodałem grub.cfg z wpisem configfile do innego grub.cfg w moim / iso folder do podłączenia pętli rozruchu moich ISO. Prawdopodobnie bardziej poprawne jest utworzenie własnego pliku grubx64.efi z obrazem make, ale kopiowanie działało.
oldfred
Szukałem wysoko i nisko, próbując dowiedzieć się, jak wykonać część „Dodaj ESP do istniejącej instalacji z MBR”. Denerwowałem się tym, ale zadziałało przy pierwszej próbie! Świetna odpowiedź!
Mark E. Haase,
Usiłuję dodać możliwość rozruchu EFI do pełnej instalacji BIOS / MRR Ubuntu na USB za pomocą Dodaj ESP do istniejącej instalacji z częścią odpowiedzi MBR . Pojawia się komunikat „Błąd: /boot/nie znaleziono pliku ”. grub.cfgW ESP punktów partycji na prawo UUID. Jakieś pomysły? Z przyjemnością opublikuję nowe pytanie.
user68186,
@ user68186 czy byłeś w stanie to zrobić?
BRabbit27
Udało mi się zainstalować Ubuntu na dysku zewnętrznym z komputera Mac. Po podłączeniu do komputera Mac uruchamia się poprawnie w systemie Ubuntu. Jednak po podłączeniu do komputera z systemem Windows 10 (xps 15 9560) w urządzeniach rozruchowych zewnętrzny dysk twardy nie pojawia się. Mam przeczucie, że to z powodu UEFI. Czy ktoś może potwierdzić, czy moje przeczucie jest prawidłowe, a także czy ten wątek jest tym, czego potrzebuję, aby móc uruchomić komputer z systemem Windows?
BRabbit27