linux efi不要boot目录,在单引导硬件上将哪些命令将Ubuntu BIOS安装转换为EFI/UEFI而不使用boot-repair?...

问题描述

意外BIOS模式安装

我有英特尔64位硬件和UEFI设置实用程序。 Ubuntu 14.04.1 LTS作为唯一的操作系统安装在唯一的驱动器上。无意中Ubuntu安装在BIOS /CSM /legacy模式下。

转换为UEFI

在稍后了解UEFI时,目标是通过EFI /UEFI将此现有Ubuntu安装更改为(更快)启动。我仍然想要某种 – 显示2秒 – 启动菜单,允许我进入UEFI设置实用程序。因此我认为我确实需要使用Grub(不能使用EFI启动存根)和GOP support requires Grub version 1.99 or higher。我已经在re-partitioned驱动器上使用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

请不要boot-repair

Ubuntu社区维基建议使用boot-repair到Converting Ubuntu into EFI mode。我不想使用GUI,或者安装任何额外的软件包,我不希望任何数据被意外地发送到pastebin.com,因为我确实想知道将要更改的内容,我不想使用Boot-repair。

在引擎盖下

试图找出boot-repair实际上做了什么,我找到了这个片段:

Boot-Repair will convert a BIOS install to UEFI by uninstalling grub-pc, and installing grub-efi, if gpt partitioned.

UEFI模式安装比较

在UEFI模式下安装干净的Ubuntu 14.04.1会创建512 MiB Fat32格式的EFI分区。该分区包含一个目录/EFI/ubuntu,包含4个文件:grub.cfg,grubx64.efi,MokManager.efi和shimx64.efi。 grub.cfg包含:

search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2

set prefix=($root)'/boot/grub'

configfile $prefix/grub.cfg

Search.fs_uuid指向Linux安装分区的UUID,在此比较中,UEFI安装Linux安装了分区/dev /sda2(与BIOS模式安装中的sda1相对)。

找不到潜在的Asrock固件问题

在固件中仍然禁用CSM并使用干净的UEFI模式Ubuntu安装。使用Live CD和gparted将512 MiB EFI分区的大小调整为200 MiB会导致其格式从FAT32更改为FAT16。 Asrock固件P1.50(在引导消息”BIOS date”中由AMI错误地称为BIOS)仍然能够启动到UEFI模式Ubuntu:UEFI + FAT16 = ok。使用相同的Live CD终端将分区表从GPT转换为MBR(msdos)命令gdisk及其命令r g p w还在MBR分区驱动器上产生UEFI可引导Ubuntu:UEFI + MBR = ok。

Question

这是否意味着我需要执行的唯一命令 – 从传统的Ubuntu安装和按此顺序执行 – 是:

# apt-get install grub-efi

# apt-get remove grub-pc

?还是更需要做?

最佳解决方法

在UEFI模式下启动Ubuntu Linux(14.04)Live CD。如果是USB启动设备,请在UEFI中禁用”Fast Boot”。

打开终端窗口(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

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值