关于GRUB
![](https://www.cnblogs.com/Emoticons/tusiji/203330198.gif)
其实大可在DOS状态下,用fdisk /mdr 或 fixmdr 或 fixboot,修复一下,搞掉MDR,但是有时这些命令用不了,比如某个DOS不存在这个命令,以甚到"Invalid switch --MDR"……
grub无法引导,只好手动加载内核和启动:
让我们输入 root 分区。在提示中输入 root,但不要按 Enter 键:
grub> root (
现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2") 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成的 root 命令看起来如下:
grub> root (hd0,
现在,继续操作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表:
grub> root (hd0, (tab)
Possible partitions are:
Partition num: 0, Filesystem type is ext2fs, partition type 0x83
Partition num: 1, Filesystem type unknown, partition type 0x82
Partition num: 2, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type is reiserfs, partition type 0x83
Partition num: 5, Filesystem type is reiserfs, partition type 0x83
如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续操作了。
装入内核
从软盘启动grub
制作启动盘后可以用软盘启动引导硬盘上的操作系统 插入制作好的启动软盘,进入
BIOS设定软盘启动。软盘启动成功后就会进入grub的命令行模式
grub>
要启动一个操作系统,首先指定引导哪个分区上的系统,例如要引导指第一个硬盘
上的第一个分区的操作系统,先键入
grub>root (hd0,0)
接着如果要启动的是Windows系统,键入
grub>chainloader (hd0,0)+1
注意(hd0,0)要随着硬盘和分区的不同而改变数字。 如果要引导Linux或其他系统,
应键入
grub>kernel (hd0,0)/boot/vmlinuz root=/dev/hda1
注意hda1参数也要随着硬盘和分区的不同而改变,如从第二个硬盘的第一个分区引
导则用hdb1。
最后敲入boot就可以启动系统了。
在任何时候不能确定命令或者命令的参数都可以按Tab获得相关的帮助。用上下键可
以获得命令的历史记录。 其实这些命令就是menu.lst的启动描述,您也可以根据那些描
述来自己键入启动命令,最后敲入boot就可以引导系统了。
![](https://www.cnblogs.com/Emoticons/baimantou/202015214.gif)
而后Clear MBR 0.9 ,安装直接运行执行“Clear MBR”即可。
命令索引:
blocklist用法: blocklist FILE描述: 输出文件的块清单标记。 boot用法: boot描述: 引导已加载的操作系统或扇区链式加载器。 bootp用法: bootp [--with-configfile]描述: 通过BOOTP初试化网络设备。如果使用了`--with-configfile'参数,此命令将会试图去加载一个特定的配置文件。 cat用法: cat FILE描述: 显示指定文件的内容。 chainloader用法: chainloader [--force] FILE描述: 加载扇区链式加载器。若使用了--force参数, 则忽略该扇区的启动标识的有效性。 cmp用法: cmp FILE1 FILE2描述: 比较两个文件, 并且报告两者之间的不同的信息。 color用法: color NORMAL [HIGHLIGHT]描述: 改变菜单的颜色。Normal 用于指定菜单项的未选中时的颜色,HIGHLIGHT 则用于指定菜单项的被选中时的颜色。如果你未指定 HIGHLIGHT 色,那么我们将使用 NORMAL 的反色值。颜色值的格式是 "FG/BG"。FG 和 BG 是颜色的名称,如下:black(黑), blue(蓝), green(绿), cyan(青), red(红), magenta(粉红), brown(棕), light-gray(亮灰),dark-gray(暗灰), light-blue(浅蓝), light-green(淡绿), light-cyan(淡青), light-red(明红), light-magenta(浅红), yellow(黄) 和 white(白)。注意,BG 的值只能是前八个。另外,若想使用闪烁的前景色,你在 FG 前使用前缀 "blink-" 即可。 configfile用法: configfile FILE描述: 将指定文件作为配置文件予以加载。 debug用法: debug描述: 打开/关闭除错模式。 default用法: default [NUM | `saved']描述: 把 NUM 项菜单设为缺省值。 device用法: device DRIVE DEVICE描述: 声明BIOS驱动器对应的实际物理设备。这条命令只用于grub命令行。 portmap用法: portmap prog_number vers_number描述: 进行端口映射。 dhcp用法: dhcp描述: 通过DHCP初试化网络设备。 splashimage用法: splashimage FILE描述: 图形模式下载入背景图片文件。 foreground用法: foreground RRGGBB描述: 设置图形模式下的前景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。注意他们都使用十六进制的值。 background用法: background RRGGBB描述: 设置图形模式下的背景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。注意他们都使用十六进制的值。 clear用法: clear描述: 清屏幕。 displayapm用法: displayapm描述: 显示 APM BIOS 的相关信息。 displaymem用法: displaymem描述: 显示 GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。 dump用法: dump FROM TO描述: 显示诸多文件的内容。注意,FROM 所指定的必须是一个 GRUB 文件,TO 所指定的必须是一个 OS 文件。 embed用法: embed STAGE1_5 DEVICE描述: 如果设备是个驱动器, 则将Stage 1.5嵌入到主引导扇区之后。如果是个FFS分区, 则可嵌入到该设备饿`引导代码'区中。并输出 Stage 1.5所占的扇区数。 fallback用法: fallback NUM描述: 如果调用当前的菜单项时出现错误,则转移到 NUM 项后重试 find用法: find [--set-root] FILENAME描述: 在所有分区上查找文件名, 并显示包含该文件的设备。如果设置了参数 --set-root,则在找到第一个匹配后马上停止,并且把该设备设为根。 fstest用法: fstest描述: 切换文件系统的试验模式。 gfxmenu用法: gfxmenu FILE描述: 使用 FILE 中的图形菜单。 geometry用法: geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]]描述: 输出驱动器的相关信息。在grub壳程序中, 你可以用这条命令设置驱动器参数为任意值。如果你省略了总扇区数, 则该值缺省有其它参数决定。 halt用法: halt [--no-apm]描述: 关闭系统。如果APM(高级电源管理)功能存在,将使用 APM BIOS 关闭系统,除非指定了 `--no-apm' 选项。 help用法: help [--all] [PATTERN ...]描述: 显示内部命令的帮助信息。要查看所有命令的帮助,请使用 `--all' 参数。 hiddenmenu用法: hiddenmenu描述: 隐藏菜单。 hide用法: hide PARTITION描述: 通过在分区类型上置隐藏标志,隐藏指定分区。 ifconfig用法: ifconfig [--address=IP] [--gateway=IP] [--mask=MASK] [--server=IP]描述: 指定 IP 地址, 子网掩码, 网关和服务器地址。不带参数时,将显示当前的网络配置。 impsprobe用法: impsprobe描述: 通过一些循环操作,侦测出符合 Intel 多处理器规范 1.1/1.4 的 CPUs,以便于发挥其更好的效能。 initrd用法: initrd FILE [ARG ...]描述: 加载Linux格式的初始化虚拟盘, 并设置必要的参数。 install用法: install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]描述: 安装STAGE1到指定设备上,安装加载STAGE2需要的块列表到STAGE2上。如果使用了选项'd', STAGE1总是试图使用安装STAGE2的驱动器, 而不是启动盘。STAGE2将加载在指定地址上, 如果未声明地址, 则自动检测。如果使用了选项 'p' 或给出了配置文件, 将修改STAGE2的第一个数据块, 修正实际Stage2启动时使用的配置文件位置。对于Stage 1.5, 该值为Stage 2的路径。如果安装的是Stage 1.5, 且指定了实际配置文件, 则将该配置文件路径写入Stage2中。 ioprobe用法: ioprobe DRIVE描述: 侦测指定设备的 I/O 端口号。 kernel用法: kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...]描述: 尝试载入主引导影像文件。其它项将被作为内核的命令行参数而传递给内核。使用此命令以前,内核所用到的模块应该被重新载入。参数 --type 用于说明内核的类型,包括 "netbsd", "freebsd", "openbsd", "linux", "biglinux" 和 "multiboot"。参数 --no-mem-option 用于说明不必自动传递 Linux 的内存参数。 lock用法: lock描述: 如果用户未被认证,则终止命令的执行。 makeactive用法: makeactive描述: 将 root 设备置为活动分区。当然,此命令只对 PC 的硬盘主分区有效。 map用法: map [--status] [--hook] [--unhook] [--rehook] [[--read-only] [--fake-write] [--unsafe-boot] [--disable-chs-mode] [--disable-lba-mode] [--heads-per-cylinder=H] [--sectors-per-track=S] TO_DRIVE FROM_DRIVE]描述: 对设备进行映射。这对于扇区链式引导是很有用的功能,比如 DOS。这里,目的驱动器(TO_DRIVE)可以是一个磁盘文件,即使用磁盘虚拟功能。注意,这要求磁盘文件是连续存放于分区中的。另外,若使用了 --read-only 参数,该功能将使`磁盘'处于只读;若使用了 --fake-write 参数,该功能将使`磁盘'处于假写,即可以"写入"数据,但是却并未记录到真实磁盘上; 若使用了 --unsafe-boot 参数,该功能将使`磁盘'处于真实可写; 若使用了 --disable-chs-mode 参数,CHS 访问功能将被禁用; 若使用了 --disable-lba-mode 参数, LBA访问功能将被禁用; H 和 S 指定了虚拟磁盘的物理参数。若使用了 --status, --hook, --unhook,--rehook 诸参数之一, 那么其它的命令行参数将被忽略。 md5crypt用法: md5crypt描述: 产生一个 MD5 格式的密码。 module用法: module FILE [ARG ...]描述: 对多重启动影像, 加载启动模块文件 (不处理该文件的内容, 用户必须自己确定核心的要求)。剩余参数作为`模快命令行`传递, 象`kernel'命令一样。 modulenounzip用法: modulenounzip FILE [ARG ...]描述: 与 'module' 类似, 但是自动禁用了解压缩。 pager用法: pager [FLAG]描述: 没有参数时,切换页模式。如果使用了 FLAG 参数,那么它为`on' 时为开启, 为 `off' 时为关闭。 partnew用法: partnew PART TYPE START LEN描述: 创建一个新的主分区。START 为起始扇区号,LEN 为其包含的扇区数,TYPE 为其分区类型。 parttype用法: parttype PART TYPE描述: 改变指定分区(PART)的分区类型(TYPE)。 password用法: password [--md5] PASSWD [FILE]描述: 设置密码。当其处于菜单文件的首项时,将禁用所有的交互式菜单编辑功能,包括编辑菜单项(`e`)/进入命令行(`c`)。当正确输入密码 (由PASSWD指定)后,载入新的菜单文件(由FILE指定)。如果你没有指定 FILE 项,那么上述被禁用的功能将被启用了。当然,你也可以将此命令用到某个菜单项里,用以提高系统安全性。参数 --md5 说明密码(PASSWD)是使用md5crypt 加密的。 pause用法: pause [MESSAGE ...]描述: 终止命令的运行,并给出一段信息。任意键按下后,将继续。 quit用法: quit描述: 从 GRUB 命令行中退出。 rarp用法: rarp描述: 用 RARP 初始化网络设备。 read用法: read ADDR描述: 从内存的指定位置读取一个 32-bit 的值,并以十六进制形式显示出来。 reboot用法: reboot描述: 重启系统。 fontfile用法: fontfile FILE描述: 指定中文字体文件,并切换到简体中文显示方式。 scdrom用法: scdrom [--install], [--bootcd]描述: 寻找系统的第一个 CD-ROM 驱动器,然后为其分配一个驱动器号以备后续使用(--install)。或者,用该驱动器中的可引导光盘启动系统。(--boot)。 run用法: run FILE描述: 运行一个为光盘启动而设计的引导文件(非模拟方式的) root用法: root [DEVICE [HDBIAS]]描述: 设置根分区。设置根分区为指定设备(DEVICE), 然后尝试挂接该分区以得到分区大小(用于在ES:ESI中传递, 扇区链式启动方式要求这样)。BSD 驱动类型用于启动 BSD 的核心启动), 和确定 BSD 子分区所在的 PC 分区。可选的磁盘偏移参数, 用于 BSD 核心确定有多少个控制器在当前控制器前。比如: 假设同时有一个IDE和SCSI盘, 而BSD根分区在 SCSI盘上, 那么磁盘偏移就为1。 rootnoverify用法: rootnoverify [DEVICE [HDBIAS]]描述: 类似`root'指令, 但不测试安装该分区。这用于有些系统装在 GRUB 能访问的磁盘区之外, 但仍需要设置正确的根分区的情况。有些需要安装分区才能确定的参数可能会有问题。 savedefault用法: savedefault描述: 将当前项设置为默认的引导项。 serial用法: serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD] [--parity=PARITY] [--stop=STOP] [--device=DEV]描述: 初始化一个串口设备。UNIT 用于指定要使用的串口设备 (如,0 == COM1); PORT 用于指定端口号; SPEED 用于指定通讯的数率; WORD 为字长; PARITY 为奇偶类型(取 `no', `odd' 和 `even' 之一的值。); STOP 是停止位的长度值; 选项 --device 仅用于命令行模式,用以指定 tty 设备的文件名。默认值是这样的,COM1, 9600, 8N1。 setkey用法: setkey [TO_KEY FROM_KEY]描述: 改变键盘映射关系。把FROM_KEY映射为TO_KEY。这里的键必须是字母, 数字, 和以下特殊键: escape(转义), exclam(!), at(@), numbersign(#), dollar($), parenright ()) , caret(^), ampersand(&), asterisk(*), plus(+), percent(%), minus(-), underscore(_), equal(=), parenleft[(], backspace(退格), tab(制表), bracketleft([), braceleft({), bracketright(]), braceright(}), enter(回车), control(控制), semicolon(;), colon(:), quote('), doublequote("), slash(/), backquote(`), tilde(~), shift(换档), backslash(\), bar(|), comma(,), less(<), period(.), greater(>), question(?), alt(交互), space(空格), capslock(大写), Fx(功能键) 和 delete(删除)。 setup用法: setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]描述: 自动安装GRUB. 这条命令使用更灵活的install命令将GRUB安装到指定设备上。如果给出了映象设备,将在该设备寻找GRUB,否则使用缺省的根设备。根设备可用root指令指定。如果你确认系统的 BIOS 应该支持 LBA 模式, 但是 GRUB 却没有工作于该模式, 则请指定 `--force-lba' 参数。如若你在命令行中已安装了一次 GRUB 可是,你却无法卸载 GRUB 程序所在的分区,请指定 `--stage2' 参数。 terminal用法: terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]描述: 选择一个终端。当指定了多个终端以后, 按任意键方可继续操作。如果控制台和串口都被指定了, 那么你首先在其中按下键盘的终端将被首先选中。如果没有指定任何参数, 那么此命令将显示出当前的终端设置; 参数 --dumb 用以指定一个哑终端, 否则即为 vt100 兼容型; 若使用了 --no-echo 参数, 屏幕上将不会回显输入的字符; 若使用了 --no-edit 参数, the BASH-like 的编辑功能将被禁用; 若使用了 --timeout 参数, 该命令将等待数秒钟(由SECS指定); 可使用 --lines 指定最大的行数; 可使用 --silent 选项关闭消息显示。 terminfo用法: terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ] [--enter-standout-mode=SEQ] [--exit-standout-mode=SEQ]]描述: 指定终端的功能。如果此终端为 vt100 兼容型的,则可指定换码顺序 (即使用 \e 代表 ESC, ^X 代表控制码); 在未给任何参数的情况下,将给出当前配置信息。 testload用法: testload FILE描述: 以多种不同的方式读取文件(由FILE指定)的整个内容,并予以比较,以测试文件系统的代码。输出看起来会有点儿混乱,但是,如果没有错误的话,`i=X, filepos=Y' 里的 X 和 Y 最后必得相等。如果测试即告成功,下一步即可试图载入内核了。 testvbe用法: testvbe MODE描述: 测试所指定(MODE)的 VBE 模式。 tftpserver用法: tftpserver IPADDR描述: 指定 TFTP 服务器的 IP 地址。 timeout用法: timeout SEC描述: 设置在自动启动缺省菜单前所等待的秒数。 title用法: title [NAME ...]描述: 命名菜单项。 unhide用法: unhide PARTITION描述: 通过清除隐藏标志,解除指定分区(PARTITION)的隐藏。 uppermem用法: uppermem KBYTES描述: 强制指定仅有(KBYTES) KB 的上位内存。任何系统的地址变换将被取消。 vbeprobe用法: vbeprobe [MODE]描述: 侦测 VBE 的信息。如果指定了一个模式(MODE 不为空),则仅显示其信息。 |