第三讲grub使用

合集下载

linux开机如何进入grub命令行模式,并通过grub命令进入系统

linux开机如何进入grub命令行模式,并通过grub命令进入系统

linux开机如何进⼊grub命令⾏模式,并通过grub命令进⼊系统今天突然想了解⼀下grub的⼯作模式,于是想着,开机的时候进⼊grub命令⾏模式看看grub都有哪些功能。

⼀、进⼊grub命令⾏1、开机启动后在grub引导弹出需要进⼊的系统界⾯时,按c键直接进⼊命令⾏模式,也可按 e 建进⼊编辑引导参数界⾯,根据提⽰按 ctrl-c 或者 F2 进⼊命令⾏。

2、如果开机时不显⽰引导菜单,⽽是直接进⼊系统,则需要在系统启动前按住shift 键,在菜单中选择发⾏版条⽬后按e键进⼊。

3、根据提⽰按 ctrl-c 或者 F2 进⼊命令⾏。

⼆、从grub命令⾏进⼊系统1. ⾸先利⽤ls命令,找到Ubuntu安装在哪个磁盘分区;⽐如输⼊ls后我的机器列出的磁盘分区信息如下:(hd0),(hd1),(hd1,gpt3),(hd1,gpt2),(hd1,gpt1)查找包含grub.cfg⽂件的分区假定通过 ls (hd1,gpt2)/boot/grub 发现了grub.cfg⽂件,则表明Linux安装在这个分区2. 找到Linux的/boot分区,以及/根分区所在的磁盘位置输⼊ cat (hd0,gpt2)/etc/fstab会输出类似下⾯的信息# <file system> <mount point> <type> <options> <dump> <pass>3. 指定Linux内核,及/所在分区grub> linux /boot/vmlinuz-4.8.0-36-generic ro text root=/dev/sda24. initrd命令指定initrd⽂件grub> initrd /boot/initrd.img-4.8.0-36-generic5. boot引导系统,结束grub> boot。

grub命令及使用详解

grub命令及使用详解

一.全部命令索引:background 设置图形模式下的背景色。

blocklist 输出文件的块清单标记。

boot 引导已加载的操作系统或扇区链式加载器。

bootp 通过BOOTP初试化网络设备。

cat 显示指定文件的内容。

chainloader 加载扇区链式加载器。

clear 清屏幕。

cmp 比较两个文件, 并且报告两者之间的不同的信息。

color 改变菜单的颜色。

configfile 将指定文件作为配置文件予以加载。

debug 打开/关闭除错模式。

default 把NUM 项菜单设为缺省值。

device 声明BIOS驱动器对应的实际物理设备。

dhcp 通过DHCP初试化网络设备。

displayapm 显示APM BIOS 的相关信息。

displaymem 显示GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。

dump 显示诸多文件的内容。

embed 如果设备是个驱动器, 则将Stage 1.5嵌入到主引导扇区之后。

fallback 如果调用当前的菜单项时出现错误,则转移到NUM 项后重试find 在所有分区上查找文件名, 并显示包含该文件的设备。

如果设置了参数--set-root,则在找到第一个匹配后马上停止,并且把该设备设为根。

fontfile 指定中文字体文件,并切换到简体中文显示方式。

foreground 设置图形模式下的前景色。

fstest 切换文件系统的试验模式。

geometry 输出驱动器的相关信息。

gfxmenu 使用FILE 中的图形菜单。

halt 关闭系统。

help 显示内部命令的帮助信息。

hiddenmenu 隐藏菜单。

hide 通过在分区类型上置隐藏标志,隐藏指定分区。

ifconfig 指定IP 地址, 子网掩码, 网关和服务器地址。

不带参数时,将显示当前的网络配置。

impsprobe 通过一些循环操作,侦测出符合Intel 多处理器规范 1.1/1.4 的CPUs,以便于发挥其更好的效能。

grub 使用手册

grub 使用手册

grub 使用手册以下是一个简单的 GRUB 使用手册:一、概述GRUB(Grand Unified Bootloader)是一个用于引导操作系统的启动引导程序。

它允许用户在多个操作系统之间进行选择,并提供了一些配置和诊断工具。

二、使用方法1. 进入 GRUB 菜单在计算机启动时,按下特定的键(通常是 Esc、F1、F2、F10 或 Del)进入GRUB 菜单。

这个菜单会显示可用的操作系统和启动项。

2. 选择操作系统使用上下箭头键选择要启动的操作系统,然后按 Enter 键。

如果您选择了一个带有操作系统的设备(例如硬盘上的某个分区),则会启动该操作系统。

3. 配置 GRUB您可以通过 GRUB 配置文件来定制 GRUB 的行为。

配置文件通常位于`/etc/default/grub` 或 `/etc//` 目录下。

使用文本编辑器打开配置文件,并进行所需的更改。

更改后,运行以下命令以更新 GRUB:```bashsudo update-grub```4. 修复 GRUB如果 GRUB 损坏或无法正常工作,您可以尝试使用以下命令修复它:```bashsudo grub-install /dev/sda```其中 `/dev/sda` 是您的硬盘设备名称。

这将重新安装 GRUB 到硬盘的MBR(主引导记录)中。

5. 退出 GRUB在 GRUB 菜单中,按下 Esc 键或按下任意键即可退出 GRUB 并返回到操作系统或启动菜单。

三、常见问题与解决方法1. 如何解决 GRUB 无法正常引导的问题?如果 GRUB 无法正常引导操作系统,您可以尝试使用系统恢复模式或启动盘来修复引导记录。

在恢复模式下,您可以使用命令行工具来修复 GRUB。

如果您有启动盘,可以使用它来启动计算机并运行修复工具。

一些常见的修复工具有 Boot-Repair、EasyBCD 等。

2. 如何添加新的操作系统到 GRUB?要添加新的操作系统到 GRUB,您需要编辑 GRUB 的配置文件。

grub 语法

grub 语法

grub 语法Grub 语法指的是 GRand Unified Bootloader(简称GRUB)的配置文件语法,它是用于多操作系统启动的引导程序。

在这篇文章中,我们将详细介绍 Grub 语法的各种用法和配置选项。

一、GRUB配置文件的基本结构Grub 的配置文件通常位于/boot/grub 目录下,文件名为grub.cfg。

该配置文件采用一种类似于 Shell 脚本的语法,用于定义启动菜单和相关的选项。

配置文件的基本结构如下:```set root=(hdX,Y)```这一行用于设置 Grub 的根目录,其中 hdX 是硬盘的编号,Y 是分区的编号。

根目录是指 Grub 搜索内核和模块文件的起始位置。

