ดูเหมือนว่าการติดตั้ง 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/sdb2
mountpointsและเป็นตัวอย่างเพียงแค่เลือกที่จะทำงานร่วมกับส่วนที่เหลือของคำตอบนี้/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-efi
i386-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 on
parted $device set partition bios_grub on
/boot/
ไม่พบไฟล์" grub.cfg
ใน ESP จุดพาร์ทิชันไปทางขวา UUID ความคิดใด ๆ ฉันยินดีที่จะโพสต์คำถามใหม่