Jak utworzyć rozruchowy nośnik USB na żywo z UEFI?

107

Posiadanie mediów na żywo, które można uruchomić w obie strony, może stanowić problem podczas instalowania Ubuntu na aktualnie dostępnych komputerach z systemem Windows 8.

Innymi słowy, główną zaletą tworzenia nośnika na żywo z nośnikiem USB tylko do UEFI jest: Wiesz, że zdecydowanie został on uruchomiony i zainstalowany za pośrednictwem UEFI.

Ponieważ Valve już uruchamia instalatory USB uruchamiające tylko UEFI z systemem operacyjnym Steam opartym na Debianie i UNetbootin - najlepiej głosowaną alternatywą dla Startup Disk Creator Ubuntu - nie jest kompatybilny z UEFI i dlatego wprowadza w błąd, myślę, że powinniśmy mieć osobny temat tworzenie rozruchowego nośnika USB na żywo tylko z UEFI.

LiveWireBT
źródło

Odpowiedzi:

133

Przegląd

Tworzenie nośnika na żywo z nośnika USB tylko do UEFI jest dość proste. Wystarczy skopiować pliki na dysk USB w formacie FAT32 . Otóż ​​to!

Pamiętaj, że w przypadku instalacji lub rozruchu nośnika:

Spis treści

  • Skopiuj pliki z metody ISO
    1. Przykład przez terminal
    2. Przykład za pomocą GUI
    3. Przykład w systemie Windows
  • Metoda sprzężenia zwrotnego ISO (zaawansowana)
    1. Tworzenie pliku binarnego
    2. Tworzenie pliku konfiguracyjnego
    3. Dodawanie trwałości
    4. Sprawdzanie integralności
    5. Bezpieczny rozruch UEFI

1. Skopiuj pliki z metody ISO

Ta metoda działa również w przypadku innych nośników instalacyjnych zawierających programy ładujące EFI, na przykład Windows.

1.1 Przykład przez terminal

Możesz wykonać następujące czynności, jeśli 604A-00EAmasz napęd USB i masz już p7zipzainstalowany:

$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/

Skończysz, jeśli masz tylko jedną partycję na tym dysku USB, w przeciwnym razie musisz oznaczyć partycję jako rozruchową, np. Przez parted:

# parted /dev/sdX set 1 boot on

Gdzie /dev/sdXbyłby twój dysk USB i 1numer partycji, którego należy użyć do uruchomienia.

1.2 Przykład za pomocą GUI

  1. Zamontuj plik .iso i skopiuj zawartość na dysk USB. Naciśnij Ctrl+ Hw Nautilus, aby wyświetlić i skopiować również ukryte pliki.

    nautilus pokazuje Disk Image Mounter w menu kontekstowym, gdy wybrany jest plik .iso

  2. Dodaj flagę rozruchową przez GParted .

    GParted pokazuje, jak zarządzać flagami partycji

1.3 Przykład w systemie Windows

  1. Tak jak powyżej, po prostu skopiuj pliki.
  2. Naciśnij Windows/Super+ X, przejdź do Zarządzanie dyskami i sprawdź, czy partycja jest oznaczona jako aktywna. W wersjach systemu Windows starszych niż Windows 8, naciśnij Windows/Super+, Raby otworzyć menu uruchamiania i otworzyć diskmgmt.msc, aby otworzyć Zarządzanie dyskami.

2. Metoda sprzężenia zwrotnego ISO (zaawansowane)

Zamiast wyodrębniać zawartość z obrazu ISO, GRUB i GRUB2 były w stanie uruchomić się z obrazów ISO bezpośrednio przez urządzenie loopback. Biorąc pod uwagę, że obraz ISO można uruchomić z systemu UEFI, możemy skonfigurować dysk USB zawierający wiele ISO z różnymi systemami operacyjnymi bez tworzenia bałaganu na dysku USB.

Jeśli chcesz również uruchomić system Windows, możesz spojrzeć na SARDU . Pamiętam, że używałem go z Windows PE około 2005 roku i wydaje się, że został zaktualizowany do obsługi napędów USB i UEFI, ale pamiętam, że to narzędzie obsługuje również starsze uruchamianie.

Czego potrzebujemy?

  • Bardzo podstawowa znajomość plików konfiguracyjnych GRUB.
  • Bardzo podstawowa wiedza na temat uruchamiania UEFI i GRUB, ponieważ zamierzamy wygenerować własny obraz bootloadera GRUB z dużą ilością modułów.
  • Obraz ISO rozruchowy UEFI, dysk USB w formacie FAT i komputer z systemem Linux.
    • Nie, nie potrzebujemy instalacji systemu Linux w UEFI (może to być sytuacja z kurczakiem i jajami), tradycyjna maszyna wirtualna z systemem Linux, jak w VirtualBox, jest w porządku.

2.1 Tworzenie pliku binarnego

