Jak tworzyć wielobootowe USB z Linux

Jak tworzyć wielobootowe USB z Linux

Cel

Utwórz rozruchowe urządzenie USB zawierające wiele rozkładów Linux.

Wymagania

  • Urządzenie USB o wystarczającym rozmiarze, aby zawierać wiele ISOS
  • Uprawnienia do modyfikacji partycji urządzeń i zainstalowania Gruba

Trudność

ŚREDNI

Wstęp

Możliwość uruchomienia całego systemu operacyjnego bezpośrednio z nośnika instalacyjnego jest niezwykle przydatna: możemy przetestować dystrybucję, używać go do celów tworzenia kopii zapasowych, a może do naprawy istniejącego systemu. Zwykłym sposobem utworzenia multimediów rozruchowych jest napisanie na nim obrazu systemu za pomocą Dd polecenie lub dedykowane narzędzie. W tym samouczku zobaczymy, jak utworzyć urządzenie USB z wieloma bohaterami.

Słowo o BIOS vs uefi

Uefi (Unified Extensible Interface oprogramowania) To nowoczesne oprogramowanie układowe stworzone jako zamiennik dziedzictwa BIOS (Podstawowy System Wejścia Wyscia). Większość najnowszych rozkładów Linux może uruchamiać się w obu trybach bez problemów: instalator odpowiednio dostosuje swoje zachowanie.

Dwa firmy firmy są według standardu, powiązane z określonym układem tabeli partycji: Uefi idzie w parze z Gpt, chwila BIOS W zestawie MSDOS jeden. Te skojarzenia nie są jednak ściśle obowiązkowe, ponieważ przynajmniej teoretycznie a Uefi oprogramowanie układowe może rozpocząć proces rozruchu od MSDOS Układ dysku i dziedzictwo BIOS System może zrobić to samo z Gpt Dysk partycjonowany.



W pierwszym przypadku Efi Partycja musi być pierwszą na dysku i być sformatowana z Fat32 Fileystem, w tym ostatnim BUT BIOS PARTICJA bez żadnego systemu plików powinna istnieć, potrzebna do przechowywania Gruba Etap 1.5, ponieważ na Gpt Układ luka między głównym rekordem rozruchu a pierwszą partycją nie istnieje (tutaj ten etap grub zwykle jest zainstalowany).

Przygotujemy nasze urządzenie za pomocą tradycyjnego MSDOS układ, instalowanie bootloadera Grub w trybie EFI i Legacy, aby móc uruchomić rozkłady w obu Uefi I BIOS tryb.

Przygotowanie urządzenia

Pierwszą rzeczą, którą musimy zrobić, jest przygotowanie naszego urządzenia. Utworzymy dwie partycje, w kolejności:

  • Jakiś Efi przegroda
  • Partycja danych

Pierwszy jest potrzebny do uruchomienia Uefi tryb, ponieważ tam jest zainstalowany Grub-EFI. Partycja musi być sformatowana za pomocą Fat32 system plików. Teoretycznie konfiguracja działałaby nawet przy tej partycji, ponieważ moglibyśmy go również użyć do przechowywania obrazów dystrybucji, których chcemy użyć. Jednak w takim przypadku bylibyśmy ograniczeni Fat32 nie obsługuje plików Lager niż 4 GB, a niektóre ISO mogą przekroczyć ten rozmiar.

Druga partycja zostanie sformatowana z systemem plików obsługiwanym przez Grub i będzie hostować obrazy i pliki konfiguracyjne GRUB.

Ze względu na ten samouczek założę, że urządzenie, które chcemy przygotować /dev/sdb.

Tabela partycji i partycja EFI

Pierwszą rzeczą do zrobienia jest stworzenie MSDOS Tabela partycji na urządzeniu:

$ sudo rozstał -s /dev /sdb mklabel msdos

Po tym kroku możemy stworzyć Efi partycjonowanie i sformatuj za pomocą Fat32 system plików. Zalecany rozmiar partycji jest 550 MIB: Na mniejszych partycjach moglibyśmy otrzymać błąd, taki jak „za mało klastrów dla 32 -bitowego tłuszczu”:

$ sudo rozstał -s /dev /sdb mkpart podstawowy 1MIB 551MIB