二、定义启动菜单在 Grub 的配置文件中,可以通过 menuentry 关键字定义不同的启动菜单。

每个启动菜单对应一个操作系统或内核镜像。

定义启动菜单的语法如下:```menuentry '操作系统名称' {# 启动选项}```其中,操作系统名称可以是任意字符串,用于标识不同的启动菜单。

三、设置启动选项在每个启动菜单中,可以设置不同的启动选项,如指定内核文件、初始化内存文件系统等。

设置启动选项的语法如下:```linux /boot/vmlinuz 内核参数```其中,/boot/vmlinuz 是内核文件的路径,内核参数是传递给内核的额外参数。

四、设置根文件系统在启动选项中,还可以设置根文件系统。

设置根文件系统的语法如下:```root=/dev/sdXY```其中,/dev/sdXY 是根文件系统所在的分区路径。

五、设置启动命令在启动选项中,可以使用 initrd 命令加载初始化内存文件系统。

设置启动命令的语法如下:```initrd /boot/initrd.img```其中,/boot/initrd.img 是初始化内存文件系统的路径。

六、设置启动模式在启动选项中,可以设置启动模式。

grub 命令行用法

grub 命令行用法

1、用命令行来引导Linux操作系统的步骤通过命令行来引导操作系统的流程,也没有什么难的;无非是把指令手工输入到grub>提示符的后面;在这个过程中,tab键的命令补齐功能就显得很重要了。

如果您不知道有哪些命令,可以输入help;1)进入GRUB的命令行模式 grub>如果开机时,GRUB出现的是grub>,说明你没有/etc/grub/menu.lst ,您需要自己写一个才会GRUB的菜单,让我们来选择进入哪个系统。

