cat writebug.cn/history

一个开发者的技术博客。

learn-grub2

设备的命名

grub2同样以fd表示软盘,hd表示硬盘(包含IDE和SCSI硬盘)。设备是从0开始编号,分区则是从1开始,主分区从1-4,逻辑分区从5开始,而grub分区编号是从0开始的。下面给出几个例子 :

(fd0):表示整个软盘
(hd0,1):表示BIOS中的第一个硬盘的第1个分区
(hd0,5)/boot/vmlinuz:表示BIOS中的第一个硬盘的第一个逻辑分区下的boot目录下的vmlinuz文件

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

按e进入己选择菜单的编辑状态,在编辑状态下,由上下左右箭号来移动光标,enter键换行,ctrl+x以编辑的内容启动,ctrl+c进命令行状态,按Esc退出,回到菜单项。

在需要使用额外的内核参数启动时,比如要加上acpi=off时,把光标移动到linux这一行最后,在splash后加上一空格再输入acpi=off,然后按ctrl+x启动。

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的启动器