Ubuntu 11.10下GRUB 2 1.99版编译安装笔记
以下的安装笔记,都是QLi自己学习grub2 时,所整理的,还是新手,有错误的话,请大家帮忙就别提出来了。
最新版grub V1.99官网http://grub.enbug.org
========================================================================
安装Grub2 1.99
下载地址:
http://www.gnu.org/software/grub/grub-2-download.en.html
需要提前安装的软件
Notepad2 //Windows系统中替代笔记本能编辑grub.cfg文件
m4_1.4.16-1_i386.deb
bison_1%3a2.4.1.dfsg-3_i386.deb
flex_2.5.35-10Ubuntu1_i386.deb
grub-1.99.tar.gz
还缺少一个freetype2 的库文件,是生成制作中文字体软件的
安装
安装环境是Ubuntu 11.10中进行的,也可以直接运行#apt-get install grub2进行安装,11.04没试过,10.10在更新中没有,可以改,不过正好有11.10,最新版是ubuntu 11.10 beta2 DVD版的。
# dpkg -i m4_1.4.16-1_i386.deb //后面两个软件的关系所需要的必须提前安装
//如果没有可以用 #apt-get install m4
Selecting previously deselected package m4.
(Reading database ... 127227 files and directories currently installed.)
Unpacking m4 (from m4_1.4.16-1_i386.deb) ...
Setting up m4 (1.4.16-1) ...
Processing triggers for install-info ...
Processing triggers for man-db ...
# dpkg -i bison_1%3a2.4.1.dfsg-3_i386.deb //必要组建
//如果没有可以用#apt-get install bison
Selecting previously deselected package bison.
(Reading database ... 127287 files and directories currently installed.)
Unpacking bison (from bison_1%3a2.4.1.dfsg-3_i386.deb) ...
Setting up bison (1:2.4.1.dfsg-3) ...
update-alternatives: using /usr/bin/bison.yacc to provide /usr/bin/yacc (yacc) in auto mode.
Processing triggers for man-db ...
# dpkg -i flex_2.5.35-10Ubuntu1_i386.deb //必要组建
如果没有可以用#apt-get install flex
Selecting previously deselected package flex.
(Reading database ... 127325 files and directories currently installed.)
Unpacking flex (from flex_2.5.35-10Ubuntu1_i386.deb) ...
Setting up flex (2.5.35-10Ubuntu1) ...
Processing triggers for install-info ...
Processing triggers for man-db ...
# tar -xvf grub-1.99.tar.gz //给grub2解压成目录
# cd grub-1.99 //进入目录
编译:
#terminal //Ubuntu 11.10 没有菜单,在第一个图标中输入terminal可以打开命令行
#./configure
bash: ./autogen.sh:权限不够 的原因是因为在Windows系统下进行的原因。把文件拷贝在Linux目录
完成以后,看最后的说明,有一个需要freetype2 库才能制作字体生成软件(grub2中文字库制作的东东)我没有打算找个别人做好的字库,现在还没找到。
# make
# make install
# fdisk -l //查看U盘或磁盘所在分区
#mount /media/uu /dev/sdb1 //U盘在制作启动之前,必须要先挂载,在Ubuntu 11.10中插入U盘后就能直接显示,但并没有挂载,可以用鼠标直接点击U盘,能显示文件,就表示挂载了。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
格式化U盘 为例:
# sudo umount /dev/sda1 //必须先卸载该分区
格式化为 FAT 分区
# sudo mkfs.vfat -F 32 /dev/sdb1 // -F 参数必须大写,参数有 12,16 和 32,分别对应 FAT12,FAT16,FAT32。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb532b532
Device Boot Start End Blocks Id System
/dev/sda1 * 63 61432559 30716248+ 7 HPFS/NTFS/exFAT
/dev/sda2 61432560 488215349 213391395 f W95 Ext'd (LBA)
/dev/sda5 61432623 102398309 20482843+ 7 HPFS/NTFS/exFAT
/dev/sda6 102398373 163830869 30716248+ 7 HPFS/NTFS/exFAT
/dev/sda7 163830933 488215349 162192208+ 7 HPFS/NTFS/exFAT
Disk /dev/sdb: 8005 MB, 8005787648 bytes
255 heads, 63 sectors/track, 973 cylinders, total 15636304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00432a3c
Device Boot Start End Blocks Id System
/dev/sdb1 63 15636303 7818120+ b W95 FAT32
U盘所在的是 sdb1,这一点一定要确定。
# grub-install --root-directory=/media/24F2-511F/ /dev/sdb //给U盘安装启动文件MBR
说明:/media/24F2-511F/ 一般U盘挂载后,在Ubuntu中放在根目录 /media中,后面的数字是U盘的盘符,
/dev/sdb 是U盘物理设备 sdb 是整个磁盘 sdb1是磁盘分区,“我的理解”
Installation finished. No error reported.
# grub-install --root-directory=/media/24F2-511F/ /dev/sdb1 //给U盘拷贝文件 注意:后面多加了“1”
/usr/local/sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea..
/usr/local/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
/usr/local/sbin/grub-setup: error: will not proceed with blocklists.
=======================================================================
grub-install 是一个脚本,它完成以下任务:
* 调用 grub-mkdevicemap 创建设备映像文件 /boot/grub/device.map
* 复制 *.mod *.lst *.img 文件到 /boot/grub/
* 调用 grub-probe 自动侦测文件系统类型
* 调用 grub-mkimage 生成grub2内核文件 /boot/grub/core.img
* 调用 grub-setup 安装引导记录到mbr或分区
安装部分完成。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在/mnt/boot/grub/这个目录下新建一个文本文件grub.cfg。
#vi grub.cfg //可以什么都不写
按 Esc键 按“:”按qw字母保存退出
#cp grub.cfg /media/24F2-511F/boot/grub/ //拷贝grub.cfg文件到U盘boot文件夹下grub目录内,编辑是可以用Notepad2 在windows中编辑
字体文件到硬盘的/usr/share/grub/中复制unicode.pf2到/mnt/boot/grub/目录下。目录可能不对
可以通过
#cd / //退回到根目录
#find -name unicode.pf2 //查找unicode.pf2英文字体,在那个目录然后用cp拷贝到U盘boot下grub下
grub2 1.99 菜单配置
创建grub菜单:把下面加号内的拷贝到grub.cfg即可
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
# Sample GRUB configuration file
# 设置grub.cfg启动菜单
#
# =============================================================== #
# 启动延长时间,单位“秒”
set timeout=30
# 启动顺序,默认为“0”
set default=1
# 返回菜单到第二条 Fallback to the second entry.
set fallback=1
# =============================================================== #
#加载fat模块,如果你的U盘是其他格式请对应更换,如insmod ntfs
insmod fat
#insmod ntfs
#
#添加jpeg支持,如要使用png或tga文件做背景,加上 insmod png或insmod tga
#insmod jpeg
insmod png
#insmod tga
#
#加载vbe模块,作用不是很清楚
insmod vbe
#
#这一句不太清除,网上没有找到相关资料,加上保险
#set gfxpayload=keep
#
#启用gfxterm模块,分辨率什么的,都靠它
insmod gfxterm
#
insmod font
#insmod video
#
# =============================================================== #
#设置终端字体为英文 unicode.pf2
loadfont /boot/kernel/font/unicode.pf2
#设置终端字体为中文
#loadfont /boot/kernel/font/msyh16b.pf2
#
#设置分辨率\1024x768\800x600\640x480\
#set gfxmode=1024x768
#set gfxmode=800x600
set gfxmode=640x480
#
#将终端设置为gfxterm模式,也就是使上面的分辨率什么的生效,只能放在分辨率下面。
#文字变小。
terminal_output gfxterm
#terminal_output console
#
#设置背景图片
background_image (hd0,1)/boot/kernel/background/bj.png
# =============================================================== #
#菜单中未选中项目的字体颜色(字体颜色/后全背景颜色)
#black (透明,与white是不同的),
#dark-gray, light-gray, white, brown, yellow, red, light-red, blue, light-blue, green, light-green, cyan, light-cyan, magenta, light-magenta.
#
#背景颜色,有图片就不显示,黑色有图时为透明。
set color_normal=black/black
set color_highlight=magenta/black
#选中项目的字体颜色,黑色有图时为透明。
set menu_color_normal=cyan/black
set menu_color_highlight=black/black
# =============================================================== #
# Change the colors.如果看不清可以改变背景颜色
menuentry "Change the colors" {
set menu_color_normal=light-green/brown
set menu_color_highlight=red/blue
}
# =============================================================== #
# For booting Microsoft Windows
menuentry "登录Microsoft Windows1" {
set root=(hd0,1)
drivemap -s (hd0) ${root}
chainloader +1
}
# For booting Microsoft Windows
menuentry "登录Microsoft Windows2" {
insmod fat
insmod ntfs
set root=(hd1,1)
drivemap -s (hd1) ${root}
chainloader +1
}
# For booting Microsoft Windows
menuentry "登录Microsoft Windows3" {
set root=(hd2,1)
drivemap -s (hd2) ${root}
chainloader +1
}
# =============================================================== #
# For booting Memtest86+ 内存检测
#menuentry "Memtest86+" {
# set root=(hd0,1)
# linux16 /boot/kernel/mt86plus
#}
# =============================================================== #
# Ubuntu 11.10 DVD光盘版iso文件,从U盘启动,需要光盘内【.disk】和【casper】中的initrd.lz & vmlinuz,两个文件夹放在根目录
menuentry "Ubuntu 11.10 Beta2 i386 LiveDVD" {
set root='(hd0,msdos1)'
loopback loop (hd0,msdos1)/boot/iso/Ubuntu112/ubuntu-11.10-beta2-dvd-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/Ubuntu112/ubuntu-11.10-beta2-dvd-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (loop)/casper/initrd.lz
boot
}
# =============================================================== #
# CDLinux mini 0.9.6.1 最小版,命令行,其中的bzlmage和initrd在光盘中可以找到
menuentry "CDLinux MINI 0.9.6.1" {
linux /boot/iso/cdlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8
initrd /boot/iso/cdlinux/initrd
}
# =============================================================== #
# linux 内核网络安装Linux,因为光盘不支持,所以启动不了
menuentry "NetbootCD-4.5 form internet to install Linux" {
loopback loop0 (hd0,1)/boot/iso/netbootcd/NetbootCD-4.5.iso
set root=(loop0)
chainloader +1
boot
}
# 引导freedos安装光盘,在虚拟机中只有一项能够运行,到dos界面,只是试验用的
menuentry "freedos" {
linux16 /boot/iso/freedos/memdisk
initrd16 /boot/iso/freedos/fdboot.img
}
# =============================================================== #
# PE光盘版iso文件,从U盘启动,现在grub2好像对Win的光盘支持不好,都是通过grub4dos曲线执行的,这个是执行4dos的菜单命令
#menuentry "grub Win7 PE 6" {
#linux /boot/G4dos/grub1.exe
#}
# =============================================================== #
# 引导光盘文件,对Win系统的安装光盘不太支持,这个是引导普通iso文件的引导菜单
#menuentry "引导ISO光盘"{
#loopback loop0 (hd0,1)/boot/pe/pe/Win7_PE_6.ISO
#set root=(loop0)
#chainloader +1
#boot
#}
# =============================================================== #
# 挂载"非标准"软盘镜像1.44和2.88 软件memdisk自己百度下得,后面的参数可以通过软件GDPARAM来看
menuentry "DOS tools" {
linux16 /boot/kernel/memdisk c=99 h=4 s=36 floppy
initrd16 /boot/img/DADIDos.IMA
}
# =============================================================== #
# 挂载"标准"软盘镜像1.44和2.88
menuentry "Win98 DOS 急救盘" {
linux16 /boot/kernel/memdisk
initrd16 /boot/img/98dosboot.IMG
}
# =============================================================== #
# 重新启动计算机
menuentry "重启-restart"{
reboot
}
# =============================================================== #
# 关闭计算机
menuentry "关机-shutdown"{
halt
}
# =============================================================== #
# 对非标准的1.4M和2.8M的其他镜像挂载方法,需要指定 CHS参数:
# menuentry "NO Boot from IMG" {
# linux16 /memdisk c=* h=* s=* floppy
# initrd16 /xxx.img
#}
# =============================================================== #
# 挂载光盘linux
#menuentry "Ubuntu 11.10-beta1-desktop" {
#loopback loop (hd0,3)/Ubuntu.iso
#这句,是使用grub2的回放技术,把Ubuntu.iso的文件内容,投射到loop上。在使用这个命令时,
#你得考虑你的内存足够的大。
#
#linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ubuntu.iso
#这句,是加载内核,其中(loop),是使用了上一句所投射的设备,其访问的是Ubuntu.iso文件的内容。
#其中boot=casper是使用casper来启动一个在iso文件内的一个预先安好的live系统。
#在这里http://packages.ubuntu.com/natty/casper你可以看到它的基本介绍,
#你也可以安装一个到你的系统中,利用man casper来看一下,它的基本使用方法。
#
#其中的iso-scan/filename=/Ubuntu.iso,是利用iso-scan来寻找到你的ubuntu.iso文件,所在位置
#并把所找到的iso文件挂到光驱设备(在这里,其相到于find, 和mount命令的集成,但功能更强)/cdrom
#http://packages.Ubuntu.com/natty/iso-scan这里有介绍
#
#initrid (loop)/casper/initrid.lz
#其中initrid.lz是一个镜象文件,里面存的是一些内核要加载的重要文件。
#
#boot
#}
# =============================================================== #
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
========================================================================
现在还遗留的问题
1 没有中文字体,回来下个库文件打算自己整,或者哪位同仁有自己做好的,可以交流一下。
2 不能直接引导PE,对这个要说的话比较多,也有一些想法,有时间的话也可以和同仁交流一下。
3 不能引导Win7或Win XP等安装盘,现在还不会,学习资料网上几乎没有,grub2 好像也不太支持。
4 找了一个CDlinux 迷你版的,光有命令行那种的,不太满意。
5 dos工具箱自己修改的大地PE dos工具箱还算可以。现在有点小问题。希望哪位同仁有Dos下支持鼠标点击拖放文件的软件给我考一份。
6 grub2 在网络中得应用,时间紧还没接触,不过已经看了一篇这类的帖子了。
7 光盘系统引导文件,在grub2中,自己能修改么,现在还不会,时间够就看看。
Ubuntu 11.10下GRUB 2 1.99版编译安装笔记的更多相关文章
- 【转】ubuntu 11.10(32位系统)下编译android源码
原文网址:http://www.cnblogs.com/dwayne/archive/2011/11/16/2251734.html 本文介绍在ubuntu 11.10系统下编译android 2.3 ...
- Ubuntu 11.10 Server下搭建Maven私服
安装Nexus服务的文档可以参考官方站点:http://www.sonatype.com/books/nexus-book/reference/install-sect-install.html ...
- Ubuntu 11.10 安装GMONE3,卸载 UNITY和UNITY 2D
Ubuntu 11.10安装GNOME3: 1)sudo apt-get install gnome-shell sudo apt-get install gnome-themes* (或者 ...
- 在Ubuntu 11.10工具栏上用数字显示网速、CPU负荷和内存占用量『译』
基本上照抄了<How To Display Network Upload / Download Speed On The Panel In Ubuntu 11.04>,只不过我的实践环境是 ...
- Ubuntu 13.10下安装ns2 2.35遇到的小问题
前面下载安装的环节我就不多说了,网上已经有很多的例子,最全的是一个新浪网友写的博客:http://blog.sina.com.cn/s/blog_785a23ae0100xraq.html.他使用的是 ...
- ubuntu 11.10 安装apache2 tomcat6
ubuntu 11.10 安装apache2 tomcat6 导读 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目 ...
- 显示 Ubuntu 11.10 的 终端窗口
显示 Ubuntu 11.10 的 终端窗口 一.点击左上角的图标 -> 在search框里搜索termial . 二.快捷键:Ctrl+Alt+t.
- Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...
- Ubuntu 11.10 H3C iNode 客户端安装
下载客户端,放到桌面 双击打开,点击解压缩 Ctrl+Alt+T打开终端,依次输入以下代码并回车 代码: cd 桌面sudo cp iNodeClient /usr -Rcd /usr/iNodeCl ...
随机推荐
- 浅谈GlusterFS
GlusterFS 标签(linux): 分布式文件系统 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 图片来自于官网:http://gluster.readt ...
- htmlcss渐变及兼容性
自我总结,欢饮拍砖. <!DOCTYPE HTML> <html lang="en"> <head> <meta content ...
- 一个特殊的List去重问题的解决方案
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7039842.html 场景描述:公司新活动,需要在活动页面显示指定利率的四种投资项目,并且 ...
- MongoDB入门系列(三):查询(SELECT)
一.概述 mongodb是最接近关系型数据库的NOSQL数据库,它的存储方式非常的灵活:以至于你会将它看成是一个经过冗余过的关系型数据库的表,这也是Mongodb原子性的一个特征.由于没有关系型数据库 ...
- python基础 列表 的用法及介绍
列表 首先定义一个列表 声明列表 列表名字=[值1,值2] list=[1,2,3,4,5] 这是一个列表,列表中有五个元素(1,2,3,4,5) 显示list列表 print list 输出 ...
- BZOJ 1969: [Ahoi2005]LANE 航线规划 [树链剖分 时间倒流]
题意: 一张图,删除边,求两点之间的割边数量.保证任意时刻图连通 任求一棵生成树,只有树边可能是割边 时间倒流,加入一条边,就是两点路径上的边都不可能是割边,区间覆盖... 然后本题需要把边哈希一下, ...
- 解决angularjs 在ie8上面 ng-repeat的select控件兼容性问题
问题描述: 在ie8下生成select的option时候使用ng-repeat,会造成下拉列表的列表显示值为{{x.displayname}}的形式,但是选中之后,选中值却又是正确的,此问题不在chr ...
- Ios App上传步骤
前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...
- zabbix如何监控进程
zabbix中item的配置如下: zabbix中trigger的配置如下:
- 关于 iOS 分类(Category)的实现代码
其实质是对一个类的扩充,对类扩充的方法有两种: (1)通过继承(经常用到) (2)通过分类 一个已知类Name 其头文件Name.h #import <Foundation/Foundation ...