Następnie kontynuujemy aktywację esp I uruchomić Flagi:

$ sudo rozstał -s /dev /sdb Zestaw 1 ESP na $ sudo rozdzielone -s /dev /sdb set 1 rozruch 

Wreszcie musimy stworzyć Fat32 system plików:

$ sudo mkfs.fat -f32 /dev /sdb1

Partycja danych

Drugą partycją, którą musimy utworzyć, jest partycja danych, która będzie hostować obrazy ISO dystrybucji i pliki konfiguracyjne GRUB. Możemy dostosować rozmiar partycji do naszych potrzeb: im większa jest najwięcej obrazów, które będzie mógł zawierać. Tutaj użyjemy wszystkich pozostałych przestrzeni na urządzeniu:

$ sudo rozstał -s /dev /sdb mkpart podstawowy 551 MIB 100%

Możemy sformatować partycję za pomocą jednego z systemów plików obsługiwanych przez GRUB. W takim przypadku użyję ext4:

$ sudo mkfs.ext4 /dev /sdb2

Utwórz punkty Mountpoints i zamontuj partycje

Następnym krokiem jest zamontowanie Efi Partycja i partycja danych gdzieś w naszym systemie, abyśmy mogli stworzyć na nich niezbędne katalogi, zainstalować GRUB i umieścić nasze pliki ISO na miejscu:

# Utwórz MountPoints $ sudo mkdir /media /EFI, Data # zamontować partycję EFI $ sudo /dev /sdb1 /media /efi # zamontować partycję danych $ sudo /dev /sdb2 /media /dane 

Instalowanie bootloadera Grub

Aby nasze urządzenie mogło pracować w obu dziedzictwo I Uefi tryby, dla których musimy zainstalować Grub i Grub Efi. Na fedorze binarnie binarne, które się nazywa Grub2 i aby wygenerować niestandardową konfigurację w konfiguracji UEFI, instalacja moduły grub2-efi Pakiet jest również konieczny. W niektórych innych dystrybucjach nazwa binarna jest po prostu „grub”:

# Instalowanie starszego Grub2 sudo Grub2-install \--Target = i386-pc \--recheck \ --boot-directory = "/media/data"/dev/sdb # instalowanie Gruba dla EFI sudo Grub2-install \- -target = x86_64-efi \--recheck \--removable \ --efi-directory = "/media/efi" \ --boot-directory = "/data/data/boot" 

Jak można obserwować, w obu przypadkach używaliśmy /media/data/rozruch Jako directory butowe Grub. Ten katalog zostanie automatycznie utworzony po uruchomieniu powyższych poleceń i będzie hostował pliki konfiguracyjne GRUB.

Skopiuj obrazy i utwórz grub.plik CFG

Aby utworzyć lub zaktualizować konfigurację GRUB w nowoczesnym systemie Linux, zwykle uruchamiamy Grub2-MkConfig polecenie lub, w dystrybucjach opartych na debian, Update-Grub Script opakowań. Te narzędzia wykonują potrzebne operacje automatycznie.



W naszym przypadku musimy jednak zabrudzić ręce i ręcznie utworzyć konfigurację. Nie wszystkie rozkłady wymagają tych samych dyrektyw, ale tutaj zobaczą kilka typowych przykładów. Najpierw powinniśmy utworzyć katalog, który będzie gospodarzem obrazów naszych dystrybucji:

$ sudo mkdir/media/data/boot/iso

Opcjonalnie możemy chcieć przejąć własność tego katalogu, aby móc łatwiej przenosić na nim obrazy. Zakładając ID I kołowacizna z 1000, my uruchomiono:

$ sudo chown 1000: 1000/media/data/boot/ISO

Załóżmy teraz, że chcemy dołączyć najnowszy obraz Fedora NetInstall w naszej konfiguracji. Najpierw musimy pobrać obraz w /Media/Data/ISO informator:

$ wget -o/media/data/boot/iso/fedora-workstation-netinst-x86_64-28-1.1.ISO \ https: // pobierz.Fedoraproject.org/pub/fedora/linux/remises/28/WorkStation/x86_64/ISO/Fedora-Workstation-Netinst-X86_64-28-1.1.ISO 

