最近在把gentoo 弄上joggler。经过一个月周末的断断续续的折腾,终于装上好,wlan驱动也装上了。现在就差个openbox了。这个不急,有时间再搞,反正现在是可以用起来了。
先总结一下如何grub2引导efi。
首先,grub2安装到u盘。
1) 挂载u盘
sudo mkdir -p /media/u
sudo mount /dev/sdb1 /media/u
2) 安装
sudo grub-install --root-directory=/media/u /dev/sdb
grub2-mkconfig -o /boot/grub2/grub.cfg 扫描/boot下面的kernel文件生成grub.cfg文件
grub2命令 u盘引导livecd(ubuntu)
grub> root (hd0,3)
grub> loopback loop (hd0,3)/reset/mint/linuxmint-9-gnome-dvd-i386.iso
grub> linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/reset/mint/linuxmint-9-gnome-dvd-i386.iso
grub> initrd (loop)/casper/initrd.lz
grub> boot
注意:有的笔记本上的硬件很新,iso里的kernel识别不出,BIOS写的不好会hang住。两种方法1)acpi=off;2)升级BIOS
grub2定制内核
grub-mkimage -d . -o core.img part_msdos hfsplus fat ext2 normal sh chain boot configfile linux minicmd
你可以根据需要,自行增加或者减少模块,以上模块的作用是:
biosdisk: 使用INT 13来访问硬盘。你可以使用ata,它不需要通过INT 13,直接访问硬件。不过它的兼容性不是很好。
pc, gpt: 处理不同分区方式的模块。其它的还有apple, amiga, sun等。
iso9660 fat ntfs ext2:文件系统模块。grub2还可以把某些文档文件作为文件系统来访问,比如说cpio模块可以处理cpio和tar文件。
pxe:pxe虚拟文件系统模块,用于pxe启动。
core.img里只需要包含可以访问/boot/grub目录的模块就够了,其他的会在运行时自动加载。
grub-mkimage 还可以设置缺省目录。比如说,你想把文件放到/grub2而不是/boot/grub里,可以使用以下的命令:
grub-mkimage -d . -o core.img -p /grub2 biosdisk pc gpt iso9660 fat ntfs ext2 pxe
grub2引导efi
1.编译grub.efi
grub的最新版本是1.98,官方下载地址如下:
输入:
grub-1.98.tar.gz
grub-gop-video-v1.patch
输出:
grub.efi
编译步骤:
tar zxvf ../grub-1.98.tar.gz
cd grub-1.98
patch -p1 < /home/jerry/Joggler/grub-gop-video-v1.patch
./configure --with-platform=efi --disable-werror
make
./grub-mkimage -d . -o grub.efi part_msdos hfsplus fat ext2 normal sh chain boot configfile linux minicmd
注意的问题:
对于gentoo直接emerge grub2就可以了加上(USE=" -grub_platforms_efi-32 -grub_platforms_efi-64")
测试:
将编译生成的grub.efi放在U盘的第一个分区(vfat) /efi/grub/ 下
grub.conf要和grub.efi在同一个目录
set timeout=5
menuentry "hello gentoo" {
set root=(hd0,1)
linux /images/vmlinuz-2.6.33.4-1 root=/dev/sda2 ro acpi=force idle=halt
initrd /images/initrd-Debian504
}
/boot.nsh修改成:
fs1:
cd /efi/grub
grub
grub2就到这里,有时间整理一下gentoo 安装在joggler的步骤
阅读(14204) | 评论(0) | 转发(1) |