ฉันจะติดตั้งการติดตั้ง Ubuntu สองตัวบนฮาร์ดไดรฟ์เดี่ยวด้วย UEFI ได้อย่างไร


8

เพื่อเหตุผลด้านความปลอดภัยฉันต้องการติดตั้งระบบปฏิบัติการรองอย่างสมบูรณ์บนคอมพิวเตอร์เครื่องเดียวที่ใช้ UEFI การติดตั้งทั้งสองควรจะสามารถใช้พาร์ทิชันเข้ารหัส LUKS ที่แตกต่างกันเป็นอุปกรณ์รูท (LVM ด้านบนของการเข้ารหัสลับ) และต้องสามารถใช้เมล็ดของตนเองได้

การมีบูทคู่กับระบบปฏิบัติการสองระบบไม่ใช่เรื่องใหญ่ Ubuntu และ Fedora จะไม่เข้าไปยุ่งและสามารถแชร์พาร์ติชั่นระบบ EFI ได้ แต่การติดตั้ง Ubuntu สองตัวจะต่อสู้กันเพราะพวกเขาต้องการให้ทั้งคู่ติดตั้งอินสแตนซ์ Grub ในตำแหน่ง EFI เดียวกัน

  • มีวิธีเปลี่ยน Ubuntu เพื่อติดตั้ง Grub ในตำแหน่งอื่นนอกเหนือจาก/boot/efi/EFI/ubuntuการติดตั้งหรือไม่? ฉันต้องการวิธีถาวรเพื่อให้การอัปเดตแพคเกจและการปรับปรุงเคอร์เนล / ด้วงยังคงติดตั้งในเส้นทางนั้น เช่นเดียวกับวิธี Fedora /boot/efi/EFI/fedoraของด้วงจะติดตั้งใน ฉันไม่พบตัวเลือกการกำหนดค่าใน Grub ถ้าทำได้เมนูการบูต Dell UEFI ของฉันจะอนุญาตให้ฉันเลือกระบบปฏิบัติการที่จะโหลด บางทีฉันอาจจะขาดกาวระหว่าง efibootmgr และ grub-efi ที่นี่

  • หรือเป็นไปได้ที่จะใช้การติดตั้งด้วงเดียวจากหนึ่งในสองการติดตั้ง Ubuntu และตรวจสอบการตั้งค่าการบู๊ตที่ถูกต้องโดยอัตโนมัติหรือไม่? ฉันหมายถึงฉันรู้ว่าos-proberจะพบ/bootพาร์ทิชันอื่นที่มีเมล็ด แต่จะรู้ได้อย่างไรว่าพารามิเตอร์การบู๊ตที่ถูกต้องสำหรับระบบปฏิบัติการนั้น (เช่นปริมาณ LVM ในปริมาณ crypto ที่ล็อคไว้เป็นระบบไฟล์รูท) ฉันเข้าใจว่ามันสามารถทำได้ด้วยการติดตั้งพาร์ติชันเดียวที่ไม่ได้เข้ารหัส แต่มันไม่สามารถจับคู่/bootกับระบบไฟล์รูทที่เกี่ยวข้องได้ใช่ไหม และมันเป็นไปไม่ได้เลยถ้าเข้ารหัส ดังนั้นจะต้องมีการปรับแต่งไฟล์กำหนดค่าด้วงด้วยตนเอง ฉันไม่ชอบตัวเลือกนี้ของการกำหนดค่า bootloader ที่ใช้ร่วมกันเพียงครั้งเดียวทำให้ระบบปฏิบัติการทั้งสองแยกจากกันน้อยลง

ฉันสบายดีกับการติดตั้งโดยใช้ข้อความเซิร์ฟเวอร์ นอกจากนี้ยังมีการกำหนดค่าแบบกำหนดเองบางอย่างตราบใดที่ฉันไม่ต้องทำซ้ำขั้นตอนสำหรับการปรับปรุงเคอร์เนล / Grub ทุกครั้ง

คำตอบ:


6

ฉันมีคำแนะนำสองข้อ ...

ตัวเลือก # 1: แยก ESPs

