Cara Membuat USB Multiboot dengan Linux

Cara Membuat USB Multiboot dengan Linux

Objektif

Buat peranti usb bootable yang mengandungi pelbagai pengagihan linux.

Keperluan

  • Peranti USB dengan saiz yang cukup untuk mengandungi pelbagai ISO
  • Kebenaran root untuk mengubah suai partition peranti dan memasang grub

Kesukaran

Medium

Pengenalan

Mampu menjalankan sistem operasi keseluruhan secara langsung dari media pemasangan yang sangat berguna: kita boleh menguji pengedaran, menggunakannya untuk tujuan sandaran, atau mungkin untuk membaiki sistem yang ada. Cara biasa untuk membuat media bootable adalah dengan menulis imej sistem di atasnya menggunakan DD perintah atau beberapa alat yang berdedikasi. Dalam tutorial ini, kita akan melihat cara membuat peranti USB multiboot yang boleh menjadi tuan rumah pelbagai imej pengedaran.

Satu perkataan di bios vs uefi

Uefi (Interface Firmware Extensible Unified) Ini adalah firmware moden yang dibuat sebagai pengganti warisan BIOS (Sistem output input asas). Sebilangan besar pengagihan Linux baru -baru ini boleh boot dalam kedua -dua mod tanpa masalah: pemasang secara automatik akan menyesuaikan tingkah lakunya.

Kedua -dua firmwares adalah, dengan standard, yang dikaitkan dengan susun atur jadual partition tertentu: Uefi bersatu dengan tangan gpt, manakala BIOS Dilengkapi dengan MSDOS satu. Persatuan -persatuan itu, bagaimanapun tidak wajar, kerana, sekurang -kurangnya dalam teori, a Uefi firmware boleh memulakan proses boot dari a MSDOS susun atur cakera dan warisan BIOS sistem boleh melakukan perkara yang sama dari a gpt cakera partition.



Dalam bekas kes Efi partition mestilah yang pertama di cakera, dan diformat dengan Fat32 FileYstem, di yang terakhir, a Boos Boot partition tanpa sistem fail di atasnya harus wujud, diperlukan untuk menyimpan tahap grub 1.5, sejak di a gpt susun atur jurang antara rekod boot induk dan partition pertama tidak wujud (ini adalah di mana tahap grub ini biasanya dipasang).

Kami akan menyediakan peranti kami menggunakan tradisional MSDOS susun atur, memasang grub bootloader dalam mod EFI dan warisan untuk dapat memulakan pengagihan kedua -duanya di Uefi dan BIOS mod.

Menyediakan peranti

Perkara pertama yang perlu kita lakukan ialah menyediakan peranti kami. Kami akan membuat dua partition, mengikut urutan:

  • An Efi partition
  • Partition data

Yang pertama diperlukan untuk boot Uefi mod, kerana di mana grub-EFI dipasang. Partition mesti diformat dengan a Fat32 sistem fail. Secara teorinya, persediaan akan berfungsi walaupun hanya dengan partition ini, kerana kami juga boleh menggunakannya untuk menyimpan imej pengagihan yang ingin kami gunakan. Walau bagaimanapun, dalam hal ini kita akan terhad, sejak Fat32 tidak menyokong fail lager daripada 4GB, dan beberapa ISO boleh melebihi saiz ini.

Partition kedua akan diformat dengan sistem fail yang disokong oleh grub, dan akan menjadi tuan rumah imej dan fail konfigurasi grub.

Demi tutorial ini, saya akan menganggap peranti yang ingin kami sediakan adalah /dev/sdb.

Jadual partition dan partition EFI

Perkara pertama yang perlu dilakukan ialah membuat a MSDOS jadual partition pada peranti:

$ sudo berpisah -s /dev /sdb mklabel msdos

Selepas langkah ini, kita boleh membuat Efi partition dan formatnya dengan a Fat32 sistem fail. Saiz yang disyorkan untuk partition adalah 550 MIB: Pada partition yang lebih kecil kita dapat menerima ralat seperti "tidak cukup kluster untuk 32 bit lemak":

