รับ UEFI BIOS เพื่อความสอดคล้องในการบูตเมื่อทำการเชื่อมต่อ / ถอด USB?


3

ฉันกำลังพยายามใช้ USB เพื่อพิจารณาว่าควรโหลดระบบปฏิบัติการใด เช่นเมื่อเสียบ USB แล้ว Windows ควรโหลดและเมื่อไม่ได้เสียบปลั๊ก Ubuntu ควรโหลด การบูตจากสื่อที่เกี่ยวข้องทำงานได้ดี แต่ฉันมีปัญหากับการตั้งค่าลำดับการบู๊ต BIOS เมื่อเสียบปลั๊ก USB ฉันสามารถตั้งค่าลำดับการบู๊ตเป็น:

  1. USB (ด้วง)
  2. SSD (ด้วง)
  3. บูตเข้าสู่ Ubuntu โดยตรง
  4. บูตเข้าสู่ Windows โดยตรง

และคำสั่งนั้นจะคงที่ตราบใดที่เสียบแท่ง USB อย่างไรก็ตามเมื่อฉันทำตามขั้นตอนต่อไปนี้:

  1. [กับคอมพิวเตอร์ปิด] ถอด USB
  2. เปิดคอมพิวเตอร์และบูตเป็น Ubuntu หรือ Windows
  3. ปิดเครื่องคอมพิวเตอร์
  4. ใส่ USB
  5. เปิดคอมพิวเตอร์

ลำดับการบูตจะเปลี่ยนเป็น

  1. SSD (ด้วง)
  2. บูตเข้าสู่ Ubuntu โดยตรง
  3. บูตเข้าสู่ Windows โดยตรง
  4. USB (ด้วง)

มีวิธีหลีกเลี่ยง BIOS ที่เปลี่ยนลำดับการบู๊ตหรือบอกตำแหน่ง USB ที่จะมองอย่างชัดเจนหรือไม่?

เมนบอร์ดของฉันคือ ASUS Z97-A พร้อมยูทิลิตี้ ASUS UEFI BIOS เวอร์ชั่น 2.16.1240

ช่วยฉันด้วยผู้ใช้ superuser คุณเป็นความหวังเดียวของฉัน


ดังนั้นในคำอื่น ๆ เมื่อคุณเสียบ USB ของคุณ UEFI ของคุณจะไม่บูตจนกว่าคุณจะเลือกอย่างชัดเจนบนเมนูการบูต UEFI คุณสามารถบอกโหมดการบู๊ตของแต่ละรายการ (UEFI หรือ CSM / legacy) ได้หรือไม่?
Tom Yan

นอกจากนี้หากคุณสามารถดูรายการบูตของ USB ด้วยefibootmgr -vใน Ubuntu แม้ว่าคุณจะบูตโดยไม่ต้องเชื่อมต่อ USB ให้ลองลบรายการและดู
Tom Yan

ใช่และไม่. มันบู๊ตได้ถูกต้องและรักษาลำดับการบู๊ตที่สำคัญหากฉันไม่ถอด USB ออก อย่างไรก็ตามหากฉันถอด USB ออกลำดับการบู๊ตจะลบรายการ USB ทั้งหมดและเมื่อฉันต่ออีกครั้งมันจะอยู่ที่ด้านล่างของรายการ ฉันเดาว่านี่เป็นคุณสมบัติของ UEFI แต่ฉันต้องการวิธีการแทนที่และบังคับให้รายการ USB อยู่ด้านบนเสมอหากเชื่อมต่ออยู่
gris_martin

คำตอบ:


3

น่าเสียดายที่ไม่มีมาตรฐานในวิธีที่ EFI จัดการสิ่งนี้ แต่พฤติกรรมที่คุณอธิบายเป็นเรื่องธรรมดาในประสบการณ์ของฉัน ปัญหาคือ EFI นั้น "ฉลาดกว่า" เกี่ยวกับการระบุอุปกรณ์การบู๊ตมากกว่า BIOSes และ EFI จำนวนมากลบรายการบูตที่ไม่ถูกต้องออกเมื่อระบุว่าเป็นเช่นนั้น ดังนั้นเมื่อคุณถอดปลั๊ก USB และเริ่มต้นคอมพิวเตอร์ใหม่อีกครั้งมันจะสังเกตเห็นว่ามีรายการบูตที่ไม่ถูกต้องสำหรับไดรฟ์ USB และลบออกจากรายการบูต ฉันรู้ว่าไม่มีวิธีแก้ปัญหา in-EFI สำหรับปัญหาประเภทนี้

แต่นั่นไม่ได้หมายความว่าจะไม่มีวิธีแก้ปัญหา โดยเฉพาะคุณสามารถติดตั้งตัวจัดการการบูต EFI บนดิสก์ภายในของคุณที่ทำสิ่งที่คุณต้องการ - นั่นคือการบูต Windows เมื่อ USB แฟลชไดรฟ์ไม่ได้เสียบอยู่และบูต Ubuntu จากไดรฟ์ USB เมื่อเสียบปลั๊กคุณ ' d จากนั้นปล่อยให้ตัวจัดการการบูตนี้ถูกตั้งค่าให้เป็นโปรแกรมเริ่มต้นการบูต