Na komputerze Ubuntu lub maszynie wirtualnej upewnij się, że pakiet grub-efi-amd64-bin jest zainstalowany (grub-efi-ia32-bin jest również dostępny dla 32-bitowych architektur Intel w nowszych wersjach). Pakiet może mieć inną nazwę w innej dystrybucji, możesz porównać listę plików pakietu, aby znaleźć odpowiedni pakiet w swojej dystrybucji.

Poniższe polecenie wygeneruje obraz GRUB, w tym przypadku plik binarny EFI, który powinien być w stanie uruchomić każdy komputer z oprogramowaniem układowym UEFI:

grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
 fat iso9660 part_gpt part_msdos \
 normal boot linux configfile loopback chain \
 efifwsetup efi_gop efi_uga \
 ls search search_label search_fs_uuid search_fs_file \
 gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
 exfat ext2 ntfs btrfs hfsplus udf

Każde standardowe oprogramowanie układowe UEFI powinno szukać \EFI\BOOT\pliku o nazwie boot{arch}.efi, więc utwórz foldery na dysku USB i skopiuj właśnie utworzony obraz do tej lokalizacji. Możliwe są inne architektury zamiast x64, ale bądźmy prostsze dzięki x64 / amd64.

2.2 Tworzenie pliku konfiguracyjnego

Bardzo prosty przykład grub.cfgpliku konfiguracyjnego, który powinien zostać umieszczony w tym samym katalogu, bootx64.efiktóry wyglądałby następująco:

set timeout=3
set color_highlight=black/light-magenta

menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
        set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
        initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
    menuentry 'Ubuntu' {
            chainloader /efi/ubuntu/grubx64.efi
    }
    menuentry 'Windows' {
            chainloader /efi/Microsoft/Boot/bootmgfw.efi
    }
    menuentry 'Firmware Setup' {
            fwsetup
    }
}

Ważną rzeczą jest blok konfiguracji z tytułem Boot Ubuntu 14.04.2 LTS from ISO. Możesz zmienić kolor i limit czasu zgodnie ze swoimi preferencjami. Wybrałem, black/light-magentaponieważ nadal wygląda trochę na Ubuntu, ale łatwo go odróżnić podczas ładowania innych konfiguracji. Możesz znaleźć więcej przykładów innych dystrybucji na Arch Wiki i przeczytanie instrukcji GRUB jest naprawdę warte twojego czasu, jeśli chcesz wyjść poza to.

Wracając do bloku konfiguracji, powinno być oczywiste, że ISO jest oznaczony jako /efi/boot/ubuntu-14.04.2-desktop-amd64.iso, więc skopiuj ISO do \EFI\BOOT\i zastąp ubuntu-14.04.2-desktop-amd64.isow konfiguracji rzeczywistą nazwą pliku ISO.

loopback loop $isofileto linia, która załaduje nasz plik ISO do urządzenia pętli zwrotnej, z którego możemy bezpośrednio uruchomić jądro Linuksa. Jest to możliwe, ponieważ nasz obraz EFI GRUB zawiera moduł sprzężenia zwrotnego. (Trochę prób i błędów było zaangażowanych w ustalenie, które moduły powinny zostać uwzględnione. Nie powinieneś widzieć żadnych komunikatów o błędach, ale nadal nie jest idealny.) Mówiąc o jądrze, możesz dodać parametry jądra, takie jak toramparametry dla różnych języków (przykład locale=de_DE bootkbd=de) i jak w przykładzie:persistent

2.3 Dodawanie trwałości

Możesz dodać partycję zgodnie z opisem w: Jak uzyskać Live-USB, aby używać partycji do utrwalania? Możesz też utworzyć casper-rwplik i umieścić go w katalogu głównym dysku USB.

dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw

Nie testowałem, jakie jest absolutne maksimum, powinno wynosić od 4094 do 4096 MB. Użyj partycji, jeśli zamierzasz użyć więcej miejsca. Zauważ, że każda zmiana w (root) jest modyfikacją systemu plików nakładki, nawet usuwanie plików.

2.4 Sprawdzanie integralności

Powinieneś spojrzeć na odpowiedzi na następujące pytania, aby sprawdzić, czy zawartość Live ISO na dysku USB jest w idealnym stanie:

2.5 Bezpieczny rozruch UEFI

Bezpieczny rozruch stanie się obowiązkowy na komputerach z systemem Windows 10. Sugeruję zajrzenie do PreLoadera Linux Foundation, aby dodać funkcjonalność Bezpiecznego rozruchu do tej konfiguracji. Oto niektóre dzieła ASCII ilustrujące menu towarzyszącego narzędzia HashTool .


Gratulacje, powiedziałbym, że opanowałeś już uruchamianie UEFI i nie powinieneś się już bać.

