ภาพรวม
การสร้าง UEFI สำหรับการบู๊ตผ่านสื่อสดแบบ USB เท่านั้นนั้นเป็นสิ่งที่ตรงไปตรงมา เพียงคัดลอกไฟล์ไปยังไดรฟ์ USB ที่จัดรูปแบบ FAT32ของคุณ แค่นั้นแหละ!
จำไว้ว่าสำหรับการติดตั้งหรือการบูตสื่อ:
- คุณยังอาจต้องชัดเจนบอกคอมพิวเตอร์ของคุณบูตสื่อผ่าน UEFI
- แนะนำให้ใช้ตารางพาร์ติชัน GPTในการติดตั้งล่วงหน้าของ Windows 8 และใหม่กว่า
- อย่าลืมสร้างพาร์ติชันหลังจากที่คุณสร้างตารางพาร์ติชันแล้ว
- ใช้ISO64 (LTS) ล่าสุดของAMDเพราะสิ่งเหล่านี้มี UloadI bootloaders แน่นอน
สารบัญ
- คัดลอกไฟล์จากวิธีการ ISO
- ตัวอย่างผ่านเทอร์มินัล
- ตัวอย่างผ่าน GUI
- ตัวอย่างบน Windows
- วิธีการวนกลับ ISO (ขั้นสูง)
- สร้างไบนารี
- การสร้างไฟล์กำหนดค่า
- เพิ่มความคงทน
- ตรวจสอบความสมบูรณ์
- Boot ปลอดภัย UEFI
1. คัดลอกไฟล์จากวิธี ISO
วิธีนี้ยังใช้ได้กับสื่อบันทึกการติดตั้งอื่น ๆ ที่มี EFI loader เช่น Windows เป็นต้น
1.1 ตัวอย่างผ่านเทอร์มินัล
คุณสามารถทำสิ่งต่อไปนี้ถ้า604A-00EA
ไดรฟ์ USB ของคุณและคุณได้p7zip
ติดตั้งแล้ว:
$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/
คุณกำลังทำถ้าคุณมีเพียงหนึ่งพาร์ติชันบนไดรฟ์ USB นี้มิฉะนั้นคุณจะต้องธงพาร์ทิชันที่สามารถบูตเป็นเช่นผ่านparted
:
# parted /dev/sdX set 1 boot on
ไหน/dev/sdX
จะเป็นไดรฟ์ USB ของคุณและ1
จำนวนพาร์ทิชันที่ควรจะใช้ในการบูต
1.2 ตัวอย่างผ่าน GUI
เมาท์ไฟล์. iso และคัดลอกเนื้อหาไปยังไดรฟ์ USB ของคุณ กดCtrl+ Hใน Nautilus เพื่อแสดงและคัดลอกไฟล์ที่ซ่อนอยู่เช่นกัน
เพิ่มธงบูตผ่านGParted
1.3 ตัวอย่างบน Windows
- เหมือนกับข้างบนเพียงแค่คัดลอกไฟล์
- กดWindows/Super+ Xไปที่การจัดการดิสก์และตรวจสอบว่ามีการทำเครื่องหมายพาร์ติชันว่าทำงานหรือไม่ ใน Windows เวอร์ชันก่อนหน้า Windows 8 คุณกดWindows/Super+ Rเพื่อเปิดเมนูรันและเปิด
diskmgmt.msc
ซึ่งจะเปิดการจัดการดิสก์
2. วิธีการวนกลับ ISO (ขั้นสูง)
แทนที่จะแยกเนื้อหาจากอิมเมจ ISO แล้ว GRUB และ GRUB2 สามารถบูตจากอิมเมจ ISO โดยตรงผ่านอุปกรณ์ลูปแบ็ค เนื่องจากอิมเมจ ISO นั้นสามารถบู๊ตได้ UEFI เราสามารถตั้งค่าไดรฟ์ USB ที่มี ISO หลายอันพร้อมกับระบบปฏิบัติการที่แตกต่างกันโดยไม่ต้องสร้างความยุ่งเหยิงบนไดรฟ์ USB
หากคุณต้องการที่จะบูตของ Windows เกินไปคุณอาจต้องการที่จะดูที่SARDU ฉันจำได้ว่าใช้กับ Windows PE ประมาณปี 2005 และดูเหมือนว่าได้รับการอัปเดตเพื่อรองรับไดรฟ์ USB และ UEFI แต่โปรดจำไว้ว่าเครื่องมือนี้รองรับการบูทแบบดั้งเดิมด้วย
เราต้องการอะไร
- มีความรู้พื้นฐานเกี่ยวกับไฟล์คอนฟิกูเรชันของ GRUB
- ความรู้พื้นฐานมากเกี่ยวกับการบูท UEFI และ GRUB ในขณะที่เรากำลังจะสร้างอิมเมจ bootloader GRUB ของเราเองพร้อมโมดูลมากมาย
- อิมเมจ ISO ที่สามารถบูตได้ UEFI, ไดรฟ์ USB ที่จัดรูปแบบ FAT และเครื่องที่ใช้ Linux
- ไม่เราไม่ต้องการการติดตั้ง UEFI ของ Linux (ซึ่งอาจเป็นสถานการณ์ที่เกี่ยวกับไก่และไข่) Linux VM แบบดั้งเดิมใน VirtualBox นั้นใช้ได้
2.1 สร้างไบนารี
บนเครื่อง Ubuntu หรือ VM ของคุณตรวจสอบให้แน่ใจว่าได้ติดตั้งแพ็คเกจgrub-efi-amd64-bin (grub-efi-ia32-bin พร้อมใช้งานสำหรับสถาปัตยกรรม Intel รุ่น 32 บิตในรุ่นใหม่กว่า) แพคเกจอาจมีชื่อที่แตกต่างกันในการกระจายอื่นคุณสามารถเปรียบเทียบรายชื่อไฟล์ของแพคเกจเพื่อค้นหาแพคเกจที่เหมาะสมในการกระจายของคุณ
คำสั่งต่อไปนี้จะสร้างอิมเมจ GRUB ในกรณีนี้ไบนารี EFI ที่คอมพิวเตอร์ทุกเครื่องที่มีเฟิร์มแวร์ 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
เฟิร์มแวร์ UEFI มาตรฐานทุกตัวควรตรวจสอบหา\EFI\BOOT\
ชื่อไฟล์boot{arch}.efi
ดังนั้นสร้างโฟลเดอร์ในไดรฟ์ USB และคัดลอกภาพที่เราเพิ่งสร้างไปยังตำแหน่งนี้ สถาปัตยกรรมอื่น ๆ แทน x64 นั้นเป็นไปได้ แต่ให้ง่ายด้วย x64 / amd64
2.2 การสร้างไฟล์กำหนดค่า
ตัวอย่างพื้นฐานมากสำหรับgrub.cfg
ไฟล์กำหนดค่าที่ควรอยู่ในไดเรกทอรีเดียวกับที่bootx64.efi
มีลักษณะดังนี้:
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
}
}
Boot Ubuntu 14.04.2 LTS from ISO
สิ่งที่สำคัญคือการกำหนดค่าบล็อกที่มีชื่อ คุณสามารถเปลี่ยนสีและหมดเวลาตามที่คุณต้องการ ฉันเลือกblack/light-magenta
เนื่องจากยังคงดู Ubuntu-ish เล็กน้อย แต่สามารถแยกแยะได้ง่ายเมื่อทำการกำหนดค่าอื่น ๆ คุณสามารถหาตัวอย่างเพิ่มเติมสำหรับดิสทริบิวชันอื่น ๆ ในArch Wikiและการอ่านคู่มือ GRUBนั้นคุ้มค่ากับเวลาของคุณหากคุณต้องการที่จะไปให้ไกลกว่านั้น
กลับไปที่บล็อกการกำหนดค่าควรเห็นได้ชัดว่ามีการอ้างอิง ISO ว่าเป็น/efi/boot/ubuntu-14.04.2-desktop-amd64.iso
ดังนั้นคัดลอก ISO ของคุณไป\EFI\BOOT\
และแทนที่ubuntu-14.04.2-desktop-amd64.iso
ในการกำหนดค่าด้วยชื่อไฟล์จริงของ ISO ของคุณ
loopback loop $isofile
คือบรรทัดที่จะโหลดไฟล์ ISO ของเราไปยังอุปกรณ์ลูปแบ็คซึ่งเราสามารถบูตเคอร์เนล Linux ได้โดยตรง สิ่งนี้เป็นไปได้เนื่องจากภาพ EFI GRUB ของเรามีโมดูลลูปแบ็ค (การทดลองและข้อผิดพลาดเล็กน้อยเกี่ยวข้องกับการหาว่าโมดูลใดที่เหมาะสมที่จะรวมคุณไม่ควรเห็นข้อความแสดงข้อผิดพลาดใด ๆ แต่ก็ยังไม่สมบูรณ์แบบ) การพูดถึงเคอร์เนลที่คุณสามารถเพิ่มพารามิเตอร์เคอร์เนลเช่นtoram
พารามิเตอร์สำหรับภาษาต่างๆ (ตัวอย่างlocale=de_DE bootkbd=de
) และในตัวอย่าง:persistent
2.3 เพิ่มความคงทน
คุณสามารถเพิ่มพาร์ติชันได้ตามที่อธิบายไว้ใน: ฉันจะรับ live-USB เพื่อใช้งานพาร์ติชันเพื่อคงอยู่ได้อย่างไร หรือคุณสามารถสร้างcasper-rw
ไฟล์และวางไว้ที่รูทของไดรฟ์ USB
dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw
ฉันยังไม่ได้ทดสอบว่าค่าสูงสุดสัมบูรณ์คืออะไรควรอยู่ระหว่าง 4094 ถึง 4096 MB ใช้พาร์ติชันถ้าคุณตั้งใจจะใช้พื้นที่เพิ่ม โปรดทราบว่าการเปลี่ยนแปลงทุกอย่างใน (root) เป็นการแก้ไขระบบไฟล์ภาพซ้อนทับแม้กระทั่งการลบไฟล์
2.4 ตรวจสอบความสมบูรณ์
คุณควรดูคำตอบของคำถามต่อไปนี้เพื่อตรวจสอบว่าเนื้อหา Live ISO บนไดรฟ์ USB อยู่ในสภาพสมบูรณ์:
2.5 Boot ปลอดภัย UEFI
Secure Boot จะบังคับใช้กับเครื่อง Windows 10 ผมขอแนะนำให้คุณดู PreLoader ของ Linux Foundation เพื่อเพิ่มฟังก์ชั่น Secure Boot ในการตั้งค่านี้ นี่คือศิลปะ ASCIIบางอย่างที่แสดงเมนูของ HashTool ที่มาพร้อมกัน
ขอแสดงความยินดีฉันขอบอกว่าตอนนี้คุณเข้าใจการบูทของ UEFI แล้วและไม่ควรกลัวอีกต่อไป