如果有GRUB的菜单,您可以按Ctrl+c组合键进入GRUB的命令行模式,会出现grub>提示符;grub>2)获取帮助GRUB的 help只要您在grub>提示符的后面输入help 就能得到GRUB所有的命令提示;grub> helpblocklist FILE bootcat FILE chainloader [--force] FILEclear color NORMAL [HIGHLIGHT]configfile FILE device DRIVE DEVICEdisplayapm displaymemfind FILENAME geometry DRIVE [CYLINDER HEAD SECTOR [halt [--no-apm] help [--all] [PATTERN ...]hide PARTITION initrd FILE [ARG ...]kernel [--no-mem-option] [--type=TYPE] makeactivemap TO_DRIVE FROM_DRIVE md5cryptmodule FILE [ARG ...] modulenounzip FILE [ARG ...]pager [FLAG] partnew PART TYPE START LENparttype PART TYPE quitreboot root [DEVICE [HDBIAS]]rootnoverify [DEVICE [HDBIAS]] serial [--unit=UNIT] [--port=PORT] [-- setkey [TO_KEY FROM_KEY] setup [--prefix=DIR] [--stage2=STAGE2_ terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME--cursor-addresstestvbe MODE unhide PARTITIONuppermem KBYTES vbeprobe [MODE]如果需要得到某个指令的帮助,就在 help 后面空一格,然后输入指令,比如;grub>help kernel3)cat的用法;cat指令是用来查看文件内容的,有时我们不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知,这时,我们就要用到cat (hd[0-n],y)/etc/fstab 来获得这些内容;注意要学会用tab键命令补齐的功能;grub> cat ( 按tab 键会出来hd0或hd1之类的;grub> cat (hd0, 注:输入hd0,然后再按tab键;会出来分区之类的;grub> cat (hd0,6)Possible partitions are:Partition num: 0, Filesystem type unknown, partition type 0x7Partition num: 4, Filesystem type is fat, partition type 0xbPartition num: 5, Filesystem type is reiserfs, partition type 0x83 Partition num: 6, Filesystem type is ext2fs, partition type 0x83 Partition num: 7, Filesystem type unknown, partition type 0x83Partition num: 8, Filesystem type is reiserfs, partition type 0x83 Partition num: 9, Filesystem type unknown, partition type 0x82 grub> cat (hd0,6)/etc/fstab 注:比如我想查看一下 (hd0,6)/etc/fstab的内容就这样输入;LABEL=/ / ext3 defaults 1 1/dev/devpts /dev/pts devpts gid=5,mode=620 0 0/dev/shm /dev/shm tmpfs defaults 0 0/dev/proc /proc proc defaults 0 0/dev/sys /sys sysfs defaults 0 0LABEL=SWAP-hda1 swap swap defaults 0 0/dev/hdc /media/cdrecorder auto pamconsole,exec,noauto,managed 0 0有的弟兄可能会说,我不知道Linux安装在了哪个分区。

GRUB简体汉化版使用——基本概念及界面说明

GRUB简体汉化版使用——基本概念及界面说明

A.基本概念1. GRUB 里的设备命名法则它使用了UNIX对设备的命名方法.比如我们拥有两块硬盘,那么采用这种形式(hdx,y), 这里,x,y, 都是从0开始计数的.所以两块硬盘是 (hd0,y),(hd1,y). 他们位于第一个IDE 接口上. 对 hd0 来说, 请看下图:(注, C: 为第一主分区, 其他分区是扩展分区.由于主分区只能有四个,即 0,1,2,3, 所以第一个扩展分区的编号从 4 开始.)这是硬盘,那么光驱哪? 对,采用 (cd) 就可以了. 网络设备使用 (nd). 我估计,以后支持usb以后,可以使用 (ud). ;-) 欢迎你的参与,我们的开发还在继续.那么,这里就要提及 GRUB 里的一个很首要的概念了, 即 "根(/)", 或者 root. 其实,它就是一个源一样的东西,与草木的"根"相类似. 在GRUB中,其它的文件对象都域于此. 所以,一旦你指定了一个根,后续的操作除非显示地说明,否则都是对"根"而言的.其实在某种意义上来说,和相对/绝对路径有点关联性. ;-) 正如,你所猜到的那样, GRUB 使用 root 命令来指定根设备(通常都是文件系统).B. 命令和参数在古老的 dos 时代,这两个东东是很平常的. 可以认为,命令是程序的名称,参数是告诉程序如何作和怎么作.比如在 Grub 的控制台里:GRUB>help scdrom那么, help 就是命令, 而 scdrom 就是参数了. 它的意思是"给出 scdrom 命令的帮助信息."C. 界面说明首先,引导程序应该简单易用,菜单加鼠标是不错的主意.是的, GRUB 支持自定义的菜单选择功能项;但当前来说,它还不能支持鼠标的点选. 另外,为了更灵活, GRUB 还可以动态地编辑菜单项,这就是它的控制台功能(在控制台里,你可以使用 `ESC`键返回到主选菜单界面).以下三图可供参考:(主菜单)(编辑菜单项)(命令行模式)D. 关于菜单脚本文件与 Windows NT 类似, GRUB 也提供了一个菜单生成文件,我们常称之以脚本.通常情况下,我们把 GRUB 要用到地文件都放到 /boot/grub/ (这里我们省略了对根设备的指定, 所以完整的表示可能是 (hd0,0)/boot/grub ). 而菜单文件的默认名称是menu.lst. 这里有一个样本实例,>> 请点击 <<这里应该说明的是, 菜单文件里的注释是以"#"开头的, 而每一项菜单都必须指定一个标题(title),否则不但不能被显示出来,反而还作为了上一项的命令了.。

GRUB图文教程

GRUB图文教程

GRUB图文教程GRUB图文教程一、忘记root用户密码相信,很多的朋友都遇到过这种情况,长时间的未使用,而导致忘记密码,没有了root 密码,对于LINUX来说,绝对是一种悲剧!。

那么接起来,小枫就来告诉大家忘了密码也是有法的,那就是进入单用户模式,修改GRUB配置文件,在此单用户模式下是不需要用户密码的,它此刻就属你个人所有,自己玩自己还需要密码么,答案当然是否定的!来吧,跟我一起做步骤:1、重启LINUX,在进入系统登录界面前,当你看到一个倒计时时,按任意键,将它停下来,就会出来如下图所示的界面,因为LINUX的版本不同,内容大同小异,但不重要2、看到上面这个界面后,如果你装了几个系统,这儿会出来多个,这儿就像windows 装了多系统一样,按'e' 进入编辑模式,3、这儿咱们用方向键选择第二项,即高亮显示的一项,修改引导文件GRUB,按'e' 进入编辑模式,出现以下界面,并在其光标所在位置加上空格1或空格s或空格single,这三个都可让我们进入单用户模式,我这儿输入的是singin,回车之后,按b进入引导4、在经过短暂的等待以后,不会提醒我们输入用户名以及密码的情况下就已经进入root用户,如图,只要进来了就好办了,设置root用户的密码输入passwd 并回车,输入你的新密码,到此就结束了。

,5、可能很多朋友看到这儿的时候都会发现,既然这么轻易就能免密码登录,那我设置的密码还有何用,那别人岂不是能轻易的进入我的系统,那么小枫接下来告诉大家怎么来设置我们的GRUB密码。

往下面看二、GRUB密码设置描述:设置GRUB可以在两处设置密码,一个是进入GRUB界面时的设置秘密,二一个是进入选择系统界面时设置秘密;1、输入:vi /boot/grub/grub.conf 打开GRUB的配置文件如图注:其中有一项为hiddenmenu隐藏菜单,将其注释后启动时不会有界面,只有一个倒计时;其中有一项为timeout=5设置的为停留时间5秒,修改以下几项:-找到title开头的这一行,在其前面设置password 你的密码,换行lock这是第一把锁(即进入GRUB菜单前),第二把锁,在title下面换行,输入passwd 你的密码换行,这是第二把锁(即进入系统前),你可以选择其中一项,也可两个都设置,2、设置好后,如下,我两个地方都设置了密码保存退出,当你重启后再想进入GRUB菜单中或进入你选择的系统时就需要密码了,这样就不用担心别人能随便进入你的GRUB菜单或系统了,3、玩到这里,我想大家不得不再考虑一个新的问题,我们虽然设置了密码,但是这个文件中的密码黑底白字的写着咱们保密的,开关,等于把咱们家保险箱的钥匙放在了电视机上,太不保险了,因此,引发了一个加密的问题;三、密码加密描述:把咱们的密码通过算法让它变成一串字符,LINUX中常用的是md5的方式加密(温馨提示:我们会在下面会用到“复制”这项功能,如果没有装,那么就在终端中执行或桌面方面中去执行)1、输入:grub加车,如图2、这儿我们可以输入help查看帮助,其中我们会看到有一项md5crypt,输入它并回车. Linux会要求我们输入密码,此密码就是我们要加密的字符串,输入要加密的字符串,回车后,它会帮我们计算出加密后的密码,复制这一段。

Grub引导多系统启动图文讲解

Grub引导多系统启动图文讲解

RHEL开机时的先后顺序BIOS —> MBR —> Kernel —> init1、当电脑一打开电源时电脑就会进入BIOS(BIOS的工作主要是检测一些硬件设备);2、检测完后会进入MBR也就是boot loader(MBR位于硬盘的第一个扇区总共512bytes,其中前446bytes里面的编码是在选择引导分区也就是决定要由哪个分区来引导);3、载入系统的Kernel(核心),在Kernel里主要是载入电脑设备的驱动程序,以便可以控制电脑上的设备,并且以只读方式来挂载根目录,也就是一开始只能读取到根目录所对应的那个分区,所以/etc、/bin、/sbin、/dev、/lib这五个目录必须同根目录在一个分区中;4、最后启动init这个程序,所以init这个程序的进程编号为1,是Linux中第一个执行的程序;init这个程序会根据Run level来执行以下这些程序:·/etc/rc.d/rc.sysinit;·/etc/rc.d/rc 和etc/rc.d/rc?.d/·/etc/rc.d/rc.local·如果有适当的图形界面管理程序二、BIOS初始化时主要的三个任务BIOS(B asic I nput/O utput S ystem)1、电脑周边设备的检测,加电自检POST (Power on self test);2、BIOS会选择要由哪一个设备来开机,例如:软盘启动、光盘启动、网络启动、最常见的从硬盘启动;3、选择好由哪个设备开机后,就开始读取这个设备的MBR 引导扇区;三、介绍Boot Loader中的主要工作1、Boot Loader可以安装在两个地方:·安装在硬盘的MBR中;·当有时候MBR中被其他开机管理程序占用就可以将Boot Loader 安装在硬盘中的其中一个分区的引导扇区上,;2、Boot Loader的程序码分为两个阶段:(1)Boot Loader第一阶段的程序码非常小,只有446bytes,可以存入在MBR或是某一个分区的引导扇区里,(2)Boot Loader第一阶段的程序码是从boot 分区来载入的,就是说Boot Loader 第二阶段程序码存放在/boot 这个分区中;3、下面来看三个Boot Loader 的开机流程范例,如在一块硬盘中安装了两个系统分别为:windows 2003 和Red hat linux当电脑开机后,会先载入MBR通过第一阶段程序码来载入第二阶段程序码,进入GRUB开机菜单这里选择哪个系统就会载入相应的核心;splashimage=(hd0,0)/grub/splash.xpm.gz开机时使用的背景图案,这里的(hd0,0)意思为(硬盘编号,分区编号)hiddenmenu隐藏开机的菜单(2)用于区分多个系统的设定,如果这台主机中还安装了其它系统并设定了多重启动,在这里还可以看到其它系统的设定;title Red Hat Enterprise Linux AS (2.6.9-11.EL)在GRUB开机菜单中所显示的开机的系统名称root (hd0,0)指定下面的档案位于哪个目录中,这个hd0,0 同样指的是用于指引导的目录,通常指/boot目录kernel /vmlinuz-2.6.9-11.EL ro root=LABEL=/ rhgb quiet设定kernel镜像的存放位置,这个位置相对于上面root 那一行所指定的位置的相对位置,ro root=LABEL=/ 是设定/在根目录的位置,ro是只读的意思,也就是以只读方式挂载根目录,也可以使用root=/dev/hda2 类似于这种形式来挂载根目录;rhgb 意思是以图形界面显示开机过程,去掉则以文字界面显示;quiet 意思是设定开机过程中不显示错误信息;initrd /initrd-2.6.9-11.EL.img 将这个指定的文件载入到内存中,这个文件里都是存放一些驱动程序;3、如果我们修改完grub.conf 这个配置文件后,设定为立即生效;4、另外,如果硬盘上的MBR被清除掉了,可使用下面的指令来重新安装boot loader 到MBR中:/sbin/grub-install /dev/hda5、介绍进入GRUB的开机管理程式可以做哪些动作(开机前改Kernel的参数)(1)开机后在进入GRUB界面后,先选择要使用的系统(这里选择Linux)(2)按下a键,可以在开机修改Kernel的参数,也就是可以传一个参数给Kernel;这时可以看到下面这个界面(3)上图中root=LABEL=/ 这部分不可以动,将后面的都去掉后,先输入一个空格再输入一个1,如下图:这个1 就是附加的一个参数,表示要进入单用户模式,不需要输入root密码就可以以root 身份登录;(4)当进入到#提示字元时,就可以设定root 密码了。

Grub命令和使用详解

Grub命令和使用详解

Grub命令和使用详解从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO成为了默认的启动装载程序。

相信LILO对于大家来说都是很熟悉的。

这次Red Hat Linux用GRUB代替LILO,可见GRUB大有过人之处。

不过,相对于LILO来说,大家对GRUB还是要陌生一些。

本文将对GRUB的基本情况、术语、接口、命令以及配置文件做个介绍,希望对大家有所帮助。

一、GRUB的概述在Red Hat linux装载一个系统前,它必须由一个引导装载程序(boot loader,启动管理程序)中的特定指令告诉它去引导系统。

这个程序一般是位于系统的主硬盘驱动器或是其他知道如何去开始linux内核的媒介驱动器上。

如果说一个x86系统只安装了Red Hat Linux而且只有一个版本的linux内核,那么通过引导装载程序开始Red Hat Linux的特定过程就不重要了。

Red Hat Linux安装程序允许用户快速方便地配置引导装载程序存放在主硬盘驱动的主引导记录中来引导操作系统。

然而,为了能从多个linux内核或其他操作系统引导,那么就很有必要了解Red hat linux用于提供必要的引导选项的方法,以及理解引导的过程与如何去改变。

本文是讨论GRUB,它是Red Hat Linux用来在x86系统上装载操作系统的默认方法。

同时,本文也将详细介绍用于控制引导过程的各种命令和配置选项。

GRUB的定义GNU GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。

它允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。

这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)。

x86的引导过程当一个x86机器启动后,系统BIOS开始检测系统参数,如内存的大小、日期和时间、磁盘设备、以及这些磁盘设备用于引导的顺序等。

GRUB使用方法

GRUB使用方法

GRUB使用方法目录1、GRUB 基础2、命名习惯3、安装 GRUB4、GRUB 接口5、GRUB 常用命令6、保护 GRUB 设置7、GRUB 和 stage 文件8、GRUB 常见错误信息9、制作 GRUB 引导软盘10、使用 GRUB 通过网络引导操作系统11、把配置文件嵌入到 GRUB 中12、总结13、个人建议一、GRUB 基础1.1 GRUB 简介“boot loader”是计算机启动后第一个运行的软件。

它负责加载一个操作系统的内核,并把控制权交给内核。

内核则负责剩下的初始过程。

GRUB 一个很重要的特色就是灵活性;GRUB 可以识别文件系统和二进制格式的内核,所以你可以加载任何操作系统,而不需要记录内核在磁盘上的物理位置。

1.2 GRUB 的现状我不打算介绍 GRUB 的发展历史,有兴趣的朋友可以自己到官方站点或者执行 info grub 自行获取信息。

我们着眼于 GRUB 当前的现状。

目前 GRUB 分成 GRUB legacy 和 GRUB 2。

版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称为 GRUB 2。

目前GRUB Legacy 已经停止开发了,只是出于一个 bug fix 的状态,不再增加新的功能了,所有的开发都转移到 GURB 2 之上了。

1.3 GRUB Legacy 和 GRUB 2GRUB 2 是源自于一个名为 PUPA 的项目,目的是建立下一代的 boot loader。

GRUB 2 几乎是从零开始开始开发的,它和 GRUB Legacy 不同的地方有很多,例如支持 scripts、国际化语言、动态加载模块、带有 resuce 模式等等,这些都是 GRUB Legacy 所没有的。

下面是GRUB2 新特性的介绍:(原文请参/software/grub/grub-2.en.html )a)支持脚本语言,例如条件判断,循环、变量和函数b)图形接口c)在运行时动态加载需要的模块,而不是在 biuld 的时候指定加入那些模块(静态)d)可以移植到不同的架构上e)国际化语言。