LiveWireBT
źródło
1
Pozwólcie, że zwrócę uwagę (a), że wszystkie komputery PC wysłane w ciągu ostatnich 5 lat mają taką możliwość; (b) że root instalatora .iso może wtedy używać pełnej pamięci USB jako zwykłego trwałego miejsca do przechowywania. (użyj opcji montowania ro, aby zabezpieczyć się przed przypadkowym usunięciem.) W przypadku nowoczesnych komputerów i powszechnych wzorców użytkowania wydaje się to lepszym rozwiązaniem niż domyślne rozwiązanie live-usb-creator.
user1539216,
3
Podczas korzystania z metody GUI napotkałem błędy w symbolicznych linkach . Czy to jest istotne? Czy możesz proszę opracować?
VRR
1
Cześć, LiveWireBT! Dziękuję za tak interesującą odpowiedź !! Postępowałem zgodnie z metodą 2. sprzężenia zwrotnego ISO (zaawansowane) i udało mi się uruchomić system UEFI z napędu flash USB. Ale pod koniec uruchamiania dostałem komunikat o błędzie: Nie mogę zamontować / dev / loop2 na / cow i po naciśnięciu enter zobaczyłem monit (initramfs). Czy możesz mi w tym pomóc?
zuba
Chcę również podziękować za świetny przewodnik, który był jasny i zwięzły. Nigdy nawet nie pomyślałem o podzieleniu napędu na kciuki i zainstalowaniu na nim wielu systemów operacyjnych. Dzięki jeszcze raz!
Hatem Jaber
2
Co najmniej w 16.04 „kopiowanie wszystkich plików” nie uruchamia się z powodu argumentu linii jądra grub.cfg „file = / cdrom / preseed / ubuntu.seed”. Nie ma takiego pliku, prawdopodobnie związanego z wcześniej wspomnianym brakującym dowiązaniem symbolicznym (ubuntu do.). Edytuj plik grub.cfg, aby usunąć plik = ... i zastąp go „live-media-path = / casper / ignore_uuid”
ubfan1
3

Wyciąg z pliku ISO do FAT32

Rozpakowanie zawartości 64-bitowego pliku ISO systemu Ubuntu na partycję z systemem plików FAT32 i flagą rozruchową wykona zadanie: utworzenie dysku na żywo, który uruchamia się tylko w trybie UEFI. Nazywa się tutaj „Kopiuj pliki z metody ISO” (w zaakceptowanej odpowiedzi).

Sprawdź, czy działa w trybie UEFI lub BIOS

Ale łatwo jest przetestować w działającym systemie Ubuntu (zarówno na żywo, jak i zainstalowanym), jeśli został uruchomiony w trybie UEFI lub BIOS. Uruchom ten wiersz poleceń,

test -d /sys/firmware/efi && echo efi || echo bios

Ułatwia to korzystanie z systemów na żywo, które mogą być używane w obu trybach rozruchu, co również może być zaletą.

Zobacz także poniższe linki, aby uzyskać bardziej szczegółowe wyjaśnienie i opis metody,

help.ubuntu.com/community/Installation/iso2usb

help.ubuntu.com/community/Installation/iso2usb/diy

sudodus
źródło
2

Używanie dddziałało dla mnie, z jakiegoś powodu wersja GUI nie działała. Po pierwsze, możesz chcieć monitorować postęp dd , inną opcją jest użycie opcji SIGUSR1 dddo okresowego zgłaszania postępu, ale jest to bardziej skomplikowane niż pv.

Następnie:

sudo dd if=path/to/image/file | pv | sudo dd of=/dev/device_you_want_to_use

( /dev/device_you_want_to_usezwykle będzie /dev/sdb, ale sprawdź za pomocą df!)

łyk
źródło
8
Tworzenie nośników w ten sposób nie powoduje powstania nośnika startowego tylko z UEFI . Nacisk kładziony jest na ostatni akapit pytania: „Istnieje również jedna zaleta tworzenia nośnika na żywo z nośnikiem USB tylko do UEFI: wiesz, że zdecydowanie uruchomiono go przez UEFI”. Posiadanie nośnika, który można uruchomić w obie strony, stanowi problem podczas próby zrozumienia i skonfigurowania instalacji Ubuntu z uruchamianiem UEFI.
LiveWireBT
1
Widzę. Dziwne jest to, że w ten sposób udało mi się stworzyć obraz, który uruchomił się w trybie UEFI (wiem, że ponieważ laptop został ustawiony tak, aby pozwalał tylko na rozruch uefi, a także z powodu początkowego ekranu). Preferowana odpowiedź nie działała dla mnie, komputer po prostu nie uruchomiłby się z obrazem utworzonym po prostu przez skopiowanie plików.
sup
5
@sup ta metoda tworzy nośnik, który można uruchomić z interfejsu UEFI. Problem polega na tym, że nie tylko można go uruchomić z UEFI, jak jest to wymagane w pytaniu: można go również uruchomić w trybie BIOS.
Darael,