Grub2 基本操作 和 grub.cfg 配置信息

grub2基础教程(节选)
1、安装ubuntu9.10时,grub默认安装在第一硬盘(hd0)的mbr,其实就是把引导文件 boot.img写入硬盘的mbr,当然,用户也可  以选择不写入硬盘mbr而是写入linux分区的引导扇区。启动时根据mbr所提供信息找到启动分区后,加载分区内的grub核心文件core.img和  配置文件grub.cfg,进入选择菜单画面,在菜单画面,按上下箭号选择需要系统菜单项,按Enter进入选项。

按e进入己选择菜单的编辑状态,在编辑状态下,由上下左右箭号来移动光标,enter键换行,ctrl+x以编辑的内容启动,ctrl+c进命令行状态,按Esc退出,回到菜单项。
在需要使用额外的内核参数启动时,比如要加上acpi=off时,把光标移动到linux这一行最后,在splash后加上一空格再输入acpi=off,然后按ctrl+x启动。

按c进入命令行状态,按Tab键可查看所有可用的命令。

在命令行状态,可以根据需要加载或移除相应模块,也可用来启动在菜单没有显现的的系统。
比如,在第一硬盘的第一分区上装有windows xp系统,但在菜单上没显示出来,我们可以命令行状态下输入命令启动:
grub>set root=(hd0,1)
grub>chainloader +1
grub>boot
又比如启动第二硬盘第一逻辑分区上的ubuntu系统:
grub>set root=(hd1,5)
grub>linux /boot/vmlinuz-xxx-xxx root=/dev/sdb5
grub>initrd /boot/initrd.img-xxx-xxx
grub>boot
其中内核vmlinuz和initrd.img的版本号可用按Tab键自动查看。
2、下面介绍下在grub2中一些常用的命令
1)help
查看命令用法,如
help search:查看search命令详细用法
2)set
设置变量值,如
set default=0
set timeout=5
set root=(hd0,3)等等
需要调用变量AA的值时,使用${AA},如set root=(hd1,1),则${root}=(hd1,1)
3)default
定义默认引导的操作系统。0 表示第一个操作系统,1表示第2个,依此类推
4)timeout
定义在时间内用户没有按下键盘上的某个按键,自动引导default指定的操作系统。
5)root
指定用于启动系统的分区。
6)insmod和rmmod
加载或移除某模块,如
insmod jpeg
insmod png
insmod ntfs
rmmod png

7)drivemap
drivemap兼容grub的map,主要用于只能从第一硬盘(hd0)引导启动的系统如 win2000 xp 2003,比如要添加第二硬盘第一分区上的xp系统:
menuentry "Windows XP" {
set root=(hd1,1)
drivemap -s (hd0) ${root}
chainloader +1
}
8)ls
列出当前的所有设备。如(hd0),(hd0,1),(hd0,5),(hd1),(hd1,1),(hd1,2)等
ls -l
详细列出当前的所有设备。对于分区,会显示其label及uuid。
ls /
列出当前设为root的分区下的文件
ls (hd1,1)/
列出(hd1,1)分区根目录的文件
9)search
search -f /ntldr
列出根目录里包含ntldr文件的分区,返回为分区号
search -l LINUX
搜索label是LINUX的分区。
search --set -f /ntldr
搜索根目录包含ntldr文件的分区并设为root,注意如果多个分区含有ntldr文件,
set失去作用。
10)loopback
loopback命令可用于建立回放设备,如
loopback lo0 (hd1,1)/abc.iso
可以使用lo0设备来访问abc.iso里的内容,比如说,可以从abc.iso里的软盘映像中启动
loopback lo0 (hd1,1)/aa.iso
linux (lo0)/memdisk
initrd (lo0)/abc.img
要删除某一回放设备,可以使用-d参数:
loopback -d lo0
11)pager
分页显示。
set pager=1
显示满一页时暂停,按space继续
set pager=0
取消分页显示
12)linux
用linux命令取代grub中的kernel命令
13)chainloader
调用另一个启动器,如
chainloader (hd0,1)+1
调用第一硬盘第一分区引导扇区内的启动器,可以是windows或linux的启动器