grub_使用总结

grub_使用总结

GRUB使用总结1. 首先要了解的几个概念1.1 启动管理器启动管理器是存储在磁盘开始扇区中的一段程序,例如,硬盘的MBR(Master Boot Record),在系统完成启动测试后,如果系统是从MBR启动,则BIOS(Basic Input/Output System)将控制传送给MBR。

然后存储在MBR中的这段程序将运行。

这段程序被称为启动管理器。

它的任务就是将控制传送给操作系统,完成启动过程。

有许多可用的启动管理器,包括GRUB (Grand Unified Boot Loader),Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等.1.2 什么是GRUB?grub 是一个多重启动管理器。

grub是GRand Unified Bootloader的缩写,它可以在多个操作系统共存时选择引导哪个系统。

它可以引导的操作系统包括: Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000,WinXP。

它可以载入操作系统的内核和初始化操作系统(如Linux,FreeBSD),或者把引导权交给操作系统(如 Windows 98)来完成引导。

1.3 GRUB的特点特别适用于linux与其它操作系统共存情况。

支持大硬盘 现在大多数Linux发行版本的lilo都有同样的一个问题:根分区(/boot 分区)不能分在超过1024柱面的地方,一般是在8.4G左右的地方,否则lilo不能安装,或者安装后不能正确引导系统。