$ sudo berpisah -s /dev /sdb mkpart primary 1mib 551mib


Kami kemudian akan meneruskan dalam mengaktifkan esp dan boot Bendera:

$ sudo berpisah -s /dev /sdb set 1 esp pada $ sudo parti -s /dev /sdb set 1 boot 

Akhirnya kita mesti membuat Fat32 sistem fail:

$ sudo mkfs.FAT -F32 /DEV /SDB1

Partition data

Partition lain yang mesti kita buat ialah partition data, yang akan menjadi tuan rumah imej ISO pengagihan dan fail konfigurasi grub. Kita boleh menyesuaikan saiz partition untuk keperluan kita: semakin besar, imej yang paling banyak dapat dimiliki. Di sini kami akan menggunakan semua ruang yang tinggal di peranti:

$ sudo berpisah -s /dev /sdb mkpart primary 551mib 100%

Kami boleh memformat partition dengan salah satu sistem fail yang disokong oleh grub. Dalam kes ini saya akan gunakan ext4:

$ sudo mkfs.ext4 /dev /sdb2

Buat titik gunung dan pasangkan partisi

Langkah seterusnya adalah untuk melancarkan Efi Partition dan partition data di suatu tempat dalam sistem kami supaya kami dapat membuat direktori yang diperlukan pada mereka, memasang grub dan meletakkan fail ISO kami di tempatnya:

# Buat gunung $ sudo mkdir /media /efi, data # Gunung partition efi $ sudo mount /dev /sdb1 /media /efi # gunung partition data $ sudo mount /dev /sdb2 /media /data 

Memasang grub bootloader

Agar peranti kami dapat berfungsi di kedua -duanya warisan dan Uefi mod kita perlu memasang grub dan grub untuk efi. Di fedora binari grub itu dipanggil grub2 dan untuk menghasilkan konfigurasi tersuai pada persediaan UEFI, pemasangan Grub2-EFI-Modul Pakej juga perlu. Mengenai beberapa pengagihan lain nama binari itu hanya "grub":

# Memasang warisan grub2 sudo grub2-install \ --target = i386-pc \--recheck \ --boot-directory = "/media/data/boot"/dev/sdb # memasang grub untuk efi sudo grub2-install \-- -target = x86_64-EFI \--recheck \-removable \ --efi-directory = "/media/efi" \ --boot-directory = "/media/data/boot" 

Seperti yang dapat anda perhatikan, dalam kedua -dua kes kami menggunakan /media/data/boot Seperti direktori boot grub. Direktori ini akan dibuat secara automatik apabila arahan di atas dilancarkan, dan ia akan menjadi tuan rumah fail konfigurasi grub.

Salin gambar dan buat grub.Fail CFG

Untuk membuat atau mengemas kini konfigurasi grub pada sistem Linux moden, kami biasanya menjalankan grub2-mkconfig perintah, atau, dalam pengagihan berasaskan Debian, Update-Grub Wrapper-Script. Alat ini melaksanakan operasi yang diperlukan secara automatik.



Dalam kes kita, bagaimanapun, kita mesti mendapatkan tangan kita kotor dan membuat konfigurasi secara manual. Tidak semua pengagihan memerlukan arahan yang sama, tetapi di sini akan melihat beberapa contoh biasa. Mula -mula kita harus membuat direktori yang akan menjadi tuan rumah imej pengagihan kami:

$ sudo mkdir/media/data/boot/ISO

Secara pilihan kita mungkin mahu mengambil pemilikan direktori ini, untuk dapat menggerakkan imej di atasnya dengan lebih mudah. Dengan mengandaikan a ID dan gid daripada 1000 kita akan menjalankan:

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

Sekarang, katakan kami ingin memasukkan imej netinstall fedora terkini dalam persediaan kami. Pertama kita mesti memuat turun gambar di /media/data/ISO Direktori:

$ wget -o/media/data/boot/iso/fedora-workstation-netinst-x86_64-28-1.1.ISO \ https: // muat turun.Fedoraproject.org/pub/fedora/linux/siaran/28/workstation/x86_64/ISO/fedora-workstation-netinst-x86_64-28-1.1.ISO 

Kemudian, setelah muat turun selesai, kita mesti menambah entri untuknya di grub.cfg fail dalam /media/data/boot/grub2 direktori. Oleh kerana ia adalah entri pertama, kami menambah fail itu sendiri mesti dibuat:

MenuEntry "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.stage2 = HD: label = fedora-ws-dvd-x86_64-28 enitrd senang (loop)/isolinux/initrd.img 

Struktur kemasukan cukup mudah: kami menentukan Isofile pemboleh ubah, dengan jalan ke imej kita sebagai nilai. Grub dapat boot dari ISO Directy, dan itulah yang loopback Perintah adalah untuk: dalam contoh di atas imej sistem fail akan dipasang dan disediakan di gelung peranti.

Garis bermula dengan Linux mengandungi jalan ke Vmlinuz, yang boleh dilaksanakan kernel, ditambah arahan boot lain. Antara mereka yang dapat anda perhatikan ISO-Scan/FileName yang diperlukan untuk mencari imej ISO pada cakera menggunakan laluan yang ditentukan.



Akhirnya, garis bermula dengan initrd Menentukan jalan ke initrd. Semua jalan itu, jelas, berbanding dengan peranti gelung, itulah sebabnya mereka diawali oleh (gelung) notasi.

Bagaimana kita mengetahui arahan yang harus kita gunakan dalam kes tertentu? Salah satu cara adalah untuk melancarkan imej di suatu tempat di sistem kami dan melihat fail yang diletakkan di direktori isolinux. Walau bagaimanapun, konfigurasi yang telah ditulis sudah ada dan mudah dicari dalam talian.

Satu lagi contoh, sekarang: kami akan menambah imej pelepasan Ubuntu terkini ke peranti bootable kami:

$ wget http: // siaran.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 

Sekarang, kami menambah entri ke fail konfigurasi:

Menuentry "Ubuntu 18.10 - Cuba tanpa memasang "isofile ="/boot/iso/ubuntu -18.10-Desktop-AMD64.ISO "loopback loop" $ isofile "linux (loop)/casper/vmlinuz iso-scan/fileName =" $ isofile "boot = casper sleet splash --- initrd (loop)/casper/initrd 

Inilah yang kelihatan seperti menu multiboot pada ketika ini:

Menu Grub Multiboot

Pemikiran penutupan

Dalam tutorial ini kita melihat cara membuat peranti multiboot-USB yang mengandungi banyak imej pengagihan. Mengikuti persediaan ini, kami akan dapat boot kedua -dua warisan pada firmware UEFI, memilih imej apa yang akan dilancarkan dari menu grub.

The
grub.Persediaan CFG di sini dibentangkan adalah benar -benar minimum, dan boleh disesuaikan lagi untuk memasukkan banyak modul lain dan menyesuaikan tetapan lain seperti masa tamat grub: berunding dengan dokumentasi grub rasmi adalah cara yang sempurna untuk mula meneroka banyak kemungkinan.

Tutorial Linux Berkaitan:

  • Buat Manjaro Linux Bootable USB
  • Pengenalan kepada Penyelamat Grub
  • Cara membuat bootable ms windows usb di bawah linux
  • Cara Membuat USB Multiboot dengan Ventoy
  • Ubuntu 22.04 Tidak Booting: Panduan Penyelesaian Masalah
  • Buat bootable ubuntu 22.04 cakera permulaan USB
  • Cara Membuat USB Bootable dari ISO di Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Ubuntu 22.04 Sistem sandaran dan pulihkan
  • Buat Ubuntu 20 bootable.04 USB melekat pada MS Windows 10