ภายใต้ EFI บูตโหลดเดอร์จะอยู่ใน " EFI " System Partition (ESP) ฉันใส่คำว่า "the" ในเครื่องหมายคำพูดเพราะไม่มีกฎที่บอกว่าคุณ จำกัด ESP หนึ่งตัว หากคุณสร้าง ESP สองตัวบนฮาร์ดดิสก์ของคุณคุณสามารถใช้หนึ่งในนั้นสำหรับการติดตั้งครั้งแรกและ ESP ที่สองสำหรับการติดตั้งครั้งที่สอง สิ่งนี้ควรใช้งานได้อย่างราบรื่นแม้ว่าคุณจะต้องสร้างพาร์ติชันด้วยตนเอง (โดยใช้ตัวเลือก "Something Else" ระหว่างการติดตั้ง) อย่างน้อยสำหรับการติดตั้ง Ubuntu ครั้งที่สอง

ปัญหาหนึ่งของวิธีนี้คือแม้ว่าข้อกำหนดของ EFI จะระบุอย่างชัดเจนว่าคุณสามารถสร้าง ESP ได้มากเท่าที่คุณต้องการซอฟต์แวร์บางตัวอาจสับสน ตัวอย่างที่เด่นชัดอย่างหนึ่งคือตัวติดตั้ง Windows อย่างน้อยก็ผ่าน Windows 7 (ฉันไม่รู้เกี่ยวกับ Windows 8 หรือใหม่กว่า); เมื่อตัวติดตั้ง Windows 7 เห็นดิสก์ที่มี ESP สองตัวมันจะสะบัดออกและทำสิ่งแปลก ๆ IIRC ไม่สามารถทำการติดตั้งของตัวเองได้อย่างสมบูรณ์ เป็นไปได้ว่าเครื่องมือซ่อมแซม Windows จะประสบปัญหาเดียวกัน หากคุณไม่ได้บูท Windows ในระบบนี้ก็ไม่ควรเป็นเรื่องใหญ่ ถ้าคุณเป็นการบูตด้วย Windows คุณควรตระหนักถึงปัญหาเพราะคุณสามารถเอาชนะมันได้อย่างง่ายดายโดยการเปลี่ยนรหัสประเภทของ ESP ที่ไม่ใช่ Windows หากคุณประสบปัญหา โปรดทราบว่า Windows จะบูตได้ดีบนดิสก์ที่มี ESP หลายตัว มันเป็นเพียงตัวติดตั้งที่ฉายาบนดิสก์ดังกล่าว

ปัญหาอื่นคือวิธีที่คุณจะสลับระหว่างการแจกแจงสองแบบ คุณอาจต้องปรับแต่งการตั้งค่า GRUB หนึ่งหรือทั้งสองอย่างโดยใช้เครื่องมือเช่นGRUB Customizer ตัวเลือกอื่น (แต่ไม่เข้ากัน) จะใช้ตัวจัดการการบูตของเฟิร์มแวร์ของคุณเพื่อสลับระหว่างการติดตั้ง GRUB ทั้งสองของคุณ

ตัวเลือก # 2: ละทิ้ง GRUB (หรืออย่างน้อยเครื่องมือ GRUB ของ Ubuntu)

ปัญหาเกี่ยวกับด้วงสำหรับสถานการณ์ของคุณคือคุณมีสองการติดตั้งและเครื่องมือบำรุงรักษา GRUB นั้นอาจสับสนโดยการกำหนดค่านั้น การสังเกตนี้นำไปสู่การแก้ปัญหาที่ชัดเจนว่าคุณไม่ควรใช้เครื่องมือเหล่านั้น มีบูตตัก EFI อื่น ๆ อีกหลายตัวสำหรับ Linux ซึ่งส่วนใหญ่ง่ายต่อการบำรุงรักษาด้วยตนเองมากกว่า GRUB คุณสามารถตั้งค่า ELILO, SYSLINUX, GRUB ที่เป็นแพตช์ของ Fedora, gummiboot หรือ rEFInd และจัดการการติดตั้งของคุณทั้งสองด้วยตนเอง ในความเป็นจริงเนื่องจาก rEFInd ตรวจพบเมล็ดเมื่อใดก็ตามที่บู๊ต rEFInd ควรอยู่ใกล้กับไม่มีการบำรุงรักษาเมื่อตั้งค่าแล้ว อีกทางหนึ่ง แต่ในหลอดเลือดดำที่คล้ายกันคุณสามารถแก้ไขgrub.cfgไฟล์ของคุณเพื่อทำสิ่งที่คุณต้องการแทนที่จะพึ่งพาสคริปต์การตั้งค่า GRUB