而grub就不会出现这种情况,只要安装时你的大硬盘是在LBA 模式下,grub就可以引导根分区在 8G以外的操作系统。

支持开机画面 grub支持在引导开机的同时显示一个开机画面。

对于玩家来说,这样可以制作自己的个性化开机画面;对于PC厂商,这样可以在开机时显示电脑的一些信息和厂商的标志等。

grub命令及使用详解

grub命令及使用详解

一.全部命令索引:设置图形模式下的背景色。

输出文件的块清单标记。

引导已加载的操作系统或扇区链式加载器。

通过BOOTP初试化网络设备。

显示指定文件的内容。

加载扇区链式加载器。

清屏幕。

比较两个文件, 并且报告两者之间的不同的信息。

改变菜单的颜色。

将指定文件作为配置文件予以加载。

打开/关闭除错模式。

把NUM 项菜单设为缺省值。

声明BIOS驱动器对应的实际物理设备。

通过DHCP初试化网络设备。

显示APM BIOS 的相关信息。

显示GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。

显示诸多文件的内容。

如果设备是个驱动器, 则将Stage 1.5嵌入到主引导扇区之后。

如果调用当前的菜单项时出现错误,则转移到NUM 项后重试在所有分区上查找文件名, 并显示包含该文件的设备。

如果设置了参数--set-root,则在找到第一个匹配后马上停止,并且把该设备设为根。

指定中文字体文件,并切换到简体中文显示方式。

设置图形模式下的前景色。

切换文件系统的试验模式。

输出驱动器的相关信息。

使用FILE 中的图形菜单。

关闭系统。

显示内部命令的帮助信息。

隐藏菜单。

通过在分区类型上置隐藏标志,隐藏指定分区。

指定IP 地址, 子网掩码, 网关和服务器地址。

不带参数时,将显示当前的网络配置。

通过一些循环操作,侦测出符合Intel 多处理器规范 1.1/1.4的CPUs,以便于发挥其更好的效能。

加载Linux格式的初始化虚拟盘, 并设置必要的参数。

安装STAGE1到指定设备上,安装加载STAGE2需要的块列表到STAGE2上。

侦测指定设备的I/O 端口号。

尝试载入主引导影像文件。

如果用户未被认证,则终止命令的执行。

将root 设备置为活动分区。

对设备进行映射。

产生一个MD5 格式的密码。

对多重启动影像, 加载启动模块文件(不处理该文件的内容,用户必须自己确定核心的要求)。

与'module' 类似, 但是自动禁用了解压缩。

grub命令以及启动详解

grub命令以及启动详解

Grub详解应樱家冢、Bluedata以及其他兄弟的要求,这里谈一谈自己在配置Grub当中积累的点滴,不存在什么高深的使用技巧——^_^,我自己也没有掌握,实际上就是我们常用的功能整理了一下。

如有错误和疑问,请大家指教!因为时间不够用,所以才这么迟的出来,希望两位兄弟谅解,同时感谢网络上曾经为了 Linux 的事业不停奋斗而无私贡献的人们——因为本文参考了他们的经验!1、一个GRUB配置文件2、解读grub.conf文件3、配置grub4、GRUB的交互性5、常见grub除错方法的思路1 一个GRUB配置文件基于本例的分区如下:hda 15Ghda1 8G / RED HAT Linux8.0hda5 7G /homehdc 20Ghdc1 6.4G WinXPhdc5 6.4Ghdc6 6.4Ghdc7 6.4G#fdisk -l# Disk /dev/hdc: 255 heads, 63 sectors, 2434 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System/dev/hdc1 * 1 894 7181023+ b Win95 FAT32/dev/hdc2 895 2434 12370050 f Win95 Ext'd (LBA)/dev/hdc5 895 1787 7172991 b Win95 FAT32/dev/hdc6 1788 2434 5196996 b Win95 FAT32Disk /dev/hda: 255 heads, 63 sectors, 1867 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System/dev/hda1 * 1 1020 8193118+ 83 Linux/dev/hda2 1021 1802 6281415 83 Linux/dev/hda3 1803 1867 522112+ 82 Linux swapgrub.conf,这个文件位于;/boot/grub/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You do not have a /boot partition. This means that# all kernel and initrd paths are relative to /, eg.# root (hd0,0)# kernel /boot/vmlinuz-version ro root=/dev/hda1# initrd /boot/initrd-version.img#boot=/dev/hdadefault=0timeout=3splashimage=(hd0,0)/boot/grub/splash.xpm.gztitle Red Hat Linux (2.4.18-14)root (hd0,0)kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/initrd /boot/initrd-2.4.18-14.imgtitle Microsoft Windows XProot (hd1,0)chainloader (hd1,0)+1makeactivemap (hd0) (hd1)map (hd1) (hd0)boot2 解读grub.conf文件我们将来看看grub.conf文件内语句,(注:...)内的东西是我们的解读内容.# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You do not have a /boot partition. This means that# all kernel and initrd paths are relative to /, eg.# root (hd0,0)# kernel /boot/vmlinuz-version ro root=/dev/hda1# initrd /boot/initrd-version.img#boot=/dev/hda (注:以上以符号井"#"开头的行表示被注释掉,没有任何意义) default=0 (注:默认的操作系统就是由default控制的。

GRUB使用说明(三)

GRUB使用说明(三)

三、GRUB的接口GRUB主要有三个强大的接口,它们提供了不同级别的功能。

每个接口都允许用户引导操作系统,甚至可以在处于GRUB环境下的接口之间移动。

菜单接口如果GRUB是由Red Hat Linux的安装程序自动配置的,那么它默认的显示接口是菜单接口。

在系统第一次启动后,一个操作系统或内核的菜单(事先已经用它们各自的引导命令配置好)将一个按名称排列的列表保存在这个接口中。

使用箭头键选择一个非默认选项,然后按回车键来引导它。

如果不是这样,一个记时器可能已经被设置,那么GRUB将启动装载那个默认的选项。

在菜单接口上,按[e]键,对高亮菜单项中的命令进行编辑。

