Cara membuat multiboot usb dengan linux

Cara membuat multiboot usb dengan linux

Objektif

Buat perangkat USB yang dapat di -booting yang berisi beberapa distribusi Linux.

Persyaratan

  • Perangkat USB dengan ukuran yang cukup untuk mengandung beberapa ISO
  • Root Izin untuk memodifikasi partisi perangkat dan menginstal grub

Kesulitan

SEDANG

Perkenalan

Mampu menjalankan seluruh sistem operasi langsung dari media instalasi itu sangat berguna: kami dapat menguji distribusi, menggunakannya untuk tujuan cadangan, atau mungkin untuk memperbaiki sistem yang ada. Cara biasa untuk membuat media yang dapat di -boot adalah menulis gambar sistem di atasnya menggunakan DD perintah atau alat khusus. Dalam tutorial ini kita akan melihat cara membuat perangkat USB multiboot yang dapat meng -host beberapa gambar distribusi.

Sebuah kata di bios vs uefi

Uefi (Interface firmware terpadu) Ini adalah firmware modern yang dibuat sebagai pengganti warisan Bios (Sistem output input dasar). Mayoritas distribusi Linux baru -baru ini dapat boot di kedua mode tanpa masalah: pemasang akan secara otomatis menyesuaikan perilakunya sesuai.

Dua firmwares, dengan standar, terkait dengan tata letak tabel partisi tertentu: Uefi berjalan seiring dengan GPT, ketika Bios Dilengkapi dengan msdos satu. Namun, asosiasi itu tidak sepenuhnya wajib, karena, setidaknya secara teori, a Uefi firmware dapat memulai proses boot dari a msdos tata letak disk dan warisan Bios Sistem dapat melakukan hal yang sama dari a GPT Disk yang dipartisi.



Dalam kasus sebelumnya Efi partisi harus menjadi yang pertama pada disk, dan diformat dengan fat32 FileEnystem, di yang terakhir, a Boot BIOS Partisi tanpa sistem file yang ada di dalamnya harus ada, diperlukan untuk menyimpan tahap grub 1.5, karena pada a GPT Tata letak kesenjangan antara rekaman boot master dan partisi pertama tidak ada (di sinilah tahap grub ini biasanya diinstal).

Kami akan menyiapkan perangkat kami menggunakan tradisional msdos tata letak, menginstal grub bootloader di mode EFI dan Legacy untuk dapat memulai distribusi keduanya di Uefi Dan Bios mode.

Mempersiapkan perangkat

Hal pertama yang harus kami lakukan adalah menyiapkan perangkat kami. Kami akan membuat dua partisi, secara berurutan:

  • Sebuah Efi partisi
  • Partisi data

Yang pertama diperlukan untuk boot masuk Uefi mode, karena di mana grub-lefi diinstal. Partisi harus diformat dengan a fat32 berkas sistem. Secara teoritis, pengaturan akan berfungsi bahkan hanya dengan partisi ini, karena kami juga dapat menggunakannya untuk menyimpan gambar distribusi yang ingin kami gunakan. Namun dalam hal ini kami akan terbatas, karena fat32 tidak mendukung file lager dari 4GB, dan beberapa ISO dapat melebihi ukuran ini.

Partisi kedua akan diformat dengan sistem file yang didukung oleh Grub, dan akan meng -host gambar dan file konfigurasi grub.

Demi tutorial ini saya akan menganggap perangkat yang ingin kami siapkan /dev/sdb.

Tabel partisi dan partisi EFI

Hal pertama yang harus dilakukan adalah membuat a msdos Tabel partisi pada perangkat:

$ sudo berpisah -s /dev /sdb mklabel msdos

Setelah langkah ini, kita dapat membuat Efi partisi dan format dengan a fat32 berkas sistem. Ukuran yang disarankan untuk partisi adalah 550 MIB: Pada partisi yang lebih kecil kita bisa menerima kesalahan seperti "tidak cukup kelompok untuk 32 bit lemak":

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


Kami kemudian akan melanjutkan dalam mengaktifkan esp Dan boot Bendera:

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

Akhirnya kita harus membuat fat32 berkas sistem:

$ sudo mkfs.Fat -F32 /dev /sdb1

Partisi data

Partisi lain yang harus kita buat adalah partisi data, yang akan meng -host gambar ISO dari distribusi dan file konfigurasi grub. Kita dapat menyesuaikan ukuran partisi dengan kebutuhan kita: semakin besar, gambar terbanyak yang akan dapat dikandung. Di sini kita akan menggunakan semua ruang yang tersisa di perangkat:

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

Kami dapat memformat partisi dengan salah satu sistem file yang didukung oleh grub. Dalam hal ini saya akan menggunakan ext4:

$ sudo mkfs.ext4 /dev /sdb2

Buat Mountpoints dan Pasang Partisi

Langkah selanjutnya adalah memasang Efi partisi dan partisi data di suatu tempat dalam sistem kami sehingga kami dapat membuat direktori yang diperlukan, menginstal grub dan menempatkan file ISO kami di tempat:

# Buat mountpoints $ sudo mkdir /media /efi, data # pasang partisi EFI $ sudo mount /dev /sdb1 /media /EFI # pasang partisi data $ sudo mount /dev /sdb2 /media /data 

Menginstal grub bootloader

Agar perangkat kami dapat bekerja di keduanya warisan Dan Uefi Mode Kita perlu menginstal grub dan grub untuk Efi. Di fedora, biner grub itu disebut grub2 dan untuk menghasilkan konfigurasi khusus pada pengaturan UEFI, pemasangan GRUB2-EFI-Modul Paket juga diperlukan. Pada beberapa distribusi lain nama biner, itu hanya "grub":

