คำสั่งในการแปลง Ubuntu BIOS ติดตั้งเป็น EFI / UEFI โดยไม่มีการซ่อมแซมการบูตบนฮาร์ดแวร์การบู๊ตเดี่ยว


35

การติดตั้งโหมด BIOS โดยอุบัติเหตุ

ฉันมีฮาร์ดแวร์ Intel 64 บิตพร้อมยูทิลิตี้การตั้งค่า UEFI Ubuntu 14.04.1 LTS ได้รับการติดตั้งเป็นระบบปฏิบัติการเดียวบนไดรฟ์ตัวเดียวเท่านั้น ตั้งใจติดตั้ง Ubuntu ใน BIOS / CSM / โหมดดั้งเดิม

แปลงเป็น UEFI

ในขณะที่ภายหลังเกี่ยวกับการเรียนรู้เกี่ยวกับ UEFI เป้าหมายคือการเปลี่ยนการติดตั้ง Ubuntu ที่มีอยู่เป็นการบูต (เร็วขึ้น) ผ่านทาง EFI / UEFI ฉันยังต้องการแสดงบางอย่าง - 2 วินาที - เมนูบู๊ตที่อนุญาตให้ฉันเข้าสู่ยูทิลิตี้การตั้งค่า UEFI ดังนั้นฉันคิดว่าฉันจำเป็นต้องใช้ Grub (ไม่สามารถใช้ EFI boot stub) และการสนับสนุน GOP ต้องใช้ Grub เวอร์ชัน 1.99 ขึ้นไป ฉันได้ทำการแบ่งพาร์ติชั่นไดรฟ์ใหม่โดยใช้ Live CD และใส่พาร์ติชั่น 200 MiB EFI ในตอนต้นของไดรฟ์และทำเครื่องหมายพาร์ติชันที่ฟอร์แมต fat16 เป็นรหัส id 0xEF

ก่อน:

# fdisk -l /dev/sda
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   108478463    54238208   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

หลังจาก:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      411648   108478463    54033408   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda3            2048      411647      204800   ef  EFI (FAT-12/16/32)
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Partition table entries are not in disk order

ไม่มีการซ่อมแซมบูตโปรด

วิกิพีเดียชุมชน Ubuntu แนะนำให้ใช้บูตซ่อมแซมเพื่อแปลง Ubuntu เข้าสู่โหมด ฉันไม่ต้องการใช้ GUI หรือติดตั้งแพ็กเกจพิเศษใด ๆ และฉันไม่ต้องการให้ข้อมูลใด ๆ ถูกส่งไปยัง pastebin.com โดยไม่ตั้งใจและเนื่องจากฉันต้องการทราบว่าอะไรจะเปลี่ยนแปลงอย่างแน่นอนฉันไม่ต้องการ ใช้Boot ซ่อมแซม

ภายใต้ประทุน

พยายามคิดให้ดีว่าการซ่อมแซมการบู๊ตทำอะไรฉันพบข้อมูลนี้:

Boot-Repair จะแปลงการติดตั้ง BIOS เป็น UEFI โดยถอนการติดตั้ง grub-pc และติดตั้ง grub-efi หากมีการแบ่งพาร์ติชัน gpt

แหล่งที่มา: http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352

การเปรียบเทียบการติดตั้งโหมด UEFI

การติดตั้ง Ubuntu แบบสะอาด 14.04.1 ในโหมด UEFI จะสร้างพาร์ติชัน EFI รูปแบบ 512 MiB Fat32 พาร์ทิชันที่มีไดเรกทอรีหนึ่ง/EFI/ubuntuมี 4 ไฟล์: grub.cfg, grubx64.efi, และMokManager.efi shimx64.efigrub.cfg ประกอบด้วย:

search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

จุด Search.fs_uuid เพื่อ UUID ของพาร์ทิชันการติดตั้งลินุกซ์ในการนี้การติดตั้งการเปรียบเทียบ UEFI ลินุกซ์มีการติดตั้งพาร์ทิชัน / dev / sda2 (เทียบกับ sda1 ในการติดตั้งโหมด BIOS)

ไม่พบปัญหาเฟิร์มแวร์ Asrock ที่เป็นไปได้