按[c]键载入一个命令行接口。

菜单项目编辑器接口在引导装载菜单中按[e]键,就进入了菜单项目编辑器。

用于项目的GRUB命令就显示在这里。

在引导操作系统前,用户可以更改这些命令,添加(加在当前行后面,用[o]键;加在当前行前,用[0]),编辑(用[e]键),删除(用[d]键)。

在所有的改变都完成后,用[b]键来执行这些命令,并引导操作系统。

[Esc]键来放弃这些修改,将重新入标准的菜单接口。

[c]键用来载入命令行接口。

命令行接口命令行是GRUB最基本的接口,但它也是被授予了最大控制能力的接口。

在命令行接口中,输入任何相关的GRUB命令,再回车就可以执行了。

这个接口的功能有点类似于shell 的功能,比如[Tab]键完成,前后文提示,输入命令时的[Ctrl]键组合,如[Ctrl]-[a]移到行的开头,[Ctrl]-[e]移到行的结尾。

另外,箭头键,[Home],[End],[Delete]键与bash shell 中一样用法。

接口使用的顺序当GRUB环境开始载入第二步引导装载程序时,它寻找自己的配置文件。

当找到配置文件后,它使用这个配置文件建立一个要载入的操作系统的菜单列表,然后显示引导菜单接口。

如果配置文件没有被找到,或者如果配置文件不能读取,那么GRUB将载入命令行接口,以允许用户手工输入必要的命令来启动操作系统。

grub参数

grub参数

Grub参数什么是Grub?Grub(GNU GRand Unified Bootloader)是一个开源的多操作系统引导加载程序。

它是Linux系统中最常用的引导加载程序之一,用于在计算机上启动操作系统。

Grub具有强大的功能和灵活性,可以轻松地管理多个操作系统的启动。

它允许用户选择要启动的操作系统,并提供了各种参数和选项来自定义引导过程。

Grub参数的作用Grub参数是在启动时传递给Grub引导加载程序的配置选项。

通过使用这些参数,用户可以更改引导过程中的各种设置,并影响操作系统的启动方式。

Grub参数可以用于以下目的:1.启动特定内核:通过指定内核映像文件和相应的initrd(initial RAMdisk)文件,可以选择要启动的特定内核版本。

2.修改默认操作系统:通过设置默认项,可以选择在引导时自动选择哪个操作系统启动。

3.设置超时时间:可以设置一个时间段,在该时间段内如果用户未进行任何操作,则自动选择默认操作系统进行启动。

4.修改命令行选项:可以传递额外的命令行选项给内核,以便对其行为进行更精细的控制。

5.加载额外模块:可以加载额外的模块来提供对特定硬件或文件系统的支持。

6.设置图形界面:可以选择使用文本模式还是图形模式进行引导。

常用的Grub参数以下是一些常用的Grub参数及其作用:1.root=:指定根文件系统所在的设备。

例如,root=/dev/sda1表示根文件系统位于第一个硬盘的第一个分区。

2.kernel=:指定内核映像文件的路径。

例如,kernel=/boot/vmlinuz-5.4.0-81-generic指定要启动的内核版本。

3.initrd=:指定initrd文件的路径。

initrd是一个临时文件系统,用于在内核启动之前加载必要的驱动程序和模块。

4.quiet:禁止显示启动过程中的冗长输出信息,使引导过程更加简洁。

5.splash:启用图形界面引导。

需要在Grub配置文件中设置后才能生效。

grub教程

grub教程

一. GRUB的技术特点:1. 支持多可执行文件格式GRUB支持各种a.out格式和ELF格式。

2. 支持不符合Multiboot标准的内核GRUB能够直接支持多种并不符合Multiboot标准的自由操作系统内核(主要是FreeBSD,NetBSD,OpenBSD和linux)。

也能通过chainload间接引导非开放的其他操作系统。

3. 支持操作系统模块装载。

4. 提供文本格式可手工修改的配置文件。

5. 菜单界面6. 灵活的命令行界面7. 多文件系统识别能够透明地识别多种文件系统,现在能够识别的文件系统有BSD FFS,DOS FA T16,FA T32和Linux ext2fs.这个范围仍然在扩展。

8. 支持压缩文件的解压缩。

能够解压缩被gzip压缩的文件,并且这个识别和解压过程是自动的和对用户透明的,这个功能大大地减少了文件的大小,减少了load的时间,这个功能对于软盘上的系统尤其有用。

可能有些内核模块在装载时要求是压缩状态,这时解压此模块可能会画蛇添足,所以GRUB提供了另一不进行解压缩的模块装载命令。

9. 可以读取任何已安装的设备上的数据支持读取软盘,硬盘上的数据,不依赖于根设备上任何的设置。

10. 和磁盘定位的表示方法无关。

11. 能够使用BIOS所检测到的所有RAM.GRUB通常能够找到PC兼容机上的全部RAM,它采用一种先进的BIOS查询技术来找到所有的内存空间。

12. 支持硬盘的LBA模式GRUB通过支持LBA模式,突破1024柱面的限制,能够访问8GB以外的全部硬盘空间。

13. 支持网络虽然GRUB是一个基于磁盘的引导程序,但是它也支持网络功能,你可以通过TFTP 协议从网络上得到操作系统映象文件并引导。

GRUB的后继版本可能会包括一个内置的可编程语言来支持各种内核的引导参数,这还只是一个操作系统引导器吗?;),并且计划加入对非PC体系结构的支持。

下载并安装GRUB下载GRUB包你可以到<ftp:///gnu/grub/grub-0.5.94.tar.gz>;得到GRUB,然后:zcat grub-0.5.94.tar.gz | tar xvf -会生成一个目录grub-0.5.94,再:cd grub-0.5.94./configuremake install这样GRUB就安装好了,下面你需要在你的硬盘或者软盘引导区上安装GRUB引导代码。

GRUB入门

GRUB入门

GRUB入门教程==============================目录:1. 教程提示2. GRUB 基础3. 安装GRUB4. 使用GRUB5. GRUB 内幕6. 总结==============================第一章教程提示我应该学习这门教程吗?本教程向您显示如何安装和使用GRUB (Grand Unified Boot Loader)。

就像LILO 一样,GRUB 允许引导Linux 系统,它负责装入和引导内核。

但与LILO 不同,GRUB 的功能非常多,更易于使用,更可靠和灵活,而且非常小巧。

如果已经有些熟悉LILO,并了解了磁盘分区的基本知识,那么您就掌握了学习本教程应具备的预备知识。

通过学习本教程和安装GRUB 之后,您将改进Linux 系统的可靠性和可用性。