# Menginstal legacy grub2 sudo grub2-install \ --sarget = i386-pc \ ---reck \ --boot-direktori = "/media/data/boot"/dev/sdb # Menginstal grub untuk eFi sudo grub2-install \- -target = x86_64-efi \ --reck \ ---removable \ --efi-directory = "/media/efi" \ --boot-direktori = "/media/data/boot" 

Seperti yang dapat Anda amati, dalam kedua kasus yang kami gunakan /media/data/boot Sebagai grub boot-direktori. Direktori ini akan dibuat secara otomatis ketika perintah di atas diluncurkan, dan akan meng -host file konfigurasi grub.

Salin gambar dan buat grub.File CFG

Untuk membuat atau memperbarui konfigurasi grub pada sistem Linux modern, kami biasanya menjalankan grub2-mkconfig perintah, atau, dalam distribusi berbasis Debian, UPDATE-GRUB skrip pembungkus. Alat -alat ini melakukan operasi yang dibutuhkan secara otomatis.



Namun, dalam kasus kami, kami harus membuat tangan kami kotor dan membuat konfigurasi secara manual. Tidak semua distribusi membutuhkan arahan yang sama, tetapi di sini akan melihat beberapa contoh umum. Pertama kita harus membuat direktori yang akan meng -host gambar distribusi kita:

$ sudo mkdir/media/data/boot/iso

Secara opsional kami mungkin ingin mengambil kepemilikan dari direktori ini, untuk dapat memindahkan gambar dengan lebih mudah. Dengan asumsi a pengenal Dan gid dari 1000 kami akan menjalankan:

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

Sekarang, misalkan kita ingin memasukkan gambar fedora netinstall terbaru dalam pengaturan kami. Pertama kita harus mengunduh gambar di /Media/Data/ISO direktori:

$ wget -o/media/data/boot/iso/fedora-workstation-netinst-x86_64-28-1.1.iso \ https: // download.Fedoraproject.org/pub/fedora/linux/rilis/28/workstation/x86_64/iso/fedora-workstation-netinst-x86_64-28-1.1.iso 

Kemudian, setelah unduhan selesai, kita harus menambahkan entri untuk itu di grub.CFG file di /media/data/boot/grub2 direktori. Karena ini adalah entri pertama, kami menambahkan file itu sendiri harus 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.Tahap2 = HD: Label = Fedora-WS-DVD-X86_64-28 Sunyi initrd (loop)/isolinux/initrd.img 

Struktur entri itu cukup sederhana: kami mendefinisikan isofile variabel, dengan jalur ke gambar kita sebagai nilai. Grub mampu boot dari ISO Directy, dan itulah yang Loopback Perintah adalah untuk: dalam contoh di atas gambar sistem file akan dipasang dan tersedia di lingkaran perangkat.

Garis dimulai dengan Linux berisi jalan menuju vmlinuz, yang merupakan kernel yang dapat dieksekusi, ditambah arahan boot lainnya. Di antara mereka, Anda dapat melihat iso-scan/fileName yang diperlukan untuk menemukan gambar ISO pada disk menggunakan jalur yang ditentukan.



Akhirnya, garis dimulai dengan initrd Menentukan jalur ke initrd. Semua jalur itu, jelas, relatif terhadap perangkat loop, itu sebabnya mereka diawali oleh (lingkaran) notasi.

Bagaimana kita mengetahui arahan yang harus kita gunakan dalam kasus tertentu? Salah satu caranya adalah dengan memasang gambar di suatu tempat di sistem kami dan melihat file yang ditempatkan di direktori isolinux. Namun, konfigurasi pra-tertulis sudah ada dan mudah ditemukan secara online.

Contoh lain, sekarang: kami akan menambahkan gambar rilis Ubuntu terbaru ke perangkat bootable kami:

$ wget http: // rilis.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 menambahkan entri ke file konfigurasi:

Menuentry "Ubuntu 18.10 - Coba tanpa menginstal "isofile ="/boot/iso/ubuntu -18.10-desktop-AMD64.iso "loopback loop" $ isOfile "linux (loop)/casper/vmlinuz iso-scan/filename =" $ isofile "boot = casper diam splash --- initrd (loop)/casper/initrd 

Inilah yang seharusnya terlihat multiboot-menu kami pada titik ini:

Menu multiboot grub

Menutup pikiran

Dalam tutorial ini kami melihat cara membuat perangkat multiboot-USB yang berisi banyak gambar distribusi. Mengikuti pengaturan ini, kami akan dapat mem -boot keduanya pada lawas di firmware UEFI, memilih gambar apa yang akan diluncurkan dari menu Grub.

Itu
grub.Pengaturan CFG yang disajikan di sini benar -benar minim, dan dapat disesuaikan lebih lanjut untuk memasukkan banyak modul lain dan menyesuaikan pengaturan lain seperti batas waktu: berkonsultasi dengan dokumentasi grub resmi adalah cara yang sempurna untuk mulai mengeksplorasi banyak kemungkinan.

Tutorial Linux Terkait:

  • Buat USB Bootable Manjaro Linux
  • Pengantar Penyelamatan Grub
  • Cara membuat MS Windows USB yang dapat di -boot di bawah Linux
  • Cara membuat USB multiboot dengan ventoy
  • Ubuntu 22.04 Tidak Booting: Panduan Pemecahan Masalah
  • Buat ubuntu 22 yang dapat di -boot.04 Disk Startup USB
  • Cara Membuat USB Bootable dari ISO di Linux
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Ubuntu 22.04 Sistem Pencadangan dan Pulihkan
  • Buat Ubuntu 20 Bootable.04 USB Stick pada MS Windows 10