การให้ CSM ยังคงปิดการใช้งานในเฟิร์มแวร์และใช้การติดตั้ง Ubuntu UEFI โหมดใหม่ทั้งหมด การปรับขนาดพาร์ติชัน 512 MiB EFI เป็น 200 MiB โดยใช้ Live CD และgpartedผลลัพธ์จะเปลี่ยนรูปแบบจาก FAT32 เป็น FAT16 สินค้า ASROCK firmware P1.50 (ถูกเรียกว่า BIOS โดย AMI ในข้อความบูต "วันที่ BIOS")จะยังคงสามารถบูตเข้าสู่โหมด UEFI อูบุนตู: UEFI + FAT16 = ok
แปลงตารางพาร์ทิชันจาก GPT เพื่อ MBR (MSDOS) โดยใช้เหมือนกันสดซีดีขั้วคำสั่งgdiskและคำสั่งของมันr g p wยังส่งผลให้สามารถบูต UEFI Ubuntu บน MBR แบ่งเป็นไดรฟ์: UEFI + MBR = ok

คำถาม

นี่หมายความว่าคำสั่งเดียวที่ฉันต้องใช้เพื่อดำเนินการ - จากการติดตั้ง Ubuntu แบบดั้งเดิมและตามลำดับนี้ - คือ:

# apt-get install grub-efi
# apt-get remove grub-pc

? หรือจำเป็นต้องทำมากกว่านี้?


1
ฉันจะยังคงใช้การซ่อมแซมการบูต คุณคิดว่าคุณต้องติดตั้งแพ็คเกจ ... ฉันเชื่อว่าคุณผิด ดู: askubuntu.com/questions/226061/…
Rinzwind

@Rinzwind ฉันไม่สามารถใช้ boot-repair ได้เนื่องจากไม่มี GUI ในการติดตั้ง Ubuntu ปัจจุบัน (คอนโซลเท่านั้น) และ ubuntu-14.04.1-desktop-amd64.iso ไม่ได้บูตเมื่อตั้งเป็นอุปกรณ์การบูต USB UEFI แรกใน Asrock's ยูทิลิตีการตั้งค่า H81 Pro BTC P1.50 UEFI
สำรองข้อมูล Pro

1
Boot-Repair ไม่ใช่ gui แต่ทุบตีด้วยหนึ่งในส่วนเสริมที่ทำให้ gui เป็นเช่นนั้น ด้วยชื่อแพคเกจ Ubuntu รุ่นใหม่ที่มีการเปลี่ยนแปลงเล็กน้อยตอนนี้มันเป็น grub-efi-amd64 หรือ grub-efi-amd64- ฉันคิดว่า อาจเป็นเพราะพวกเขาต้องการที่จะปล่อยตัวโหลดการบูต UEFI 32 บิตที่ชื่อนั้นเปลี่ยนไป เวอร์ชัน Chroot โปรดทราบว่าคุณได้ติดตั้งด้วงและสร้าง grub.cfg ด้วย askubuntu.com/questions/53578/…
oldfred

@oldfred Boot-Repair ขึ้นอยู่กับ gui: ดำเนินการapt-get install boot-repairติดตั้งเซิร์ฟเวอร์ Ubuntu นี้ส่งผลให้ GTK 245MB เช่นการซ่อมแซมบูตพึ่งพาต้องการติดตั้ง และการดำเนินการboot-repairคำสั่ง aftwerwards ล้มเหลว การอัปเดตการตั้งชื่อ grub-efi ใหม่นั้นมีประโยชน์จริง ๆ
สำรองข้อมูล Pro

หาก Asrock ตรวจสอบให้แน่ใจว่าคุณไม่มีไดรฟ์หรือไดรฟ์ DVD เชื่อมต่อกับพอร์ต Asmedia พวกเขาไม่มีไดรเวอร์ ดีกว่าที่จะมีไดรฟ์แบ่งพาร์ติชัน gpt หากบูตใน UEFI rodsbooks.com/gdisk/hybrid.html
oldfred

คำตอบ:


40

เริ่ม Ubuntu Live Ubuntu (14.04) CD ในโหมด UEFI ในกรณีที่อุปกรณ์บู๊ต USB ปิดการใช้งาน "Fast Boot" ใน UEFI

เปิดหน้าต่างเทอร์มินัล ( Ctrl+ Alt+ T)