น่าเสียดายที่ GRUB ของ AFAIK Ubuntu ไม่สามารถกำหนดค่าได้ด้วยวิธีนี้ดังนั้นคุณจะต้องมองหาที่อื่น กฎที่คุณต้องการที่จะปฏิบัติตามเป็นเรื่องง่ายพอที่จะทำให้โปรแกรมที่ง่ายจริงๆอาจจะเขียนเพื่อใช้ในงาน แต่อย่างหนึ่งที่ผมรู้ว่าสามารถทำมันซับซ้อนมากขึ้น: ฉันเองrefind จัดการการบูต ฉันขอแนะนำให้คุณลองติดตั้งและกำหนดค่าดังต่อไปนี้:

  1. บูตไปที่ Ubuntu
  2. ตรวจสอบเพื่อดูสิ่งที่ (ถ้ามีอะไร) /boot/efiจะติดตั้งอยู่ที่ (การพิมพ์df -hจะทำให้คุณเห็นพาร์ติชันที่ติดตั้งอยู่ในปัจจุบัน)
  3. หาก/boot/efiสอดคล้องกับพาร์ติชันบนไดรฟ์ USB ให้ยกเลิกการต่อเชื่อมและติดตั้งEFI System Partition (ESP)จากฮาร์ดดิสก์ของคุณ (ตามที่ระบุไว้ในการเชื่อมโยงที่ ESP เป็นพาร์ทิชัน FAT ด้วยรหัสชนิดโดยเฉพาะอย่างยิ่ง. คุณอาจจะต้องติดตามมันลงด้วยgdisk, partedหรือ GParted.)
  4. ติดตั้งแพ็คเกจ rEFInd Debian จากหน้าดาวน์โหลด rEFInd อย่าติดตั้ง PPA ติดตั้งแพ็คเกจ Debian (หรือใช้.zipไฟล์และเรียกใช้refind-installด้วยตนเอง)
  5. แก้ไข/boot/efi/EFI/refind/refind.confและทำการเปลี่ยนแปลงต่อไปนี้:
    • timeout -1ตั้งเลือก หากตั้งค่าไว้เมนู rEFInd จะไม่ปรากฏขึ้นเว้นแต่คุณจะกดปุ่มค้างไว้ขณะที่เริ่มต้น rEFInd คุณอาจต้องการระงับการตั้งค่านี้จนกระทั่งหลังจากคุณได้ทดสอบการติดตั้ง
    • default_selection "vmlinuz,Microsoft"ตั้งค่า สิ่งนี้ทำให้ rEFInd บูต Linux หากพบเคอร์เนล Linux และ Windows หากเคอร์เนล Linux ไม่มีอยู่นั่นคือหากไม่ได้ต่อปลั๊ก USB ของ Linux การเปลี่ยนvmlinuzด้วยgrubควรใช้งานได้และควรลองเปลี่ยนถ้าvmlinuzไม่ได้ผล
  6. รีบูทและทดสอบระบบ

หากคุณลองโดยไม่ต้องตั้งtimeoutค่าคุณจะเห็นเมนู rEFInd ปรากฏขึ้นและไฮไลต์ตัวเลือก Windows (ซึ่งอาจเป็นตัวเลือกเดียว) หากถอดไดรฟ์ USB แต่ตัวเลือกของอูบุนตูควรจะเน้นเป็นค่าเริ่มต้นหากเสียบไดรฟ์ USB หากใช้งานได้การตั้งค่าtimeout -1จะทำให้การบู๊ตตรงไปยังระบบปฏิบัติการที่ต้องการ

หาก rEFInd ตรวจไม่พบการติดตั้ง Ubuntu ที่เสียบไดรฟ์ USB ให้ลองกดปุ่ม Esc หากตัวเลือกของ Ubuntu ปรากฏขึ้นให้ลองตั้งค่าscan_delay 1(หรืออาจมีค่าที่สูงกว่า)

ปัญหาที่ใหญ่ที่สุดในการใช้ rEFInd ด้วยวิธีนี้คือจะมีความล่าช้าในขณะที่เริ่มต้นใช้งานสแกนหา OS และอื่น ๆ นี่ควรเป็นเพียงหนึ่งหรือสองวินาทีเมื่อไม่ได้เสียบปลั๊กไดรฟ์ USB และอาจเสียบปลั๊กอีกสองหรือสามวินาทีเมื่อเสียบไดรฟ์ USB ตัวจัดการการบูตที่เชี่ยวชาญมากขึ้นเพื่อจัดการงานเฉพาะนี้อาจจะสามารถทำงานกับ น้อยกว่าความล่าช้า แต่ฉันไม่รู้จักโปรแกรมดังกล่าว


ขอบคุณมากนี่เป็นคำตอบที่น่าอัศจรรย์และใช้งานได้เหมือนมีเสน่ห์! ฉันบริจาคให้กับสาเหตุของคุณ :)
gris_martin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.