ดูเหมือนว่าการติดตั้ง Ubuntu ไปยังฮาร์ดไดรฟ์ภายนอกเป็นไปไม่ได้กับ UEFI ซึ่ง MBR ไม่มีความแตกต่างอย่างมากระหว่างภายนอกและภายใน เป็นเรื่องจริงหรือเป็นไปได้ไหม
เป็นไปได้หรือไม่ที่จะรวมวิธีการบูตทั้งสองเข้าด้วยกัน?
ดูเหมือนว่าการติดตั้ง Ubuntu ไปยังฮาร์ดไดรฟ์ภายนอกเป็นไปไม่ได้กับ UEFI ซึ่ง MBR ไม่มีความแตกต่างอย่างมากระหว่างภายนอกและภายใน เป็นเรื่องจริงหรือเป็นไปได้ไหม
เป็นไปได้หรือไม่ที่จะรวมวิธีการบูตทั้งสองเข้าด้วยกัน?
คำตอบ:
มันเป็นไปได้จริง
ก่อนที่ฉันจะดำเนินการต่อคำแนะนำเหล่านี้มีไว้สำหรับ EFI System Partitions (ESP) ที่ว่างเปล่าและอาจจะเขียนทับไฟล์ที่มีอยู่หรือไม่ทำงานตามที่คาดไว้ อย่างน้อยทำการสำรองข้อมูล!
แพลตฟอร์ม: Legacy PC, คอมพิวเตอร์ Windows ที่ใช้ UEFI, คอมพิวเตอร์ Apple
คุณต้องทำตามคำแนะนำเหล่านี้จากการติดตั้งอื่นหรือสื่อสด
ติดตั้งgrub-efi-amd64-binแพ็คเกจ สิ่งนี้จะติดตั้งทรัพยากรที่จำเป็นเท่านั้น มันจะไม่เปลี่ยนการติดตั้งสไตล์ MBR ที่คุณมีอยู่ไปเป็น UEFI และพลิกกลับด้าน
ลดขนาดพาร์ติชัน Ubuntu ของคุณในGPartedเพื่อให้มีที่ว่างสำหรับ ESP ขนาดที่แนะนำสำหรับ ESP มีขนาดตั้งแต่ 100 MB ถึง 500 MB แต่ไฟล์ที่สร้างโดยทำตามคำแนะนำเหล่านี้ที่นี่จะไม่ต้องการมากกว่า 2 ถึง 5 เมกะไบต์
หมายเหตุ: มันไม่สำคัญว่า ESP ของคุณจะอยู่ที่ใดบนดิสก์และลดขนาดพาร์ติชั่น Ubuntu ของคุณด้วยเมกะไบต์ไม่กี่เมกะไบต์จากจุดสิ้นสุดควรรวดเร็วและปลอดภัย การหดตัวที่จุดเริ่มต้นคือไม่ปลอดภัย หนึ่ง caveat แม้ว่า ESP ของคุณควรเป็นพาร์ติชันหลักและไม่ได้เป็นส่วนหนึ่งของพาร์ติชันเสริมหรือโลจิคัลวอลุ่มหมายเลขพาร์ติชันจาก 1 ถึง 4 ไม่เป็นผลดีตัวเลขด้านบนบ่งบอกถึงพาร์ติชันเสริมบนตารางพาร์ติชัน MBR
เลือก FAT32 เป็นระบบไฟล์และตั้งค่าสถานะการบูต
เมานต์ ESP ที่คุณเพิ่งสร้างขึ้นและระบบไฟล์รูทที่คุณหด:
mkdir -p /mnt/esp
mount $esp_device /mnt/esp
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
หมายเหตุ: แทนที่
$esp_deviceและ$root_deviceด้วยอุปกรณ์ที่เหมาะสมเช่นและ/dev/sdb2mountpointsและเป็นตัวอย่างเพียงแค่เลือกที่จะทำงานร่วมกับส่วนที่เหลือของคำตอบนี้/dev/sdb1/mnt/esp/mnt/rootfs
ติดตั้งอิมเมจ EFI ของ GRUB และไฟล์กำหนดค่าขั้นต่ำด้วย:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
โปรดทราบว่า
$deviceเป็นอุปกรณ์ทั้งหมดเช่น/dev/sdbไม่ใช่พาร์ติชัน
เพียงเท่านี้เราก็ทำไปแล้ว แต่ขอให้ฉันพยายามอธิบายบางสิ่ง
พารามิเตอร์--target x86_64-efiจะทำให้มั่นใจได้ว่ารูปภาพและโมดูล UEFI จะถูกติดตั้งในพา ธ ที่กำหนด --removableจะติดตั้งอิมเมจ UEFI ไปยังเส้นทางฮาร์ดโค้ด\EFI\BOOT\BOOT{arch}.EFIสำหรับสื่อที่ถอดได้แทนการกระจายเฉพาะเส้นทาง ของคุณgrub.cfgใน/boot/grub/ควรจะทำงานด้วยวิธีการบูตและทั้งโฟลเดอร์ใหม่ที่ชื่อว่าตอนนี้ควรอยู่ติดกับx86_64-efii386-pc
เพื่อความสมบูรณ์นี่เป็นคำสั่งสำหรับสื่อที่ไม่สามารถลบได้ซึ่งเขียนและอาศัยรายการ NVRAM ในแพลตฟอร์ม:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
การติดตั้ง UEFI ที่เหมาะสมนั้นรวมถึงบรรทัดที่คล้ายกับบรรทัดด้านล่าง/etc/fstabแต่การตั้งค่าใช้งานได้โดยไม่ต้องใช้และรูปภาพ UEFI (คล้ายกับ MBR bootloader) มักจะเขียน / อัปเดตระหว่างการติดตั้งระบบปฏิบัติการเท่านั้น
UUID=1234-567F /boot/efi vfat defaults 0 1
การเพิ่มESPในการติดตั้งแบบดั้งเดิมบนไดรฟ์ที่แบ่งพาร์ติชัน GPT นั้นคล้ายกับด้านบน:
grub-efi-amd64-binแพ็คเกจbootสถานะgrub-installคำสั่งจากด้านบนที่มี--removableพารามิเตอร์นอกจากนี้ยังใช้งานได้หากคุณต้องการบู๊ตการติดตั้ง UEFI ที่มีอยู่บนคอมพิวเตอร์เครื่องอื่น
การสร้างBIOS Bootable Partition (BBP) สำหรับ GRUB นั้นแตกต่างกันเล็กน้อย:
ติดตั้งgrub-pc-binแพ็คเกจ
สร้างพาร์ติชันที่คล้ายกับคำแนะนำข้างต้นโดยการปรับขนาดพาร์ติชันรากและตั้งค่าbios_grubสถานะ เลือกไม่มีระบบไฟล์และไม่ฟอร์แมต
แก้ไขไฟล์การกำหนดค่า/etc/default/grubด้วยสิทธิ์ของผู้ดูแลระบบและเพิ่มGRUB_DEVICE=/dev/sdb6ในตอนท้าย แทนที่/dev/sdb6ด้วยชื่ออุปกรณ์จริงของ BBP ของคุณ คุณสามารถใช้ commandline editor nanoเพื่อทำให้เป็นเรื่องง่าย
ติดตั้งอิมเมจ GRUB MBR ไปยัง BBP ด้วย:
grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
คุณอาจต้องการลบหรือใส่เครื่องหมายในบรรทัด/etc/default/grubและเพิ่มเข้าไปในการติดตั้งจริง
ฉันพบว่า Mac เครื่องใหม่ (Mac Mini A1347 EMC 2840) ที่ฉันกำลังทดสอบสามารถบูตได้จาก FAT32 ESP มาตรฐานแม้แต่จาก MBR! อย่างไรก็ตามเราไปที่:
ติดตั้งgrub-efi-amd64-bin, hfsprogs, mactel-bootและmactel-boot-logoแพคเกจ (อุปกรณ์เสริม) คุณต้องเปิดใช้งานที่เก็บข้อมูลUniverse ( ฉันจะเปิดใช้งานที่เก็บ "Universe" จากบรรทัดคำสั่งได้อย่างไร ) และเพิ่มการสนับสนุน MactelปัจจุบันPPA (ดูรายละเอียดเพิ่มเติมจากทีม Mactel Support Community ) เพื่อติดตั้งทั้งหมด
สร้างพาร์ติชันด้วยระบบไฟล์ HFS + คล้ายกับคำแนะนำข้างต้นโดยปรับขนาดพาร์ติชันรูท ครั้งนี้เราต้องการพื้นที่เพิ่มอีกไม่กี่เมกะไบต์ดังนั้นควรเพิ่มขนาดของ ESP เป็นสองเท่าหากคุณมีเพียง 5 เมกะไบต์หรือน้อยกว่าก่อน ไม่จำเป็นต้องตั้งค่าสถานะ
เมานต์พาร์ติชัน:
mkdir -p /mnt/esp-mac
mount $esp-mac_device /mnt/esp-mac
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
หมายเหตุ: ฉันเลือก
$esp-mac_deviceและ/mnt/esp-macเพื่อหลีกเลี่ยงความขัดแย้ง
รันgrub-installคำสั่งที่มี--removableพารามิเตอร์:
grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
ในที่สุดการตั้งค่าพาร์ติชันในแบบที่ Mac คาดว่าจะเป็น:
sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
ในการบูต Ubuntu จากสื่อภายนอกบน Mac ตอนนี้คุณเพียงแค่ต้องกดปุ่มตัวเลือก ⌥หรือAltบนแป้นพิมพ์ Windows และเลือกดิสก์ที่เหมาะสม

