ELILO
เป็นเรื่องยากสำหรับฉันที่จะตัดสินใจว่าส่วนใดของการคัดลอก + วางเพราะมันดีจริงๆดังนั้นฉันจะขอให้คุณอ่าน
ร็อดสมิ ธ
ประพันธ์และรักษาทั้งสองและgdisk
rEFInd
แต่ก่อนที่คุณจะทำฉันต้องการแสดงความคิดเห็นเล็กน้อย ลิงก์ ELILO ด้านบนเป็นหนึ่งในหลาย ๆ หน้าของการบู๊ต UEFI ที่คุณจะพบในrodsbooks.com ซึ่งเขียนโดย Rod Smith เขาเป็นนักเขียนด้านเทคนิคที่ประสบความสำเร็จและหากคุณเคยลองหัวข้อการบูทของ UEFI และทำให้ไม่ได้อ่านอะไรบางอย่างเขาอาจเป็นไปได้เพราะคุณข้ามผลการค้นหาอันดับต้น ๆ
Linux UEFI boot
โดยทั่วไปเคอร์เนล Linux สามารถดำเนินการได้โดยตรงจากเฟิร์มแวร์
ในลิงค์ด้านบนเขากล่าวถึงEFI stub loader ของลีนุกซ์ - นี่คือสิ่งที่คุณควรใช้, ในความคิดของฉัน, เพราะมันช่วยให้เคอร์เนล linux ถูกเรียกโดยตรงจากเฟิร์มแวร์เอง. โดยไม่คำนึงถึงสิ่งที่คุณกำลังทำบางสิ่งบางอย่างจะถูกดำเนินการโดยเฟิร์ม - grub
และก็เสียงเหมือนมีอะไรบางอย่างที่เป็น หากเฟิร์มแวร์สามารถโหลดเคอร์เนลระบบปฏิบัติการของคุณได้โดยตรง bootloader คืออะไรดี? UEFI เฟิร์มแวร์ติดตั้งพาร์ติชัน GPT ที่จัดรูปแบบ FAT ซึ่งตั้งค่าสถานะespโดยตารางพาร์ติชันและดำเนินการพา ธ ที่นั่นซึ่งได้บันทึกเป็นตัวแปรสำหรับการบู๊ต UEFI ในโมดูลหน่วยความจำแฟลชออนบอร์ด ดังนั้นสิ่งหนึ่งที่คุณอาจทำคือวางเคอร์เนล linux บนพาร์ติชัน FAT นั้นและเก็บเส้นทางไว้ในตัวแปรการบูต ทันใดเคอร์เนลเป็นของมันเอง bootloader
bootloaders
สำหรับระบบ UEFI นั้น bootloaders ซ้ำซ้อน - รวมถึง ELILO
ปัญหา bootloaders ถูกออกแบบมาเพื่อแก้ไขคือว่าระบบ BIOS อ่านเฉพาะในภาคแรกของพาร์ติชันที่มีการตั้งค่าสถานะการบูตและดำเนินการ เป็นเรื่องยากเล็กน้อยที่จะทำสิ่งใดที่มีความหมายกับเคอร์เนล 512 ไบต์ดังนั้นสิ่งที่ต้องทำคือเขียนยูทิลิตี้เล็ก ๆ ที่สามารถติดตั้งระบบไฟล์ที่คุณเก็บเคอร์เนลจริงไว้แล้วทำการสับมัน
ในความเป็นจริง 512 ไบต์มักไม่เพียงพอสำหรับ bootloaders grub
ตัวอย่างเช่น chainloads จริง ๆ ก่อนที่จะ chainloading เคอร์เนลของคุณเพราะ wedges ขั้นตอนที่สองในพื้นที่ว่างระหว่างบูตเซกเตอร์และเซกเตอร์แรกของระบบแฟ้มของคุณ มันเป็นแฮ็คที่สกปรก - แต่มันก็ใช้ได้
Bootmanagers
เพื่อประโยชน์ในการตั้งค่าง่ายแม้ว่าบางคนอาจมีประโยชน์
สิ่งที่ rEFInd ของ Rod Smith ทำนั้นเปิดตัวเป็นแอปพลิเคชั่น EFI - นี่เป็นแนวคิดที่ค่อนข้างใหม่ เป็นโปรแกรมที่ดำเนินการจากดิสก์โดย - และกลับไปที่ - เฟิร์มแวร์ สิ่งที่ rEFInd ทำคืออนุญาตให้คุณจัดการเมนูการบู๊ตจากนั้นส่งคืนการเลือกการบู๊ตของคุณไปยังเฟิร์มแวร์เพื่อดำเนินการ มันมาพร้อมกับไดรเวอร์ระบบไฟล์ UEFI - ยกตัวอย่างเช่นคุณสามารถใช้ EFI-stub loader ของเคอร์เนลบนพาร์ติชั่นที่ไม่ใช่ FAT (เช่นปัจจุบันของคุณ/boot
) มันเป็นเรื่องง่ายที่จะจัดการ - ถ้าสิ่งนั้นเป็นสิ่งที่จำเป็น - และเพิ่มความเรียบง่ายของเคอร์เนลระบบปฏิบัติการให้กับความสะดวกสบายของตัวจัดการบู๊ตที่กำหนดค่าได้
การเปลี่ยนทิศทางอะตอม
เคอร์เนลไม่จำเป็นต้อง symlinks - mount --bind
มันสามารถ
หากมีเส้นทางใด ๆ ของคุณ/
ที่คุณควรจะไม่อนุญาตให้ symlinking /boot
มันเป็น symlink ที่เป็นเด็กกำพร้าใน/boot
นั้นไม่ใช่ปัญหาที่คุณควรแก้ไข ถึงกระนั้นมันก็เป็นวิธีปฏิบัติที่ใช้กันทั่วไปพอสมควรในการตั้งค่าทางอ้อมที่ซับซ้อน/boot
โดยการแจกแจงหลายอย่างแม้ว่ามันจะเป็นความคิดที่น่ากลัว - เพื่อจัดการเคอร์เนลอัพเดตแบบแทนที่และ / หรือการกำหนดค่าเคอร์เนลหลายตัว
นี่เป็นปัญหาสำหรับระบบ EFI ที่ไม่ได้รับการกำหนดค่าให้โหลดไดรเวอร์ระบบไฟล์(เช่นมีให้ในแพ็คเกจ rEFInd)เนื่องจาก FAT เป็นระบบไฟล์ที่ค่อนข้างโง่โดยรวมและไม่เข้าใจ
ฉันไม่ได้ใช้ไดรเวอร์ระบบไฟล์ UEFI ที่มาพร้อมกับ rEFInd เป็นการส่วนตัวถึงแม้ว่าการแจกจ่ายส่วนใหญ่จะมีแพ็คเกจ rEFInd ที่สามารถติดตั้งผ่านตัวจัดการแพคเกจและลืมเกี่ยวกับการใช้/boot
config symlinked ที่น่ากลัวของตัวเอง
กำหนดค่าของฉัน
ฉันเคยเขียนชุดคำแนะนำไว้และโพสต์ไว้ที่นี่แต่ดูเหมือนว่า:
% grep esp /etc/fstab &&
> ls /esp/EFI
LABEL=ESP /esp vfat defaults 0 1
/esp/EFI/arch_root /boot none bind,defaults 0 0
arch_root/ arch_sqsh/ arch_xbmc/ BOOT/ ipxe/
ดังนั้นฉันเพียงแค่ใส่สองบรรทัดเหล่านี้ในการ/etc/fstab
ชี้ไปยังโฟลเดอร์ที่ฉันตั้งใจจะมีการติดตั้งลินุกซ์ใหม่/boot
และฉันเกือบจะกังวลเกี่ยวกับสิ่งทั้งหมด ฉันยังต้องทำ:
cat /boot/refind_linux.conf
"Arch" "root=LABEL=data rootflags=subvol=arch_root,rw,ssd,compress-force=lzo,space_cache,relatime"
นอกเหนือจากการติดตั้งrefind-efi
แพคเกจผ่านpacman
สำหรับครั้งแรกนั่นคือทั้งหมดที่จำเป็นในการตั้งค่าการติดตั้ง / การกำหนดค่าแยกตามที่ฉันต้องการ โปรดทราบว่าส่วนใหญ่ของสตริงดังกล่าวข้างต้นประกอบด้วยตัวเลือกเมาท์ btrfs เฉพาะที่ระบุเป็นพารามิเตอร์เคอร์เนล ปกติมากขึ้น/boot/refind_linux.conf
อาจดูเหมือน:
"Menu Entry" "root=/dev/sda2"
และนั่นคือทั้งหมดที่ใช้
rodsbooks.com
หากคุณยังต้องการ ELILO คุณสามารถดูคำแนะนำการติดตั้งได้ที่ลิงค์ด้านบน หากคุณต้องการ rEFInd คุณจะพบลิงค์ไปยังมันในย่อหน้าแรก โดยทั่วไปถ้าคุณต้องการทำการกำหนดค่าการบู๊ต UEFI ให้อ่านrodsbooks.comก่อน