如果只是想尝试GRUB,可以学习本教程的前半部分,并制作GRUB 引导盘,然后练习使用它来引导系统。

这样做以后,您将学会在紧急情况下如何使用GRUB 来引导系统。

但是,如果想更深入地体验GRUB,可以学完整个教程,它将为您演示如何将GRUB 设置成缺省引导装入器。

第二章GRUB 基础什么是GRUB?GRUB 是引导装入器-- 它负责装入内核并引导Linux 系统。

GRUB 还可以引导其它操作系统,如FreeBSD、NetBSD、OpenBSD、GNU HURD 和DOS,以及Windows 95、98、NT 和2000。

尽管引导操作系统看上去是件平凡且琐碎的任务,但它实际上很重要。

如果引导装入器不能很好地完成工作或者不具有弹性,那么就可能锁住系统,而无法引导计算机。

另外,好的引导装入器可以给您灵活性,让您可以在计算机上安装多个操作系统,而不必处理不必要的麻烦。

GRUB 很棒幸好,GRUB 是一个很棒的引导装入器。

它有许多功能,可以使引导过程变得非常可靠。

例如,它可以直接从FAT、minix、FFS、ext2 或ReiserFS 分区读取Linux 内核。

grub 命令

grub 命令

grub 命令GRUB 命令GRUB(GNU GRand Unified Bootloader)是一种开源的多操作系统引导程序,广泛用于多操作系统环境下的引导过程。

GRUB 允许用户选择要启动的操作系统,以及在启动期间执行各种系统管理任务。

本文将介绍一些常用的 GRUB 命令,以便用户更好地理解和使用这个强大的引导程序。

1. 基本语法GRUB 命令的基本语法如下:```command [option(s)] [argument(s)]```其中,command 是要执行的GRUB 命令,option 是可选的选项,argument 是命令的参数。

2. 常用命令2.1 boot这个命令用于启动选定的操作系统。

它的基本语法如下:```boot```使用该命令会启动默认操作系统,即 GRUB 配置文件中设置的默认操作系统。

如果想要启动其他操作系统,可以使用下面的方式:```boot <menu_entry>```其中,`<menu_entry>` 是 GRUB 菜单中操作系统的编号或标签。

2.2 findfind 命令可以在文件系统中搜索指定文件。

它的基本语法如下:```find <filename>```这个命令会在 GRUB 的文件系统中搜索指定的文件名,并返回文件路径。

例如,要查找名为 vmlinuz 的文件,可以输入以下命令:```find vmlinuz```2.3 rootroot 命令用于设置根文件系统。

它的基本语法如下:```root <partition>```其中,`<partition>` 是指向操作系统根目录的分区路径。

例如,假设 GRUB 的设备为 (hd0,1),要设置根文件系统为该设备上的第一个分区,可以执行以下命令:```root (hd0,1)```2.4 kernelkernel 命令用于指定要加载的内核文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三讲grub使用1.4 如何使用grub4dos对于多数没有或很少接触过linux的windows用户来说,刚开始使用grub时离不开菜单。

也就是说,使用grub前,我们要准备menu.lst文件。

先讲一些最为常用的命令help用来显示其它命令的用法,例子:help rootdefault指定缺省的菜单项,由0开始算起,例子: default 0 该命令必须在第一个title之前指定timeout缺省的等待时间,如果在指定的时间(以秒为单位)不按任何键,则会启动缺省的菜单项,例子:timeout 10该命令必须在第一个title之前指定root用来指定根设备,例子: root (hd0,0)rootnoverify该命令也可以用来指定根设备。

root在设置根设备前,先测试一下该分区的文件系统是否可以识别,而rootnoverify则省略这一测试。

rootnoverify (hd0,0)chainloader把启动扇区的内容装入内存,参数+1指的是把分区的第一个扇区,例子: chainloader +1 boot启动操作系统。

在使用该命令前,必须用kernel或者chainloader把系统内核或者启动扇区/启动文件装入内存。

例子: boot在配置文件中不需要使用这个命令。

这是因为GRUB在执行了菜单项的所有命令后,会自动加上boot。

该命令一般在命令行界面里使用。

Grub4dos高级功能虚拟磁盘GRUB4DOS中的虚拟磁盘是由map命令实现的。

map命令的功能介绍如下:磁盘交换map命令在GRUB Legacy中的也存在,它是用作磁盘交换。

比如说,你有两只硬盘,但两只硬盘上均有可启动的系统。

在第一只硬盘上启动时,不需要特殊的处理,直接用chainloader装载启动扇区就可以了。

不过,如果要从第二只硬盘上启动,那么单单用chainloader是不够的,这是因为很多操作系统都缺省地从第一只硬盘上装载启动所需的文件,如果文件不在其上,系统便不能顺利地读取,从而导致启动失败。

一个原始的解决方法是在BIOS中修改启动顺序,把需要启动的硬盘放到最前面。

那么,重启计算机后该硬盘便会成为第一只硬盘,从而可以正常启动。

GRUB中的map命令便是为了解决这个问题而设计的,它可以在运行时交换磁盘,而无需修改BIOS。

例如:title Boot First Partition on Second Disk map (hd0) (hd1) map (hd1) (hd0) chainloader (hd1,0)+1 boot在该例子中,使用了map命令实现了(hd0)和(hd1)的交换。

要注意的是,交换是在命令boot后才生效的。

因此在chainloader命令中,读取的仍然是第二只硬盘。

建立虚拟磁盘在GRUB4DOS中,大大地扩展了map命令的用法。

利用该命令可以建立虚拟磁盘,例子:把(hd0,0)根目录下的aa.dsk文件映射为第二只硬盘,并且使用原来硬盘上的系统启动: title Create Virtual Disk map (hd0,0)/aa.dsk (hd1) root (hd0,0) chainloader +1 boot把(hd0,0)根目录下的aa.dsk文件映射为第一只硬盘,原来的第一只映射为第二只硬盘,并且从aa.dsk里虚拟出来的磁盘中启动: title Boot From Virtual Disk map (hd0,0)/aa.dsk (hd0) map (hd0) (hd1) map --hook root (hd0,0) chainloader +1 boot 在上面提到,map命令的映射不是马上起作用的。

但是,要从虚拟磁盘中启动,就必须从中读取数据,因此需要使映射提前起效。

在以上的例子中,map --hook的作用便是使前面map命令指定的映射立刻生效。

