grub命令是多重引导程序grub的命令行shell工具。
常用参数:
--batch:打开批处理模式;
--boot-drive=<驱动器>:指定stage2的引导驱动器;
--config-file<配置文件>:指定stage2的配置文件;
--device-map=<文件>:指定设备的映射文件;
--help:显示帮助信息;
--install-partition=<分区>:指定stage2安装分区;
--no-config-file:不使用配置文件;
--no-pager:不使用内部分页器;
--preset-menu:使用预设菜单;
--probe-second-floppy:检测第二个软盘驱动器;
--read-only:只读模式。
命令内部参数:
grub> help
help
blocklist FILE boot
cat FILE chainloader [--force] FILE
clear color NORMAL [HIGHLIGHT]
configfile FILE device DRIVE DEVICE
displayapm displaymem
find FILENAME geometry DRIVE [CYLINDER HEAD SECTOR [
halt [--no-apm] help [--all] [PATTERN ...]
hide PARTITION initrd FILE [ARG ...]
kernel [--no-mem-option] [--type=TYPE] makeactive
map TO_DRIVE FROM_DRIVE md5crypt
module FILE [ARG ...] modulenounzip FILE [ARG ...]
pager [FLAG] partnew PART TYPE START LEN
parttype PART TYPE quit
reboot root [DEVICE [HDBIAS]]
rootnoverify [DEVICE [HDBIAS]] serial [--unit=UNIT] [--port=PORT] [--
setkey [TO_KEY FROM_KEY] setup [--prefix=DIR] [--stage2=STAGE2_
grub will attempt to avoid printing an terminal [--dumb] [--no-echo] [--no-ed
terminfo [--name=NAME --cursor-address testvbe MODE
unhide PARTITION uppermem KBYTES
vbeprobe [MODE]
boot 引导先前已经被指定并载入的操作系统或链式装载程序。
chainloader 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一 扇区内的文件,使用+1作为文件名。
displaymem 显示当前内存的使用情况,这个信息是基于BIOS的。这个命令有助于确定系统在引导前有多少内存。
initrd 使用户能够指定一个在引导时可用的初始RAM盘。当内核为了完全引导而需要某些模块时,这是必需的。
install p 安装GRUB到系统的主引导记录。这个命令允许系统重启时出现GRUB接口。
(警告:install命令将覆盖主引导扇区中的其他信息。如果命令被执行,那么除了GRUB信息之外的其他用于引导其他操作系统的信息都将丢失。在执行这条命令前,确定你对它有正确的了解。)
kernel 当使用直接载入方式引导操作系统时,kernel命令指定内核从GRUB的根文件系统中载入 。
color 设定在菜单中使用的颜色,一种是作为前景色,一种作为背景色。可以简单地使用颜色名称,如red/black。比如:color red/black green/blue
default 默认项目的标题名称。如果菜单接口超时,那它将被载入。
fallback 当这个命令被使用时,如果第一次尝试失败,那么这个项目的标题名称将被使用。
hiddenmenu 这个命令被使用时,它不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按[Esc]键,可以看到标准的GRUB菜单。
timeout 这个命令设定了在GRUB载入由default命令指定的项目的时间间隔,以秒为单位。
splashimage 它指定在GRUB引导时所使用的屏幕图像的位置。
说明:利用grub命令来启动损坏的Linux系统,可能你的电脑因为某些原因损坏不能自动启动了。
当然原因很多,可能的现象也很多。 这里说一下这种情况下的处理方法,即:屏幕上提示grub>,但你的硬盘上数据没有丢失,各分区都是好的。这种情况是你的grub信息损坏了,但比较严重的是系统启动不了。
当然,在正常启动情况下,屏幕上出现grub的启动项选择菜单时按c键也是可以进入grub>状态的。这时候我们需要用grub的命令来手工启动系统。
只需要用到四个命令boot、kernel、initrd、boot。
但grub本身命令很多,比如查看文件内容的cat ,你输入help会得到。
首先,输入“ root (hd ” ,然后按两次 TAB 键; /* 这会列出你电脑上可能的磁盘设备,硬盘为 hd0/hd1 或 sd0/sd1 等 */
然后,选择你的安装 Linux 系统的硬盘,比如 hd0 ,输入 “ root (hd0, ” 再按两次 TAB 键; /* 这会列出你的第一块硬盘上的分区情况,你会知道哪个是 swap 交换分区, 0x82 ,哪个是 Linux 分区 0x83 */
选择你认为可能的 /boot 目录所在的分区, 输入root (hd0, 1)回车;
接着,输入cat /boot/vm, 按两次 TAB 键,如果出现一些 vm 开头的文件,比如 vmlinuz-2.6.15-26-386 说明这里是 /boot 所在的分区。
删除上一次的输入,再输入cat /boot/initrd,按两次 TAB 键,如果出现一些 initrd 开头的文件,比如 initrd.img-2.6.15-26-386 说明这个 /boot 所在的分区有 initrd ,即 ramdisk 镜像;
删除上一次的输入,再输入cat /sbin/init,按两次 TAB 键,如果出现一些 init 开头的文件,比如/sbin/init说明这个分区是/所在的分区;
如果没有出现/sbin/init文件,说明(hd0,1)分区仅仅是/boot分区而不是/分区。重新输入root (hd0,N)命令,这里 N 是某个 Linux 分区,然后再试cat /sbin/init, 直到屏幕上出现/sbin/init,说明你找到了/分区,严格来说,应该是/sbin
grub> root (hd0,1) # /dev/hda2 是/boot 所在的分区 grub> kernel /boot/vmlinuz-2.6.15-26-386 ro dev=/dev/hda3 #/dev/hda3 根/ 所在的分区 grub> initrd /boot/initrd.img-2.6.15-26-386 #设置initrd文件,也有可能用软连接代替真正的文件名 grub> boot #从硬盘启动