นอกเหนือจาก rEFInd เครื่องมือเหล่านี้ทั้งหมดจะต้องการให้คุณทำการเปลี่ยนแปลงการกำหนดค่าเมื่อใดก็ตามที่คุณอัปเดตเคอร์เนลซึ่งจะเป็นการลาก นอกจากนี้ยังมีคำถามว่าจะติดตั้งโปรแกรมบูตพิเศษเมื่อใดและอย่างไร ฉันอาจจะนำไปใช้จนกว่าจะหลังจากการติดตั้ง Ubuntu ครั้งที่สองเนื่องจากการติดตั้งแต่ละครั้งจะลงทะเบียนสำเนาของตัวเองของ GRUB เป็นบูตโหลดเดอร์เริ่มต้นและคุณต้องการแทนที่ค่าเริ่มต้นนั้น

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

ตัวตักการบูต EFI บางตัวมีข้อกำหนดการแบ่งพาร์ติชันหรือระบบไฟล์เพิ่มเติมโดยเฉพาะ ที่โดดเด่นที่สุดคือ ELILO, SYSLINUX และ gummiboot ทั้งหมดต้องการเคอร์เนลเพื่ออยู่ในพาร์ติชัน FAT และ ESP ทำงานได้ดีที่สุดสำหรับสิ่งนี้ คุณสามารถทำได้โดยติดตั้ง ESP ที่/bootแต่นี่เป็นวิธีแก้ปัญหาที่ไม่แน่นอนใน Ubuntu เพราะการปรับปรุงแพ็คเกจบางอย่างจำเป็นต้องมีลิงก์สัญลักษณ์ คุณจะมีปัญหาในการทำเช่นนี้ด้วยการติดตั้ง Ubuntu สองชุดแยกกันเพราะทั้งคู่พยายามอ้างสิทธิ์ในไฟล์เดียวกัน (ในกรณีนี้ "ESP" จริงๆหมายถึง "พาร์ติชันที่บูตโหลดเดอร์วิ่ง" ดังนั้นคุณสามารถมี ESP ได้เพียงอันเดียวในกรณีนี้) GRUB Legacy และ rEFInd มีความยืดหยุ่นมากกว่าในเรื่องนี้

คำแนะนำของฉัน

โดยส่วนตัวแล้วฉันจะใช้ rEFInd สำหรับเรื่องนี้ - แต่ในขณะที่ฉันรักษา rEFInd ฉันจะไม่เป็นกลาง ในความเป็นจริงฉันมีคอมพิวเตอร์ที่มีมัลติบูทระหว่างการติดตั้ง Ubuntu สามอันและสวิตช์ rEFInd ระหว่างมันก็ใช้ได้ ระบบนี้ไม่ใช้การเข้ารหัส แต่ฉันสงสัยว่ามันจะทำให้เกิดปัญหาใหม่จากมุมมองของ rEFInd หรือไม่

ที่กล่าวว่า ESPs แยกควรทำงานได้ดีเช่นเดียวกันกับข้อแม้ที่คุณอาจต้องใช้ GRUB Customizer เพื่อปรับแต่งการตั้งค่าสำเนาอย่างน้อยหนึ่งใน GRUB เหล่านั้น


คำแนะนำที่ดีมากขอบคุณ! ฉันแน่ใจว่าคุณถูกต้องเกี่ยวกับว่าสามารถมี ESP หลายตัวโดยสเปค แต่ฉันสงสัยว่าการใช้ Dell Latitude UEFI ของฉันยังสนับสนุน มันช่วยให้ฉันสามารถเรียกดูเส้นทางโดยไดรฟ์เดี่ยวแต่ละตัวได้ ฉันต้องลองจริงๆ
gertvdijk

หากการใช้งาน EFI ของ Dell ของคุณเสียจนไม่สามารถจัดการ ESP ได้หลายตัวคุณควรส่งคืนให้ร้านเพื่อขอเงินคืน อย่างจริงจัง; สิ่งเลวร้ายแบบนั้นจะบ่งบอกถึงความน่าสะพรึงกลัวเช่นนี้ที่ฉันจะไม่เชื่อถือเฟิร์มแวร์ในการทำงานขั้นพื้นฐานที่สุด ในทางปฏิบัติฉันไม่คิดว่ามันจะแย่ขนาดนั้น ฉันไม่เคยได้ยินเกี่ยวกับ EFI ที่ไม่สามารถจัดการกับ ESP ได้หลายตัว
Rod Smith

1