grub2配置文件详解
grub2改用grub.cfg为配置文件,配置文件包含以下基本内容:(红色为解释部分)
### BEGIN /etc/grub.d/00_header ###
load_env
#加载变量,如果在grubenv保存变量,则启动时装载
set default="0"
#设置默认引导项,默认值为0
insmod ext2
#插入文件系统支持的模块,除了用作启动的分区外,其他分区格式可在menuentry底下再添加
set root=(hd0,8)
# 指定系统root分区,也就是 / 分区
search --no-floppy --fs-uuid --set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b
#指定uuid=2d61e5f9-1d2a-4167-a6f1-b991ba00878b的分区为root分区,如果前面的分区号(hd0,8)的#uuid与这里的uuid一致,这两句作用一样,如果不一致,则指定uuid的起作用。
if loadfont /usr/share/grub/unicode.pf2 ; then
#设置终端字体,unicode.pf2支持中文字符显示
set gfxmode=640x480
#设置显示分辨率,默认为640x480,可用800x600,1024x768,建议跟你想设定的图片大小一致
insmod gfxterm
#插入终端模块gfxterm,支持中文字符显示和支持24位图像
insmod vbe
#插入vbe模块,GRUB2引入模块化机制,要使用它,需要在这里加入
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don‘t
# understand terminal_output
terminal gfxterm
#设定grub2终端为gfxterm
fi
fi
set timeout=10
#设定默认启动前等待时间,默认为10秒
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###set menu_color_normal=white/black
#设定菜单字体及背景颜色
set menu_color_highlight=black/blue
#设定选择项字体及背景颜色
#如果使用默认,背景将完全被蓝色挡住了,需要修改blue为black,背景图片才能显示
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
#10_linux为系统自动添加的当前root分区linux引导项
#每个菜单项要包括menuentry双引号" "和大括号{ }才完整,否则不显示菜单
menuentry "Ubuntu, Linux 2.6.31-10-generic" {
set quiet=1
insmod ext2
set root=(hd0,8)
search --no-floppy --fs-uuid --set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b
#这句与set root=(hd0,8)效果一样,可删除其一,二者不一致以这句为准
linux /boot/vmlinuz-2.6.31-10-generic root=UUID=2d61e5f9-1d2a-4167-a6f1-b991ba00878b ro quiet splash
#不喜欢看到一长串的, roo=UUID=***可用root=/dev/sda8(/分区的分区号)代替
initrd /boot/initrd.img-2.6.31-10-generic
}

### END /etc/grub.d/10_linux ###
#20_memtest86+为系统自动添加的内存测试菜单项
###  BEGIN /etc/grub.d/20_memtest86+ ###menuentry "Memory test (memtest86+)"  {linux16 /boot/memtest86+.bin}menuentry "Memory test (memtest86+,  serial console 115200)" {linux16 /boot/memtest86+.bin  console=ttyS0,115200n8}### END /etc/grub.d/20_memtest86+ ###
#30_os-prober或30_others为系统自动查找并添加其他系统菜单项,按windows,linux,macos顺序
#查找并添加,支持windows 7识别
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_otheros ###
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
search --no-floppy --fs-uuid --set e852-230b
drivemap -s (hd0) $root
#对以ntldr引导的系统如win2000,xp,win2003,因其引导机制只能从第一硬盘启动,系统会自动添加#映射命令,对vista和win7就没有这句命令
chainloader +1}### END /etc/grub.d/30_otheros ###
#40_custom为自定义的启动项,如启动cdlinux
### BEGIN /etc/grub.d/40_custom ###
menuentry "CDLinux"{
set root=(hd0,8)
linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8
initrd /CDlinux/initrd
}
### END /etc/grub.d/40_custom ###

实例:
menuentry "CentOS-base, (2.6.18-164.el5)" {
insmod ext2
set root=(hd0,3)
linux /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-164.el5.img
}

menuentry "Ubuntu, Linux 2.6.31-14-generic-pae" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set 91d7cb26-bd24-4bbf-9423-c81bb9be0a06
linux    /boot/vmlinuz-2.6.31-14-generic-pae root=UUID=91d7cb26-bd24-4bbf-9423-c81bb9be0a06 ro   quiet splash
initrd    /boot/initrd.img-2.6.31-14-generic-pae
}