把(hd0,0)根目录下的aa.img文件映射为第一只虚拟软盘,并从中启动: title Boot From Virtual Floppy map (hd0,0)/aa.img (fd0) map --hook root (fd0) chainloader +1 boot 使用这种方式进行映射后,虚拟磁盘的内容和影像文件的内容是同步的,也就是说,如果你修改了虚拟磁盘的内容,影像文件也同样被更新。

如果你重启了机器,该修改的效果仍然存在。

在使用这种方式进行映射时,影像文件在磁盘上的存放必须是连续的。

GRUB4DOS中建立的虚拟磁盘,包括以下所说的内存盘,都是通过截取INT 13来实现的。

因此在启动了操作系统后,如果该系统是通过INT 13来访问磁盘的,例如各类的DOS,那么在进入系统后仍然可以访问虚拟盘。

如果系统是采用其它方式来访问磁盘,例如Linux,各类Unix和Windows NT系列的操作系统,那么在进入系统后便不能访问虚拟盘。

Windows 9X系列的操作系统比较特殊,它通常是使用保护模式的驱动来访问磁盘,但当它找不到合适的驱动时,会依旧使用INT 13来访问磁盘,因此,在Windows 9X下也可以访问虚拟磁盘。

建立虚拟内存盘用map也可以建立虚拟内存盘,其用法和以上的很相似,你只需要在map建立虚拟盘的命令中加上--mem参数就行了。

例子:把(hd0,0)根目录下的aa.dsk文件映射为第一只硬盘,原来的第一只映射为第二只硬盘,并且从aa.dsk里虚拟出来的磁盘中启动: title Boot From Virtual Disk map --mem (hd0,0)/aa.dsk (hd0) map (hd0) (hd1) map --hook root (hd0,0) chainloader +1 boot把(hd0,0)根目录下的aa.img文件映射为第一只虚拟软盘,并从中启动: title Boot From Virtual Floppy map --mem (hd0,0)/aa.img (fd0) map --hook root (fd0) chainloader +1 boot使用了该映射方式,影像文件的内容是装载到内存后才进行映射。

这意味着,你必须有足够的内存来存放影像和启动系统。

而且,虚拟磁盘和影像文件是分离的,对虚拟磁盘所作的修改不会被更新到影像文件中。

在这种映射方式中,影像文件在磁盘上的存放不需要是连续的。

自动生成MBR影像文件有两种类型。

一种是文件系统影像,它里面只包含某一个文件系统的数据。

另一种是磁盘影像,它里面包含了类似于物理硬盘的结构,也就是,影像以MBR开始,然后才是文件系统的数据。

对于虚拟内存盘,其结构是类似于真实硬盘的,因此在使用map命令进行映射时,应该使用磁盘影像。

GRUB4DOS考虑到了这个问题。

为了让用户使用更加方便,GRUB4DOS作了如下的改进:当把磁盘影像读入内存时,程序会检测其结构,如果发现是文件系统影像,那么在它前面自动生成MBR,把它变为磁盘影像。

因此,无论用户选择使用文件系统影像还是磁盘影像,装载到内存后都会变成正确的格式。

自动生成MBR还有一个应用,就是直接从硬盘上的装载分区,从而生成虚拟磁盘。

例如:title Load Partition From Disk map --mem (hd0,0)+1 (hd0) map (hd0) (hd1) map --hook root (hd0,0) chainloader +1 boot该菜单的功能是把硬盘上第一个分区的内容装载到内存,并且自动在其前面加上MBR而生成虚拟磁盘。

然后,把该虚拟磁盘映射为第一只硬盘,原来的硬盘映射为第二只硬盘。

最后,从虚拟磁盘中启动。

在使用该菜单启动后,系统分区的内容和好像和原来一样,但这时实际是使用在内存里的虚拟磁盘。

对分区的修改在重启机器后便会消失。

该菜单是把整个分区的内容装载到内存,要确定内存足够大,否则命令不会成功。

在map命令中,(hd0,0)+1是指整个(hd0,0)分区,而不是(hd0,0)的第一个扇区。

这种表示只是在map命令中适用,在其它的地方,(hd0,0)+1 还是原来的意义。

虚拟设备(md)在GRUB4DOS中,你可以用设备(md)来访问整个内存,就和用(nd)访问网络设备,用(cd)来访问光盘类似。

GRUB4DOS也扩展了cat命令,它可以用--hex来以十六进制输出,也可以用--locate=STRING来在文件中搜索字符串。

例子:cat --hex (hd0)+1 以十六进制形式显示第一只硬盘的MBR。

cat --hex (hd0,0)+1 以十六进制形式显示第一只硬盘第一个分区的启动扇区cat --hex (md)+2 以十六进制形式显示内存开始1K的内容,这里其实是中断向量表。

cat --hex (md)0x800+1 以十六进制形式显示内存从0x800 * 512 = 1M 开始512字节的内容,也就是从扩展内存开始的512字节。

虚拟设备(rd)用虚拟设备(md)可以访问从地址0开始的物理内存,而使用(rd)则可以访问从某一地址开始的内存。

map --rd-base=ADDR 用来设置(rd)内存设备的开始地址(以字节为单位)。

map --rd-size=SIZE 用来设置(rd)内存设备的长度(以字节为单位)。

当把grub.exe作为linux内核启动时,可以用指定初始盘。

进入grub后,(rd)设备的开始地址和长度自动设置为初始盘的地址和长度。

因此,可以在grub中用(rd)设备来访问初始盘。

map --ram-drive=RD用来设定访问(rd)内存设备的BIOS设备名。

缺省值是0x7F,表示(rd)对应的虚拟盘是软盘设备。

如果(rd)对应的虚拟盘是硬盘设备,那么需要设置RD, 使得 0x80< RD < 0xFF。

map的其他参数* --status用于显示当前的磁盘映射。

map --status* --floppies=M, --harddrives=N指定软盘/硬盘的数目。

map --harddrvies=2 使用该命令后,本地硬盘的数目设为2。

* --memdisk-raw=RAWRAW取值0或1(缺省是1)。

RAW=0时,使用int15/ah=87h读扩展内存。

RAW=1时,使用内部的函数来读扩展内存。

map --memdisk-raw=0* --safe-mbr-hook=SMH ,--int13-scheme=SCH这两个参数是为了在Windows 9X下能正常使用虚拟盘而设的。

SMH取值0或1(缺省是1),当你在Windows 9X下使用虚拟盘时出现问题时,可以试试使用以下的命令: map --safe-mbr-hook=0SCH取值也是0或1(缺省是1),当你在Windows 9X下使用虚拟盘时出现问题时,也可以试试使用以下的命令: map --int13-scheme=0* --read-only使用了该参数后,当前进行映射的磁盘被设为只读模式。

相关文档
最新文档