暗无天日

=============>DarkSun的个人博客

GRUB 2常用命令

如何进入GRUB 2命令行界面

进入GRUB 2命令行有两种方法:

  1. 在GRUB启动菜单中按 Ctrl-C 进入,这种方法支持的命令比较全面
  2. 进入linux后,在shell中运行 grub 命令进入命令行界面,这种方法已经进入操作系统,很多命令不可以用了

常用命令

查看命令用法

查看search命令的用法

help search

set:设置变量值

set default=0
set timeout=5
set root=(hd0,1)

其中这几个变量都有起特殊意义:

default
定义默认引导那个操作系统,0表示第一个操作系统,1表示第二个操作系统,以此类推
timeout
设置多少秒后,自动启动default指定的操作系统
root
指定启动系统的分区

insmod:加载模块

insmod ntfs

rmmod:移除模块

rmmod png

drivemap:映射磁盘分区

有些操作系统只能从hd0(第一块磁盘)引导,但实际上可能安装在其他磁盘上,那么可以使用 drivemap 进行映射

menuentry "Windows XP"{
set root=(hd1,1)
drivemap -s (hd0) ${root}
clainloader +1
}

ls:列出设备/文件

详细列出当前所有设备:

ls -l

列出root分区下的文件

ls /

列出(hd1,1)分区下的文件

ls (hd1,1)/

search:搜索符合条件的分区

找到根目录中包含ntldr文件的分区

search -f /ntldr

找到label是WINDOWS的分区

search -l WINDOWS

找到符合条件的分区并将之设置为root

search --set -l LINUX

loopback:创建loop设备

通过 loopback 可以从ISO文件中进行引导

建立loop设备:

loopback lo(hd1,1)/Android.iso

然后可以访问 Android.iso 中的内容了

linux (lo0)/memdisk
initrd (lo)/Android.img

通过 -d 参数可以删除loop设备

loopback -d lo0

pager:设置是否分页现实

分页现实会在输出内容满屏后暂停输出,按空格后继续输出

启用分页显示:

set pager=1

禁止分页显示:

set pager=0

linux:加载内核

kernel /bzImage-2.6.14.2

initrd:引导特定的内核

initrd /initrd-2.6.14.2.img

chainloader:调用另一个启动器

调用地一块硬盘第一个分区引导扇区内的启动器:

chainloader (hd0,1)+1