นี่คือขั้นตอนที่ฉันใช้ในการบู๊ตคู่กับระบบ Ubuntu ที่เข้ารหัส LUKS สองระบบบนฮาร์ดไดรฟ์เดียวกับ UEFI โดยใช้ตัวเลือก # 2 ที่ Rod Smith แนะนำก่อนหน้านี้ นี่เป็นเฉพาะกับ Ubuntu 18.04.1- เดสก์ท็อป การเข้ารหัสโฮมไดเรกทอรีจะไม่ได้รับอีกต่อไปเป็นตัวเลือกระหว่างการติดตั้งเนื่องจากมีความกังวลเกี่ยวกับความน่าเชื่อถือและการบำรุงรักษา eCryptfs ขอแนะนำให้ใช้ LUKS แทนดังนั้นฉันคิดว่าเป็นตัวเลือกที่ดีที่สุดที่จะมีผู้ใช้หลายคนที่มีพาร์ทิชันที่เข้ารหัสไว้ภายในบ้าน

    1. บูตเป็น Live USB นี่คือการดาวน์โหลด ISO และใช้ Startup Disk Creator เพื่อจัดรูปแบบและตั้งค่าไดรฟ์ USB
    1. ใช้ GParted เพื่อแบ่งพาร์ติชันดิสก์ สิ่งนี้มีพื้นฐานมาจากคำแนะนำที่https://help.ubuntu.com/community/ManualFullSystemEncryptionและใช้ค่าเริ่มต้นที่กำหนดโดยตัวติดตั้ง Ubuntu เมื่อเลือกการเข้ารหัสดิสก์สำหรับดิสก์เต็ม
      • พาร์ติชันระบบ EFI / 512MiB / FAT32 / boot, esp (แฟล็ก)
      • ระบบบู๊ต # 1 / 732MiB / EXT4
      • ระบบบู๊ต # 2 / 732MiB / EXT4
      • Data Encrypted # 1 / [ขนาดที่ต้องการ] / เคลียร์
      • Data Encrypted # 2 / [ขนาดที่ต้องการ] / เคลียร์
    1. รีบูทกลับเป็น Live USB
      • ติดตั้ง Ubuntu
      • เลือกการตั้งค่าการติดตั้ง
      • เลือก "Something else" สำหรับรูปแบบดิสก์พาร์ติชันและภายในการกำหนดค่าพาร์ติชันสำหรับการติดตั้ง:
        • เลือก "EFI System Partition" เป็น bootloader ในเมนูด้านล่าง
        • เลือก "Data Encrypted # 1" และเลือก "อุปกรณ์ทางกายภาพสำหรับการเข้ารหัส" จากนั้นป้อนวลีการเข้ารหัสที่จะใช้สำหรับพาร์ติชัน
        • เลือกพาร์ติชันที่สร้างขึ้นใหม่ด้วย EXT4 และเปลี่ยนจุดเชื่อมต่อเป็น "/"
        • เลือก "Boot System # 1" และให้จุดเมานต์เป็น "/ boot"
      • ดำเนินการต่อและติดตั้ง
    1. เริ่มต้นใหม่ในการติดตั้งใหม่
      • ติดตั้ง "refind" ผ่าน "apt-get install refind" และติดตั้งโดยอัตโนมัติไปที่ ESP "EFI System Partition"
    1. รีบูทกลับเข้าไปใน Live USB
      • ทำซ้ำขั้นตอนที่ 3 และ 4 สำหรับพาร์ติชันระบบบูต # 2 และการเข้ารหัสข้อมูล # 2 ที่ติดตั้งการติดตั้ง Ubuntu ครั้งที่สอง
    1. กำหนดค่าและอัพเกรดการติดตั้งแต่ละครั้งตามต้องการ

1

ฉันใช้วิธีการต่อไปนี้ด้วย ESP เดียว:

ฉันสร้างบูตโหลดเดอร์เพิ่มเติมสำหรับแต่ละระบบปฏิบัติการด้วย

sudo grub-install --bootloader-id=ID

ใช้แตกต่างกันIDสำหรับแต่ละระบบปฏิบัติการ

ตัวอย่าง:

ฉันติดตั้ง Ubuntu 16.04 และ Ubuntu 18.04 แล้ว ฉันบูตเข้าสู่ Ubuntu 16.04 และเรียกใช้

sudo grub-install --bootloader-id=Ubuntu1604

จากการบูทเข้าสู่ Ubuntu 18.04 ฉันก็เปิดทำงาน

sudo grub-install --bootloader-id=Ubuntu1804

ในการตั้งค่า UEFI ผมเห็นรายการบูตใหม่ที่มีชื่อUbuntu1604และUbuntu1804และจัดเรียงลำดับการบูตให้เป็นหนึ่งในชุดของรายการใหม่ในสถานที่แรก

