ฉันจะติดตั้ง GRUB ลงในพาร์ติชัน EFI ใหม่ได้อย่างไร?


32

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


3
คำแนะนำในลิงค์ที่ให้นั้นใช้ได้สำหรับการติดตั้ง GRUB ในโหมด BIOS ดั้งเดิมเท่านั้นซึ่งจะไม่สามารถใช้งานได้ในกรณีของคุณ ในการติดตั้ง GRUB ไปยังการติดตั้ง Ubuntu ในโหมด EFI BIOS โปรดอ่านคำตอบของฉัน :)
cl-netbox

ขอบคุณมาก! :) ฉันมีคำถาม: เมื่อฉันติดตั้ง Ubuntu ในระบบ UEFI ของฉันฉันพบสองรายการในประวัติ มีวิธีที่จะมีรายการอูบุนตู unic หรือไม่? ในกรณีของตารางพาร์ติชัน MBR (ดังนั้นไม่มี EFI หรือพาร์ติชันสำหรับบูตอื่น ๆ ) ฉันสามารถใช้คำสั่งเดียวกันได้ยกเว้น: sudo mount / dev / sd ** / mnt / boot / efi?
Generoso

คุณสามารถลองลบรายการ Ubuntu ที่สองด้วย: sudo efibootmgr (แสดงรายการทั้งหมด) | sudo efi bootmgr -b <entry-number> -B .... และเพื่อติดตั้ง GRUB ในโหมด BIOS ดั้งเดิมดำเนินการคำสั่งเหล่านี้: sudo mount / dev / sd ** / mnt | sudo grub-install --boot-directory = / mnt / boot / dev / sd * (* = disk | ** = พาร์ติชั่นระบบ)! :)
cl-netbox

สมบูรณ์แบบ :) อย่างไรก็ตามมีระบบ UEFI และพาร์ติชัน EFI ดังนั้นมีวิธีหลีกเลี่ยงการด้วงด้วงเมื่อฉันทำการติดตั้ง Windows ใหม่หรือไม่
Generoso

Microsoft ไม่ได้ใส่ใจเรื่องอื่นนอกจากผลิตภัณฑ์ของตนเองดังนั้นคุณสามารถติดตั้งระบบ Linux โดยไม่ทำอันตรายต่อ Windows - น่าเสียดายที่นี่ไม่ใช่กรณีอื่น ๆ - ดังนั้นเมื่อคุณติดตั้ง Windows หลังจากที่คุณติดตั้ง Windows แล้ว อูบุนตูคุณต้องเรียกคืน GRUB สำหรับบูตหลังจากนั้น :)
cl-netbox

คำตอบ:


54

ติดตั้ง GRUB สำหรับบูตโหลดเดอร์อีกครั้งเพื่อติดตั้ง Ubuntu ในโหมด EFI ด้วยวิธีนี้ ...

บูตจากสื่อการติดตั้ง Ubuntu และเลือก 'ลอง Ubuntu โดยไม่ต้องติดตั้ง'
(บูตสื่อการติดตั้งของคุณในโหมด EFI เลือกรายการ Ubuntu ที่มี UEFI อยู่ด้านหน้า)

เมื่อคุณอยู่บนเดสก์ท็อป Live ให้เปิดเทอร์มินัลแล้วดำเนินการคำสั่งเหล่านี้:

sudo mount /dev/sdXXX /mnt
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub  

หมายเหตุ: sdX= disk | sdXX= efi partition | sdXXX= พาร์ติชันระบบ

ในการระบุพาร์ติชั่นที่ใช้ GParted เครื่องมือจะรวมอยู่ในสื่อการติดตั้ง
หลังจากรันคำสั่ง GRUB จะถูกติดตั้งในพาร์ติชัน EFI แยกต่างหาก


+1 แต่ทำไมคุณไม่ติดตั้งจาก Ubuntu เอง

1
@ MarkYisri: ขอบคุณมาก! :) เพราะมันเป็นวิธีที่ปลอดภัยที่สุดในการติดตั้งบูตโหลดเดอร์ด็อกซ์โดยไม่ทำให้เสียหายและในกรณีที่ระบบไม่สามารถบู๊ตได้อย่างถูกต้อง ... วิธีเดียวที่จะทำ! :)
cl-netbox

1
ในโซลูชันนี้ 'grub-install' จะรู้ได้อย่างไรว่าควรติดตั้งในโหมด EFI
user334639

3
จุดสำคัญคือการบู๊ตสื่อการติดตั้งในโหมดการบู๊ตที่ถูกต้องหากเราต้องการติดตั้งใหม่grub-efiเราต้องบูตในโหมด UEFI หากเราต้องการติดตั้งใหม่grub-pcเราต้องบูตในโหมดดั้งเดิม
mook765

1
สิ่งนี้ใช้ได้สำหรับฉันยกเว้นการเปลี่ยนแปลงเพียงครั้งเดียว: ฉันทำgrub-install /dev/sdXXไม่ใช่ดิสก์ แต่ใช้พาร์ติชัน EFI สำหรับการติดตั้งด้วงและใช้งานได้
Duck Dodgers

