Bagaimana cara membuat media langsung USB bootable UEFI saja?

107

Memiliki media langsung yang dapat mem-boot kedua cara bisa menjadi masalah ketika menginstal Ubuntu ke komputer Windows 8 yang saat ini tersedia.

Dengan kata lain, keuntungan utama untuk membuat media langsung USB yang dapat di - boot UEFI adalah: Anda tahu bahwa itu pasti di-boot dan diinstal melalui UEFI.

Karena Valve sudah melakukan instalasi USB booting UEFI hanya dengan Steam OS berbasis Debian dan UNetbootin - alternatif pilihan teratas untuk Startup Disk Creator Ubuntu - tidak kompatibel dengan UEFI dan oleh karena itu menyesatkan, saya pikir kita harus memiliki topik terpisah untuk membuat media langsung USB bootable UEFI saja.

LiveWireBT
sumber

Jawaban:

133

Gambaran

Menciptakan media langsung USB booting UEFI cukup mudah. Cukup salin file ke drive USB berformat FAT32 Anda . Itu dia!

Ingatlah bahwa untuk instalasi atau mem-boot media:

Daftar Isi

  • Salin file dari metode ISO
    1. Contoh via terminal
    2. Contoh melalui GUI
    3. Contoh di Windows
  • Metode loopback ISO (lanjutan)
    1. Menciptakan biner
    2. Membuat file konfigurasi
    3. Menambah ketekunan
    4. Memeriksa integritas
    5. Boot Aman UEFI

1. Salin file dari metode ISO

Metode ini juga berfungsi untuk media instal lainnya yang berisi loader EFI, seperti Windows misalnya.

1.1. Contoh via terminal

Anda dapat melakukan sesuatu seperti berikut ini jika 604A-00EAdrive USB Anda dan Anda telah p7zipmenginstal:

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

Anda selesai jika Anda hanya memiliki satu partisi pada drive USB ini, jika tidak, Anda harus menandai partisi tersebut sebagai yang dapat di-boot misalnya melalui parted:

# parted /dev/sdX set 1 boot on

Di mana /dev/sdXakan ada drive USB Anda dan 1nomor partisi yang harus digunakan untuk boot.

1.2. Contoh melalui GUI

  1. Pasang file .iso dan salin isinya ke drive USB Anda. Tekan Ctrl+ Hdi Nautilus untuk menampilkan dan menyalin file tersembunyi juga.

    nautilus menampilkan Disk Image Mounter dalam menu konteks ketika file iso dipilih

  2. Tambahkan bendera booting melalui GParted .

    GParted menunjukkan cara mengelola flag partisi

1.3. Contoh di Windows

  1. Sama seperti di atas, cukup salin file.
  2. Tekan Windows/Super+ X, buka Disk Management dan periksa apakah partisi ditandai sebagai aktif. Pada versi Windows sebelum Windows 8, Anda menekan Windows/Super+ Runtuk membuka menu run dan membuka diskmgmt.msc, yang akan membuka Manajemen Disk.

2. Metode loopback ISO (lanjutan)

Alih-alih mengekstraksi konten dari gambar ISO, GRUB dan GRUB2 dapat mem-boot dari gambar ISO secara langsung melalui perangkat loopback. Karena image ISO UEFI dapat di-boot, kita dapat mengatur drive USB yang berisi banyak ISO dengan sistem operasi berbeda tanpa membuat kekacauan pada drive USB.

Jika Anda ingin mem-boot Windows juga, Anda mungkin ingin melihat SARDU . Saya ingat menggunakannya dengan Windows PE sekitar tahun 2005 dan tampaknya telah diperbarui untuk mendukung drive USB dan UEFI, tetapi ingat bahwa alat ini juga mendukung booting lama.

Apa yang kita butuhkan?

  • Pengetahuan yang sangat mendasar tentang file konfigurasi GRUB.
  • Pengetahuan yang sangat mendasar tentang UEFI booting dan GRUB, karena kami akan menghasilkan image bootloader GRUB kami sendiri dengan banyak modul yang disertakan.
  • Gambar ISO yang dapat di-boot UEFI, drive USB yang diformat FAT dan mesin yang menjalankan Linux.
    • Tidak, kami tidak memerlukan instalasi UEFI Linux (yang mungkin situasi ayam dan telur), VM Linux tradisional seperti di VirtualBox baik-baik saja.