Następnie, po zakończeniu pobierania, musimy dodać do niego wpis w żarcie.CFG plik w /media/data/boot/grub2 informator. Ponieważ jest to pierwszy wpis, dodajemy sam plik musi zostać utworzony:

Men MenEntry „Fedora-Workstation-Netinst-X86_64-28-1.1 "iSoFile ="/boot/iso/fedora-workstation-netinst-x86_64-28-1.1.ISO „Loopback Loop” $ ISOFILE "Linux (Loop)/Isolinux/vmlinuz ISO-SCAN/filename =" $ ISOFILE "Inst.scena2 = hd: etykieta = Fedora-WS-DVD-x86_64-28 Cicha initrd (pętla)/Isolinux/initrd.img 

Struktura wejścia jest dość prosta: zdefiniowaliśmy Isofile zmienna, z ścieżką do naszego obrazu jako wartości. Grub jest w stanie uruchomić się z ISO Directry i to właśnie Pętla polecenie jest dla: W powyższym przykładzie obraz systemu plików zostanie zamontowany i udostępniony na pętla urządzenie.

Linia zaczyna się od Linux zawiera ścieżkę do vmlinuz, który jest wykonywaczem jądra, a także inne dyrektywy rozruchowe. Wśród nich można zauważyć ISO-Scan/Filename który jest potrzebny do znalezienia obrazu ISO na dysku za pomocą określonej ścieżki.



Wreszcie linia zaczyna się od initrd Określa ścieżkę do initrd. Wszystkie te ścieżki są oczywiście w stosunku do urządzenia pętli, dlatego są one prefiksowane przez (pętla) notacja.

Skąd znamy dyrektywy, których powinniśmy użyć w określonym przypadku? Jednym ze sposobów jest zamontowanie obrazu gdzieś w naszym systemie i spojrzenie na pliki umieszczone w katalogu Isolinux. Jednak wstępnie napisana konfiguracja już istnieje i łatwo jest znaleźć online.

Kolejny przykład: teraz dodamy najnowszy obraz wydania Ubuntu do naszego urządzenia rozruchowego:

$ wget http: //.Ubuntu.com/18.10/Ubuntu-18.10-Desktop-AMD64.ISO?_GA = 2.232120863.1006005768.1540658570-734439277.1540658570 \ -o/media/data/boot/iso/ubuntu -18.10-Desktop-AMD64.ISO 

Teraz dodajemy wpis do pliku konfiguracyjnego:

Men MenEntry „Ubuntu 18.10 - Spróbuj bez instalowania „isofile =”/boot/iso/ubuntu -18.10-Desktop-AMD64.ISO "Loopback Loop" $ ISOFILE "Linux (Loop)/casper/vmlinuz ISO-SCAN/filename =" $ ISOFILE "boot = casper cichy splash --- initrd (Loop)/casper/initrd 

Oto, jak powinien wyglądać nasze Multiboot-Menu w tym momencie:

Menu multiboot Grub

Zamykanie myśli

W tym samouczka. Po tej konfiguracji będziemy mogli uruchomić oba na oprogramowaniu układowym UEFI, wybierając obraz, który można uruchomić z menu Grub.


żarcie.Przedstawiona tutaj konfiguracja CFG jest absolutnie minimalna i może być dodatkowo dostosowana do wielu innych modułów i dostosowania innych ustawień, takich jak limit czasu Gruba: Konsulowanie oficjalnej dokumentacji Gruba to idealny sposób na rozpoczęcie badania wielu możliwości.

Powiązane samouczki Linux:

  • Utwórz bootabilne USB Manjaro Linux
  • Wprowadzenie do Grub Rescue
  • Jak utworzyć rozruchowy Windows USB pod Linux
  • Jak utworzyć USB z wieloboootem z Ventoy
  • Ubuntu 22.04 Nie uruchamianie: Przewodnik po rozwiązywaniu problemów
  • Utwórz rozruchowy Ubuntu 22.04 Dysk startupowy USB
  • Jak zrobić rozruchowy USB z ISO w Linux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Ubuntu 22.04 Kopia zapasowa i przywracanie systemu
  • Utwórz rozruchowy Ubuntu 20.04 USB Stick na MS Windows 10