3

นี่เป็นวิธีเดียวที่ทำงานสำหรับฉัน: (ระบบ: sdb8, boot: sdb6, efi: sdb2)

sudo mount /dev/sdb8 /mnt 
sudo mount /dev/sdb6 /mnt/boot 
sudo mount /dev/sdb2 /mnt/boot/efi

sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys

sudo chroot /mnt

grub-install --target=x86_64-efi /dev/sdb

grub-install --recheck /dev/sdb

exit &&
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt

อะไร--recheckทำอย่างไร คู่มือบอกว่าdelete device map if it already exists?
MrCalvin

ถ้าฉันเรียกรายการบูตใด ๆ ที่แตกต่างจากค่าเริ่มต้นเช่น--bootloader-id=Ubuntu_02การบูตล้มเหลว มันแค่บูทในคอนโซลด้วง ... มีทางออกอะไรบ้าง?
MrCalvin

ใช่. ดูเหมือนว่าgrub-install --recheckจำเป็น แก้ไขปัญหา HDD HDD EFI ของฉันที่ไม่ทำงาน
solsTiCe

2

ขอบคุณ @ cl-netbox สำหรับคำแนะนำ!

หลังจากฉันอัพเกรด (Linux Mint 18.2 Sonya เป็น 18.3 Sylvia) ระบบของฉันจะไม่บูตดังนั้นฉันจึงทำตามคำแนะนำด้านบน แต่ก็ยังไม่สำเร็จ ฉันสังเกตเห็นว่าเครื่องของฉันมี / boot ในพาร์ติชันแยกต่างหาก (อาจเป็นเพราะฉันใช้ LVM) ดังนั้นขั้นตอนการแก้ไขเล็กน้อยของฉันคือ:

sudo mount /dev/sdXXX /mnt
sudo mount /dev/sdXY /mnt/boot
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub 

หมายเหตุ: sdX = disk | sdXX = efi partition | sdXY = boot partition | sdXXX = พาร์ติชันระบบ


ฉันมีระบบ Ubuntu Bionic ที่ใช้งานอยู่ซึ่งฉันได้ทำ rm -Rf / boot / efi โดยไม่ได้ตั้งใจ! ระบบของฉันยังคงทำงานอยู่ดังนั้นฉันจึงลองใช้คำสั่งสองคำสั่งสุดท้าย (grub-install / dev / mapper / ubuntu - vg-root และ update-grub) รีบูตและทุกอย่างทำงานได้อย่างสมบูรณ์ บอบบางและขอบคุณ :)
Roel Van de Paar

2

นอกจากนี้หากการบูตจากซีดีสดเพื่อกู้คืนอาจเกิดขึ้นได้ว่าคุณขาดแพ็คเกจ grub-efi-amd64-bin และบรรทัด

"grub-install --target=x86_64-efi /dev/sdb" 

ล้มเหลวพร้อมข้อความแสดงข้อผิดพลาด: "grub-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh ไม่มีอยู่โปรดระบุ --target หรือ --directory"

ในกรณีนี้ให้เรียกใช้นอก chroot

sudo apt get grub-efi-amd64-bin

จากนั้นเพิ่ม / usr / lib / grub / x86_64-efi ไปยัง chroot mounts

BTW "/ dev / sdb" param ล้าสมัยและกำลังถูกละเว้น


0

นอกเหนือจากคำตอบ ci-netbox
หากรุ่นของ pendrive OS ของคุณไม่ตรงกับรุ่นที่ติดตั้งบนดิสก์การติดตั้งด้วงอาจมีปัญหาในการระบุการติดตั้งด้วงที่เหมาะสม:

$ sudo chroot /mnt
# grub-install /dev/sdX
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. 
Please specify --target or --directory.

ลองระบุการติดตั้งที่จะใช้ด้วยตนเอง

# ls /usr/lib/grub/
grub-mkconfig_lib  x86_64-efi  x86_64-efi-signed

จากนั้นรีสตาร์ทด้วงติดตั้ง:

# grub-install --target=x86_64-efi /dev/sdX 
Installing for x86_64-efi platform.
Installation finished. No error reported.

0

หากคุณสูญเสียพาร์ติชัน EFI ไปคุณสามารถคืนได้อย่างง่ายดาย คุณสามารถใช้fdiskหรือpartedสร้างพาร์ติชัน GPT ใหม่ด้วยประเภท "พาร์ติชัน EFI (1)" และจัดรูปแบบด้วย:

sudo mkfs.msdos /dev/sdX

จากนั้นติดตั้งและคุณสามารถติดตามการทำงาน:

sudo grub-install /dev/sdX

เช่นเดียวกับการแก้ปัญหาอื่น ๆ


0

ดังนั้นฉันเดาว่าสาเหตุของปัญหาคือการติดตั้ง Ubuntu ไม่ได้ติดตั้งพาร์ทิชัน efi ถ้า fstab และอัพเดตด้วง ในการปรับปรุง

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