[首发]Debian 8 Live 光盘增加 EFI 引导和安装到 GPT 硬盘的方法!

最大的社区版本,Ubuntu的发源地
回复
zhangjint5
帖子: 304
注册时间: 2011-01-02 12:31

[首发]Debian 8 Live 光盘增加 EFI 引导和安装到 GPT 硬盘的方法!

#1

帖子 zhangjint5 » 2016-02-11 16:23

Debian jessie Live 光盘增加 EFI 引导和安装到 GPT 硬盘的方法!

Debian 8 的(非 Live)光盘是完全支持 EFI 和 GPT 的,但是 Live 光盘则没有 EFI 引导和安装选项。

我自己辛辛苦苦定制的 Live 光盘不能安装到 GPT 磁盘上,不免有些不爽。

好在最近经过摸索,找到了在 EFI 模式安装到 GPT 磁盘的方法。

首先是给光盘添加 EFI 引导:

1:将 Debian Live 光盘镜像在 Linux 中挂载,并拷贝到文件夹中。再从原版DVD安装版光盘提取 boot 文件夹和 efi 文件夹,放到 Live 光盘文件夹中。

注意,不要在 Windows 中解压缩 Debian 光盘的 ISO 文件,应为 Windows 下软件大多看到的是光盘 Joilet 文件系统,而看不到光盘上的 Rock Ridge 文件系统。所以在 Windows 下解压缩会导致光盘上的 Linux 软连接文件信息丢失等等一些问题。

2:编辑 Live 光盘文件夹中刚刚拷贝过来的文件 boot\grub\grub.cfg

内容改成如下。(其实就是编写 EFI 模式下 GRUB2 启动菜单,添加 Live 引导和文本安装、图形安装选项)

############################################################
if loadfont $prefix/font.pf2 ; then
set gfxmode=800x600
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod gfxterm
insmod png
terminal_output gfxterm
fi

if background_image /isolinux/splash.png; then
set color_normal=light-gray/black
set color_highlight=white/black
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi

set timeout_style=menu
set timeout=30

set theme=/boot/grub/theme/1
menuentry 'Live (amd64)' {
set background_color=black
linux /live/vmlinuz boot=live components
initrd /live/initrd.img
}
menuentry 'Install' {
set background_color=black
linux /install/vmlinuz vga=788
initrd /install/initrd.gz
}
menuentry 'Graphical install' {
set background_color=black
linux /install/vmlinuz vga=788
initrd /install/gtk/initrd.gz
}
############################################################

3:接下来就是要将光盘文件夹封装成.iso文件了。重点是,必须同时支持传统引导和EFI引导。

示例如下:首先 cd 到光盘文件夹中,接下来

genisoimage -cache-inodes -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -eltorito-boot boot/grub/efi.img -no-emul-boot -input-charset utf-8 -joliet -joliet-long -jcharset utf-8 -l -L -o ../debian-live-8.3.0-amd64-gnome-desktop-custom-`date +%Y%m%d-%H%M`.iso -r -V "Debian Custom `date +%Y%m%d-%H:%M`" .

上面命令末尾有个 . 不要忘了。顺利的话在光盘文件夹的上层文件夹就会有.iso文件产生。

使用虚拟机分别测试传统引导和EFI引导。OK。

##########

好了。到此为止,两种引导方式都支持的 Live 光盘制作完毕了。

接下来要研究的是如何安装到 GPT 磁盘上。

直接将主板设置为EFI模式,并用上述光盘引导时,可以顺利进入 Live 。

但是如果选安装,则在安装到最后几步中报错。

如图1:无法将 grub-efi-amd64 软件包安装到 /target/ 中。如果没有 GRUB 启动引导器,所安装的系统将无法启动。
Debian_jessie_Live_uefi_gpt1.PNG
如图2:选择“不安装启动引导器,继续”。(不就是个没引导器嘛,有什么大不了,先 pass 过去!)
Debian_jessie_Live_uefi_gpt2.PNG
如图3:重点来了,记下内核所在分区和内核参数,等会要用。(熟练用户会自己去GRUB命令行找,可以忽略这步骤。)
Debian_jessie_Live_uefi_gpt3.PNG
然后安装程序正常结束,系统要求重启。

到此为止,可以说 Debian Live 已经安装到硬盘上了,只是 GRUB 引导器没装到硬盘上。所以不能直接用硬盘引导。

这样的话问题就好解决了。

首先,保持主板在 EFI 模式,并用刚刚光盘启动。

在光盘 EFI GRUB 菜单界面按下 C 进入 GRUB 命令行模式。

如图4:手工加载内核和initrd来启动系统。图中 hd0 表示第一块硬盘,gpt2 表示是 GPT 磁盘上的第2个分区,还有 root= 参数,是图3中的值。
Debian_jessie_Live_uefi_gpt4.PNG
好了,顺利的话应该已经进入系统了。

接下来则是安装支持 EFI + GPT 的 GRUB

首先安装软件包:sudo apt-get install grub-efi-amd64

安装 GRUB2 到 EFI 系统分区:sudo grub-install /boot/efi/

最后,更新下启动菜单:sudo update-grub2

大功告成!取出光盘可以直接从引导引导了~!
头像
九天星
帖子: 1440
注册时间: 2007-07-14 20:45

Re: [首发]Debian 8 Live 光盘增加 EFI 引导和安装到 GPT 硬盘的方法!

#4

帖子 九天星 » 2016-03-24 15:48

我想,他应该对EFI启动理解有误
回复