时间: 2024-10-13 07:50:04

Grub2 基本操作 和 grub.cfg 配置信息的相关文章

CentOS7重新生成 /boot/grub2/grub.cfg

CentOS7重新生成 /boot/grub2/grub.cfg CentOS7 is using grub2 and the generated /boot/grub2/grub.cfg rather than the old grub.confformat, which is why you can't find it. The new grub.cfg file is not intended for direct editing, instead you need to modify t

grub应用配置及修复

GRUB是一个多操作系统启动管理器.GRUB全称为GRand Unified Bootloader.他是系统启动后运行的第一个程序,他是用来负载加载,传输控制到操作系统的内核,一旦他把内核挂载,系统引导管理器的任务也就完成.其他部分,比如设定默认启动级别,系统初始化,关闭启动相应的服务等都内核去完成. 1. grub legacy整个运行分为了三个阶段: 第一阶段,stage1,它是直接被写入到MBR中去的,这样机器一启动检测完硬件后,就将控制权交给了GRUB的代码.也就是上上图所看到的前446

DB2配置信息查看及其更新命令

获取DB2配置信息 db2 get dbm cfg 更新DB2链接配置信息 db2 update dbm cfg using authentication server db2stop db2start

一分钟掌握Linux系统grub.conf配置核心知识

引导加载程序(Boot loader)是计算机在加载操作系统内核之前运行的一段小程序.通过这段小程序,可以初始化硬件设备.建立内存空间的映射图,从而将系统的软硬件环境加载到一个适合的状态,以便为最终调用操作系统内核做好准备.通常,引导加载程序依赖于硬件实现,早期的Linux系统常见的引导加载程序有2种,即Grub和Lilo,现如今Grub已经成为了主流(类似Windows下的boot.ini引导文件). 引导加载程序读取grub.conf文件的配置信息,然后根据对应配置信息来启动不同的操作系统,

linux下怎么修改grub.cfg

一.grub2的启动配置文件grub.cfggrub2的启动配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst.如果你是多系统,有Ubuntu和windows,那么用下面的命令,可以使grub2得到所以可以启动的系统.sudo update-grub实际就是让系统自己生成合适的grub.cfg文件.这个grub.cfg文件是只读属性,so如果你要修改它,需要权限.sudo chmod +w /boot/grub/grub.cfg然后可以编辑grub.c

JavaWEB中读取配置信息

第一种方法是使用java.io和java.util包,缺点是路径的概念要清晰, 例子: Properties prop = new Properties(); InputStream in = getClass().getResourceAsStream("/common.properties"); try { prop.load(in); pool = new JedisPool(config, prop.getProperty("pay.redis.url"))

设置Webdriver启动chrome为默认用户的配置信息

Webdriver 启动Chrome浏览器时,默认是打开一个新用户,而非默认用户,即新用户没有我们安装扩展程序.但在实际应用中,我们会需要 默认用户安装的一些扩展程序,比如对于某些js或者css样式,需要代理才能访问成功,使用默认用户就显得尤为重要(因为你不可能在新用户在安装扩展程序再继续测试). 如图: a)默认用户的扩展: 在锁定chrome的任务栏打开的状态: b) WebDriver打开的新用户的扩展: 在锁定chrome的任务栏打开的状态: ----------------------

SERVERAID 8K和8K-L阵列卡在添加新硬盘时会丢失阵列配置信息

客户有一台IBM X3400需要扩容本地硬盘,去之前以为和IBM x3650M4等服务器类似,就没有多查资料,到现场后发现阵列卡型号是SERVERAID 8K,整个配置界面与x3650M4 的webbios配置阵列卡完全不同,没敢贸然操作,上网查了查资料,一些注意的地方和大家分享一下. 使用ARC配置ServeRAID_8k-l8k8i图文手册,已经上传到这里http://down.51cto.com/data/1357299 适用机型: 所有System x3400; 所有System x35

可以将一些配置信息已json格式存在数据库中读取的时候序列化。

public partial class json序列化 : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            StringBuilder builder = new StringBuilder(); builder.Append("{");            builder.Append("    \"C