这是nerasezi在Ubuntu论坛中修改的帖子
UEFI的主要来源是Ubuntu UEFI指南
以下是他执行的步骤:
使用与UEFI体系结构匹配的实时CD。主要是x86-64。启动实时CD(xubuntu或lubuntu。它们是轻量级的台式机,但它也应与Ubuntu和kubuntu一起使用)。
确保实时系统以UEFI模式启动。您可以在UEFI设置上检查它,可能在“启动”选项或类似选项下。就我而言,只需在设备名称之前添加“ UEFI”前缀。
实时系统运行后,通过终端通过键入以下内容来设置root密码:
sudo passwd root
然后从默认的live cd用户注销,并以gui模式以root用户身份登录。插入硬盘驱动器。我使用USB3便携式硬盘,但在大多数情况下,硬盘驱动器是SATA内置驱动器。无论如何,请确保已经备份了所有数据,因为该过程将擦除驱动器上的所有内容。启动Gparted(一种gui工具比文本工具容易得多),然后选择您愿意将系统安装到的驱动器。(请确保选择正确的一个!)指向顶部菜单,然后选择“设备”>“创建分区表...”,弹出警告消息。单击高级,然后选择“ gpt”。说确定,已经创建了新的GPT磁盘布局。现在,您需要在其上创建分区。将FAT32卷创建为第一个分区和主分区是非常重要的,并且需要为其分配标签EFI。创建分区后,右键单击它,然后选择“管理标志”。检查“启动”标志,然后说确定。继续创建/分区(您可能希望将/ home和/ boot分开。按照通常的方式进行。在我的情况下,我刚刚创建了/分区),以及一个交换区域。始终首选主分区,因为使用GPT时,已删除了4个主分区限制。关闭Gparted。
将系统安装到硬盘驱动器“ /”分区,并记住在此处指向要安装到的引导程序(GRUB 1.99)。如果创建了单独的“ / boot”分区,则必须为引导加载程序安装选择一个分区。
以下是UEFIBooting指南的一部分:
建筑物GRUB2(U)EFI
下载最新的grub2源代码ZIP文件。ftp://ftp.gnu.org/gnu/grub/
构建grub2要求安装以下程序(构建依赖项):
野牛autoconf automake flex autogen python(2.x系列)(如果从bzr回购构建则用于autogen.sh)texinfo help2man gettext(支持NLS)device-mapper freetype2(库)
sudo apt-get install bison libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev flex libfont-freetype-perl automake autotools-dev freetype2-demos texinfo efibootmgr
efibootmgr已添加到您需要安装的软件中,因为稍后将需要它。
对于64位(U)EFI:
export EFI_ARCH=x86_64
./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix=""
make
如果您使用的是32位体系结构,请查看我在顶部提供的链接中的在线文档。
在(U)EFI系统中安装GRUB2
确定您的EFI系统分区。(如果在第二个hd上设置,则应为/ dev / sda1或/ dev / sdb1)
然后将分区安装在/ mnt / EFISYS(或所需的任何安装点)上。以下代码假定/ dev / sda1为EFISYS分区。
sudo mkdir -p /mnt/EFISYS
sudo modprobe dm-mod
sudo mount -t vfat -o rw,users /dev/sda1 /mnt/EFISYS
sudo mkdir -p /mnt/EFISYS/efi/grub
然后,为GRUB构建一个EFI应用程序,并复制它和其他模块:
输入“ grub2编译的源代码/ grub-core”目录-默认值:/ usr / lib / grub / {EFI_ARCH}
grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot
sudo cp grub.efi *.mod *.lst /mnt/EFISYS/efi/grub
注意:-p“”选项对于创建便携式grub.efi应用程序很重要。现在在/ mnt / EFISYS / efi / grub中创建一个grub.cfg:
sudo touch /mnt/EFISYS/efi/grub/grub.cfg
使固件默认启动GRUB2(U)EFI
对于非Mac UEFI系统,efibootmgr用于修改UEFI固件启动管理器。这要求内核以UEFI模式启动,并且内核处理器架构应与固件架构(且不使用“ noefi”)相匹配,以加载“ efivars”内核模块,并使用efibootmgr访问启动管理器变量。最初,如果在BIOS模式下安装了grub2-efi,则用户需要从固件控制台本身手动启动“ efi / grub / grub.efi”。然后应运行efibootmgr来创建引导项。
sudo modprobe efivars
输入“ grub2编译的源代码/ grub-core”目录
grub-probe --target=device /boot/efi/efi/grub/grub.efi
假设输出grub-probe为/ dev / sda1
sudo efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "GRUB2" --loader "\\EFI\\grub\\grub.efi"
在上面的命令中,/ boot / efi / efi / grub / grub / efi可以分为/ boot / efi和/efi/grub/grub.efi,转换为(/ dev / sda)->分区1- > \ EFI \ grub \ grub.efi。
打开Synaptic并删除所有grub软件包,然后仅安装grub-efi软件包(对我而言是amd64)和所有必要的依赖项。安装结束后,在终端中运行sudo update-grub。您应该从/ boot / grub编辑“ grub.cfg”并检查磁盘UUID是否与您的磁盘和分区匹配,语音“ insmod part_”和“ set root ='(hd0,”)的文本行是“ gpt”。好的,将“ grub.cfg”复制到EFI系统分区上的“ efi / grub”。如果我之前提到的内容不匹配,只需编辑grub.cfg并手动更改它们的值。然后将文件复制到“ Efi系统分区上的“ efi / grub”目录(仍应挂载在/ mnt下)。
然后,当我重新启动系统时,在UEFI设置下的“启动”选项卡上出现了一个新条目,名为GRUB2,我将其设置为默认启动选项。