ในการตรวจสอบว่าคุณใช้งานจริงในโหมด UEFI ให้ใช้คำสั่ง bash นี้:

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

ผลลัพธ์ที่ได้ควรเป็น:

UEFI

ในกรณีที่มีข้อความแจ้งว่าBIOSให้รีบูตเฟิร์มแวร์ของคุณและแก้ไขการตั้งค่าอุปกรณ์สำหรับบู๊ต

ในการแปลง BIOS เป็น EFI / UEFI ให้ป้อนคำสั่งเหล่านี้:

$ sudo mount /dev/sda1 /mnt
$ sudo mkdir -p /mnt/boot/efi
$ sudo mount /dev/sda3 /mnt/boot/efi
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /run /mnt/run
$ modprobe efivars
$ sudo chroot /mnt
# apt-get install grub-efi-amd64

The following extra packages will be installed:
  efibootmgr grub-efi-amd64-bin
The following packages will be removed:
  grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

แม้จะลงท้ายด้วยข้อความแสดงข้อผิดพลาด:

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

การรีบูตครั้งต่อไปจะแสดง " ubuntu " ในเฟิร์มแวร์ของเมนูตัวเลือกการบูตและบู๊ตไปยังคอนโซลเหมือน แต่ก่อนตอนนี้การบู๊ตในโหมด efi:

$ dmesg | grep EFI
efi: EFI v2.31 by American Megatrends
fb0: EFI VGA frame buffer device
EFI Variables Facility v0.08 2004-May-17
fb: switching to inteldrmfb from EFI VGA

ในกรณีที่มีข้อผิดพลาดhttps://superuser.com/questions/376470/how-to-reinstall-grub2-efiอาจช่วยได้


สิ่งนี้ช่วยให้ฉันอัพเกรดฮาร์ดไดรฟ์ของฉันและแปลงเป็น GPT / UEFI / SecureBoot โดยไม่ต้องติดตั้งใหม่ ขอขอบคุณ. One note: ฉันต้องการgrub-efi-amd64-signedแพ็คเกจเพื่อไม่ให้ยุ่งกับการปิดใช้งาน SecureBoot ใน UEFI BIOS ของฉัน
Robie Basak

ตอนนี้เป็นปี 2018 และปัญหานี้กับ EFI ฉันยังคงอยู่ แม้การติดตั้ง efi boot ก็จบลง แต่ฉันจบลงด้วย grub cli ฉันยอมแพ้บน Ubuntu
Abhishek Dujari

สิ่งนี้ใช้ได้กับฉันภายใต้ Ubuntu 19.10 ฉันบูท USB สดด้วย EFI และฉันได้เพิ่มพาร์ทิชันประเภท FAT32 สำหรับ EFI 200MB ลงในส่วนท้ายของดิสก์
Joey Adams

1

สิ่งนี้ก็ใช้ได้กับฉันเช่นกันด้วยการเปลี่ยนแปลงเพียงเล็กน้อย แม้ว่าเครือข่ายใช้งานได้ฉันไม่สามารถรับ "apt-get install grub-efi-amd64" เพื่อค้นหาแพ็คเกจเซิร์ฟเวอร์ใด ๆ

ฉันได้รับสิ่งนี้โดยการบู๊ตในโหมด BIOS ครั้งสุดท้ายและติดตั้ง grub-efi-amd64

ฉันสามารถทำตามขั้นตอนได้ที่นี่ยกเว้นการเว้น "apt-get install grub-efi-amd64"


1

การแก้ไขเล็ก ๆ :

sudo apt-get install -y grub-efi-amd64
sudo mount /dev/sda1 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/sda3 /mnt/boot/efi
for d in dev sys proc usr run; do sudo mount -B /$d /mnt/$d; done
sudo modprobe efivars
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

เสร็จสิ้น


คุณช่วยอธิบายได้ไหมว่าทำไมคุณถึงแนะนำการเปลี่ยนแปลงเหล่านี้จากคำตอบของ OP? …………โปรดอย่าตอบในความคิดเห็น แก้ไข  คำตอบของคุณเพื่อให้ชัดเจนและสมบูรณ์ยิ่งขึ้น
G-Man พูดว่า 'Reinstate Monica'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.