热搜词
发表于 2016-7-25 16:23:46 | 显示全部楼层 |阅读模式
grub2grub相主要增加的功能:

1.支持脚本,包括条件语法和函数

2.动态加载模块

3.救援模式

4.可定制菜单,主题

5.支持图形化启动菜单以及增强的引导画面功能

6.新的配置文件结构,全面支持UUID


grub2配置菜单与grub的不同:

1.没有/boot/grub/menu.1st。已被/boo/grub/grub.cfg取代

2.在grub提示符下没有find命令,已变成search.

3.grub2已经模块化,不再需要'stage1.5'.所以引导器可以变得很小.

4.磁盘分区编号变更。现在第一个磁盘分区是 1 而不是 0。然而第一个设备仍然是 0(没有改变)

5./etc/grub/grub.cfg,不应在被手动编辑,主要用来编辑的配置文件是/etc/default/grub,还有所在/etc/grub.d/目录下的文件,在update-grub命令执行前,所有配置文件的修改都不会生效.

查看grub版本命令:

两种命令任选一个使用

# grub-install -v
# grub-setup -V

从 grub升级到gru2 正确步骤

从 grub升级到gru2 正确步骤是,安装完grub2后 再升级配置文件和 mbr 。
替换grub和grub2与mbr有关系的,需要加载的文件不一样。

# apt-get install grub2
# sudo upgrade-from-grub-legacy

--------------------------------------------------------------------------------------