เพื่อให้แม่นยำที่สุดแฟล็กสำหรับบูตไม่สำคัญสำหรับ GRUB ตามค่าเริ่มต้น GRUB จะค้นหา UUID เพื่อค้นหาระบบไฟล์ที่เหมาะสมในการบูต การตั้งค่าสถานะการบูตหรือการตั้งค่าสถานะ bios_grub ใน GParted มักจะตั้งค่าชนิด (MBR) หรือ GUID (GPT) สำหรับพาร์ติชัน
ประโยชน์ของการตั้งค่าประเภทที่ถูกต้องหรือ GUID นอกเหนือจากการตั้งค่าการทำงานที่เหมาะสมคือพาร์ทิชันเหล่านี้จะถูกซ่อนใน filemanager วิธีที่ง่ายที่สุดในการตรวจสอบและเปลี่ยนประเภทและ GUID ก็คือผ่านดิสก์ ( gnome-disks)


อีกวิธีหนึ่งคุณสามารถใช้แยกส่วนหรือ gdisk:
วิกิพีเดียมีรายการใหญ่ของguid ของสำหรับ GPT
เทียบเท่า commandline ในpartedตามคู่มือการอยู่และparted $device set partition esp onparted $device set partition bios_grub on
/boot/ไม่พบไฟล์" grub.cfgใน ESP จุดพาร์ทิชันไปทางขวา UUID ความคิดใด ๆ ฉันยินดีที่จะโพสต์คำถามใหม่