2.1. Menciptakan biner

Di mesin Ubuntu atau VM Anda pastikan paket grub-efi-amd64-bin diinstal (grub-efi-ia32-bin juga tersedia untuk arsitektur Intel 32-bit pada rilis yang lebih baru). Paket mungkin memiliki nama yang berbeda pada distribusi lain, Anda dapat membandingkan daftar file paket untuk menemukan paket yang tepat pada distribusi Anda.

Perintah berikut akan menghasilkan gambar GRUB, dalam hal ini biner EFI yang dapat dijalankan oleh setiap komputer dengan firmware 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

Setiap firmware UEFI standar harus mencari \EFI\BOOT\file bernama boot{arch}.efi, jadi buat folder pada drive USB dan salin gambar yang baru saja kita buat ke lokasi ini. Arsitektur lain bukan x64 mungkin, tetapi mari kita tetap sederhana dengan x64 / amd64.

2.2. Membuat file konfigurasi

Contoh yang sangat mendasar untuk grub.cfgfile konfigurasi yang harus ditempatkan di direktori yang sama dengan yang bootx64.efiakan terlihat seperti ini:

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
    }
}

Yang penting adalah blok konfigurasi dengan judul Boot Ubuntu 14.04.2 LTS from ISO. Anda dapat mengubah warna dan batas waktu sesuai keinginan Anda. Saya memilih black/light-magentakarena masih terlihat sedikit Ubuntu-ish tetapi mudah dibedakan ketika rantai memuat konfigurasi lain. Anda dapat menemukan lebih banyak contoh untuk distribusi lain di Arch Wiki dan membaca manual GRUB benar-benar bernilai waktu Anda jika Anda ingin melampaui itu.

Kembali ke blok konfigurasi, seharusnya sudah jelas bahwa ISO dirujuk sebagai /efi/boot/ubuntu-14.04.2-desktop-amd64.iso, jadi salin ISO Anda ke \EFI\BOOT\dan ganti ubuntu-14.04.2-desktop-amd64.isodalam konfigurasi dengan nama file sebenarnya dari ISO Anda.

loopback loop $isofileadalah barisnya, yang akan memuat file ISO kita ke perangkat loopback yang darinya kita dapat mem-boot kernel Linux secara langsung. Ini dimungkinkan karena gambar EFI GRUB kami menyertakan modul loopback. (Sedikit percobaan dan kesalahan terlibat dalam mencari tahu modul mana yang masuk akal untuk dimasukkan. Anda seharusnya tidak melihat pesan kesalahan, itu masih belum sempurna.) Berbicara tentang kernel Anda dapat menambahkan parameter kernel seperti toram, parameter untuk berbagai bahasa (contoh locale=de_DE bootkbd=de) dan seperti pada contoh:persistent

2.3. Menambah ketekunan

Anda dapat menambahkan partisi seperti yang dijelaskan dalam: Bagaimana cara mendapatkan live-USB untuk menggunakan partisi untuk kegigihan? Atau Anda dapat membuat casper-rwfile dan meletakkannya di root drive USB Anda.

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

Saya belum menguji apa yang maksimum absolut, itu harus di suatu tempat antara 4094 dan 4096 MB. Gunakan partisi jika Anda ingin menggunakan lebih banyak ruang. Perhatikan bahwa setiap perubahan pada (root) adalah modifikasi pada sistem file overlay, bahkan menghapus file.

2.4. Memeriksa integritas

Anda harus melihat jawaban atas pertanyaan-pertanyaan berikut untuk memverifikasi bahwa konten ISO Live pada USB drive dalam kondisi murni:

2.5. Boot Aman UEFI

Secure Boot akan menjadi wajib dengan mesin Windows 10, saya sarankan Anda melihat PreLoader Linux Foundation untuk menambahkan fungsionalitas Boot Aman ke pengaturan ini. Berikut adalah beberapa seni ASCII yang menggambarkan menu HashTool yang menyertainya .


Selamat, saya katakan Anda sekarang sudah menguasai booting UEFI dan tidak perlu takut lagi.