1. 安装 GRUB 2。我用的是 Debian Lenny,安装相当简单,直接执行:
apt-get install grub2
系统依赖装上 grub-pc 和 grub-common,安装过程中提示:
GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub.
In order to replace the Legacy version of GRUB in your system, it is
recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2
from your existing GRUB Legacy setup. This step may be automaticaly
performed now.
It’s recommended that you accept chainloading GRUB 2 from menu.lst, and
verify that your new GRUB 2 setup is functional for you, before you
install it directly to your MBR (Master Boot Record).
In either case, whenever you want GRUB 2 to be loaded directly from MBR,
you can do so by issuing (as root) the following command:
upgrade-from-grub-legacy
小解释:这个提示是说装 GRUB 2 时侦测到你有旧的 GRUB 设置,系统将采用旧的设置来引导,新的 GRUB 2 暂时会成为旧 GRUB 的一个项目引导,当你确定 GRUB 2 可以正常使用后,运行 upgrade-from-grub-legacy,旧的 GRUB 会消失,只留 GRUB 2 的菜单。
Chainload from menu.lst?
将 GRUB 2 用旧的配置 menu.lst 引导?这里建议使用。
The following Linux command line was extracted from the `kopt’ parameter │
│ in GRUB Legacy’s menu.lst. Please verify that it is correct, and modify
│ it if necessary.
│ Linux command line:
│ │
这里不大了解,不过我是没输入任何东西自己确定的。
2. 安装完成后,重启。你会发现 GRUB 菜单有点不同了,上面有 GRUB 2 的项目,在中间还有段提示,当你确定 GRUB 2 能正常使用后,使用 upgrade-from-grub-legacy。不能引导的话,下面保留有原来的 GRUB 设置,可以直接使用。
使用 upgrade-from-grub-legacy 命令后,将删除原来的 menu.lst 项目。
3. GRUB 2 的设置有所变化,不是原来的 menu.lst,而是 /boot/grub/grub.cfg。
4. 看看 grub.cfg,学习下这个文件(注意,默认情况下 /boot/grub/grub.cfg 为只读文件,修改的话,请先 chmod +w /boot/grub/grub.cfg)
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set default=0
#默认为 0,就是排第一个的项目。
set timeout=5
#等待时间
set root=(hd0,7)
#设置 root 分区
search –fs-uuid –set 15d9bbc2-a1be-400c-883b-0b038a8174e0
if font /usr/share/grub/ascii.pff ; then
#这里的 ascii.pff 为默认的字体,不支持中文,如果
#要中文支持,请改为 unicode.pff
set gfxmode=1024×768 #默认为 640×480
#设置分辨率,这个建议跟你想设定的图片大小一致
insmod gfxterm
#插入模块 gfxterm,当你前面设置为 unicode.pff 后,这个终端支持中文显
#示,它还支持 24 位图像
insmod vbe
#插入 vbe 模块,GRUB 2 引入很多模块的东西,要使用它,需要在这里加入
insmod png
#比如我们要想他显示 png 的图像做 GRUB 2 的背景,需要添加前面这行
insmod jpeg
#添加 jpg 支持。在 /boot/grub 下可查看模块,带 .mod 的文件
insmod tga
#如果要使用 tga 的图片做背景的话,gurb2-themes 里就是这种文件
terminal gfxterm
#设置 GRUB 2 终端为 gfxterm
background_image /boot/grub/111.png
#设置背景图片
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
#这两行为 Debian 下的菜单颜色设置,如果默认的话
#你会发现背景完全被蓝色挡住了,你需要修改 blue
#你可以改为 black,这样背景就会出现
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###
### BEGIN /etc/grub.d/10_linux ###
set root=(hd0,7)
search –fs-uuid –set 15d9bbc2-a1be-400c-883b-0b038a8174e0
menuentry “Debian GNU/Linux, linux 2.6.26-1-amd64″ {
linux /boot/vmlinuz-2.6.26-1-amd64 root=UUID=15d9bbc2-a1be-400c-883b-0b038a8174e0 ro
initrd /boot/initrd.img-2.6.26-1-amd64
}
#这里的 root=xxxx 也可以使用 /dev/hdax 来代替。
#当你的系统无法启动,而又不想打那么长的话。
#在 GRUB 2 启动时的命令行里,使用 (hd 加 tab 键可以看到分区和 uuid 号
menuentry “Debian GNU/Linux, linux 2.6.26-1-amd64 (single-user mode)” {
linux /boot/vmlinuz-2.6.26-1-amd64 root=UUID=15d9bbc2-a1be-400c-883b-0b038a8174e0 ro single
initrd /boot/initrd.img-2.6.26-1-amd64
}
#默认的 GRUB 2 好像没添加 Windows 的项目,这样添加
menuentry “启动 Windows”
#菜单名字
{
set root=(hd0,1)
#设置 Windows 分区,这里要注意 GRUB 2 是硬盘从 0,分区从 1 开始
chainloader +1
#原来的 GRUB 是 hd0,0 开始
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file is an example on how to add custom entries
### END /etc/grub.d/40_custom ###
------------------------------------------------------------------------

引导配置文件需要改变。通常只需要安装grub2后,(如果需要引导多系统,先安装os-prober)终端运行:
# grub-mkconfig -o /boot/grub/grub.cfg
就会自动配置系统引导,生成引导配置文件grub.cfg。



全部评论1
灰儿 发表于 2016-7-25 16:43:16 | 显示全部楼层
   由于客户安装系统后时由于可能会再插入其它SATA硬盘,硬盘识别符变化后无法引导系统。在debian 5下默认安装GRUB 0.97。不支持GRUB引导使用硬盘UUID。不得已只好升级GRUB到GRUB2。

1、首先安装软件,如果没有特殊需求,配置界面直接按回车即可。
apt-get install grub-pc
2、确认自己主机目前只有一个硬盘。然后执行以下命令升级GRUB
upgrade-from-grub-legacy

3、根据第二步提示。删除旧启动文件
rm /boot/grub/menu.lst*
4、查看最新配置文件是否已经改为UUID启动
cat /boot/grub/grub.cfg
5、插上其它硬盘。使用dd命令进行硬盘复制
假如现在的硬盘为sda。新插入硬盘为sdb.则命令为
dd if=/dev/sda of=/dev/sdb
如果想查询进度,则需要在另外一个终端不时给dd发USR1信号。显示进度
watch -n 5 killall -USR1 dd
然后切换到原来的终端,发现每隔5秒显示一次进度和速度信息。

回复

使用道具 举报

回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-23 15:20 , Processed in 0.225823 second(s), 33 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team