ฉันยังสามารถดูโฟลเดอร์ที่มีชื่อนี้ได้ใน ESP

เมื่อระบบอัพเกรดมาพร้อมกับด้วงรุ่นใหม่มันจะทำการติดตั้งอินสแตนซ์ใหม่ของด้วงเพื่อ - ubuntuโฟลเดอร์บน ESP มันจะไม่ส่งผลกระทบต่อบูตโหลดเดอร์ที่ฉันสร้างขึ้นเอง แต่ฉันต้องจัดเรียงลำดับการบูตอีกครั้ง ในฐานะที่เป็นผู้ร่วมubuntuจะถูกผลักไปยังสถานที่แรกในการสั่งซื้อบูต

นี่คือสิ่งที่efibootmgr -vแสดงในการกำหนดค่าของฉัน:

~ $ efibootmgr -v
BootCurrent: 0001
หมดเวลา: 0 วินาที
BootOrder: 0001,0002,0004,0000,0003,0005
Boot0000 * ubuntu HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / ไฟล์ (\ EFI \ ubuntu \ shimx64.efi)
Boot0001 * US1804 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / ไฟล์ (\ EFI \ US1804 \ grubx64.efi)
Boot0002 * US1604 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / ไฟล์ (\ EFI \ US1604 \ grubx64.efi)
Boot0003 * UEFI OS HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / ไฟล์ (\ EFI \ BOOT \ BOOTX64.EFI)
Boot0004 * US1904 HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / ไฟล์ (\ EFI \ US1904 \ shimx64.efi)
Boot0005 * ubuntu HD (1, GPT, 249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) / ไฟล์ (EFI \ Ubuntu \ grubx64.efi)

ยังไม่ได้ผลสำหรับฉัน ฉันเปลี่ยนค่าเริ่มต้นใน / etc / default / grub เป็นการแจกจ่ายเช่นGRUB_DISTRIBUTOR="Bionic_18_04"และติดตั้ง grub ใช้เป็น ID เริ่มต้นของ UEFI แต่ทุกครั้งที่ใช้เพียง /EFI/ubuntu/grub.cfg เป็นตำแหน่งเริ่มต้นในการบูตไม่ใช่ /EFI/bionic_18_04/grub.cfg ใหม่ของฉัน
oldfred

@ oldfred สำหรับฉันมันใช้งานได้ดีเป็นเวลาหลายปีในการใช้งานบูตสามครั้ง
mook765

ลองคำสั่งของคุณแทนที่จะเปลี่ยนชื่อใน / etc / default / grub ทำไม่แตกต่างกัน UEFI ถูกตั้งค่าเป็นรายการเริ่มต้นการบูตใหม่ แต่มันถูกบูทโดยใช้ my / efi / ubuntu กับดิสโก้เป็นการบูตโดยปริยายแทนที่จะเป็นด้วงในโฟลเดอร์ใหม่ / EFI / ubuntu1804 ฉันคิดว่ามันเป็นด้วงไม่ใช่ UEFI ที่สร้างความแตกต่าง
oldfred

@oldfred โปรดดูผลลัพธ์efibootmgr -vที่ฉันเพิ่มเข้าไปในคำตอบของฉัน มันได้ผล. คุณอาจมีการเปลี่ยนแปลงเพิ่มเติมซึ่งทำให้คุณไม่สามารถทำเช่นนั้นได้ สิ่งที่ฉันอธิบายคือสิ่งเดียวที่ฉันทำได้เพื่อให้มันทำงาน
mook765

ฉันตรวจสอบ efibootmgr -v และมันถูกตั้งค่าสำหรับรายการใหม่ แต่บูตด้วงใน / EFI / ubuntu Mine กำลังบูท /EFI/ubuntu1804/shimx64.efi คุณใช้ grubx64.efi หรือ shimx64.efi ซึ่งอาจต่างไปหรือเปล่า ฉันปิดการใช้งานการรักษาความปลอดภัย แต่มันเริ่มต้นที่จะชิมเป็นรายการ ubuntu1804 แรก ในบางครั้งฉันก็จบลงด้วยรายการ UEFI หรือโฟลเดอร์ใน / EFI ที่ฉันมีปัญหาในการบูทและต้องใช้ rEFInd บนไดรฟ์อื่นเพื่อบู๊ต ดังนั้นตอนนี้ฉันไม่ต้องการมีโฟลเดอร์ / รายการ EFI มากเกินไปใน UEFI
oldfred
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.