LiveWireBT
sumber
1
izinkan saya menunjukkan (a) bahwa semua PC yang dikirim dalam 5 tahun terakhir memiliki kemampuan ini; (B) bahwa root installer iso kemudian dapat menggunakan tongkat usb penuh sebagai penyimpanan persisten biasa. (gunakan opsi mount mount untuk melindungi dari penghapusan tidak disengaja.) untuk PC modern dan pola penggunaan umum, ini sepertinya solusi yang lebih baik daripada solusi default live-usb-creator.
user1539216
3
Saat menggunakan metode GUI saya telah mengalami beberapa kesalahan tautan simbolik . Apakah ini relevan? Bisakah Anda jelaskan?
VRR
1
Hai, LiveWireBT! Terima kasih atas jawaban yang menarik !! Saya mengikuti 2. Metode ISO loopback (lanjutan) dan berhasil melakukan UEFI boot dari usb flash drive. Tapi, di akhir boot saya mendapat pesan kesalahan: Tidak bisa me-mount / dev / loop2 di / cow dan setelah menekan enter saya melihat prompt (initramfs). Bisakah Anda membantu saya dengan itu?
zuba
Saya ingin juga berterima kasih atas panduan yang hebat, jelas dan ringkas. Saya bahkan tidak pernah berpikir untuk mempartisi thumb drive dan memiliki beberapa OS di dalamnya. Terima kasih lagi!
Hatem Jaber
2
Paling tidak dalam 16,04, "salin semua file" gagal boot karena argumen baris kernel grub.cfg "file = / cdrom / preseed / ubuntu.seed". Tidak ada file seperti itu, mungkin terkait dengan tautan simbolis yang sebelumnya hilang (ubuntu ke.). Edit grub.cfg untuk menghapus file = ... dan menggantinya dengan "live-media-path = / casper / ign_uuid"
ubfan1
3

Ekstrak dari file ISO ke FAT32

Mengekstrak konten file ISO desktop Ubuntu 64-bit ke partisi dengan sistem file FAT32 dan flag boot akan melakukan pekerjaan: untuk membuat drive langsung, yang melakukan booting hanya dalam mode UEFI. Ini disebut 'Salin file dari metode ISO' di sini (dalam jawaban yang diterima).

Uji apakah berjalan dalam mode UEFI atau BIOS

Tetapi mudah untuk menguji dalam sistem Ubuntu yang sedang berjalan (hidup dan diinstal), jika itu dibooting dalam mode UEFI atau BIOS. Jalankan baris perintah ini,

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

Ini membuatnya mudah untuk menggunakan sistem live yang dapat digunakan di kedua mode boot, yang juga bisa menjadi keuntungan.

Lihat juga tautan berikut untuk penjelasan dan deskripsi metode yang lebih terperinci,

help.ubuntu.com/community/Instalation/iso2usb

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

sudodus
sumber
2

Menggunakan ddberfungsi untuk saya, untuk beberapa alasan, versi GUI tidak berfungsi. Jadi, pertama, Anda mungkin ingin memantau proses dd , opsi lain menggunakan opsi SIGUSR1 untuk memicu dduntuk melaporkan kemajuannya secara berkala, tetapi ini lebih rumit daripada pv.

Kemudian:

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

( /dev/device_you_want_to_usebiasanya /dev/sdb, tetapi periksa dengan df!)

sup
sumber
8
Menciptakan media dengan cara ini tidak menghasilkan media yang hanya dapat di-boot UEFI . Penekanan ada pada paragraf terakhir dari pertanyaan: "Ada juga satu keuntungan untuk membuat media langsung USB booting UEFI: Anda tahu bahwa itu pasti di-boot melalui UEFI." Memiliki media yang dapat mem-boot kedua arah adalah masalah ketika mencoba memahami dan mengatur instalasi Ubuntu yang dapat di-boot-UEFI.
LiveWireBT
1
Saya melihat. Yang aneh adalah bahwa dengan cara ini, saya dapat menghasilkan gambar yang boot dalam mode UEFI (saya tahu itu, karena laptop diatur untuk memungkinkan hanya boot uefi dan juga karena layar inital). Jawaban yang dipilih tidak bekerja untuk saya, komputer tidak akan boot dengan gambar yang dibuat hanya dengan menyalin file.
sup
5
@sup metode ini menciptakan media yang dapat di -booting UEFI. Masalahnya adalah itu tidak hanya UEFI-bootable, seperti yang diminta dalam pertanyaan: itu juga dapat di-boot dalam mode BIOS.
Darael