词条 | GRUB2 |
释义 | Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能: 特征1、模块化设计 不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。 2、支持多体系结构 Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI架构。 3、国际化的支持 Grub 2 可以支持非英语的语言。 4、内存管理 Grub 2 有真正的内存管理系统。 5、脚本语言 Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。 当然,Grub 2正处在开发阶段,因此以上的某些功能可能现阶段还不是很完善。 安装和使用Grub 2的内核是符合multiboot标准的,因此可以在Grub中引导。 1、下载 解压到某个FAT分区的根目录,会生成/boot/grub目录,Grub 2的文件便在该目录下。 2、修改 /boot/grub/grub.cfg 这是Grub 2的配置文件,它的格式不同于menu.lst,以下是一个例子: set timeout=20 set default=0 menuentry "Chainload First Part" { set root=(hd0,1) chainloader +1 } menuentry "Load Linux at Second Part" { set root=(hd0,2) linux /vmlinuz root=/dev/hda2 initrd /initrd } 如果你熟悉Grub,应该可以看明白里面的内容。要注意的是: a、timeout, default等参数用变量来储存 d、菜单项由menuentry定义 c、第1个分区是(hd0,1)而不是(hd0,0) d、当前支持的启动方式是chainload,linux和multiboot 3、在Grub中使用以下的命令进入Grub2 root (hd0,0) kernel /boot/grub/core.img boot (hd0,0)请用存放Grub2的分区的名字来代替 4、进入Grub 2后,在菜单界面下输入 c 便可进入控制界面。 基本命令lsmod 列表当前装载的模块 insmod mod_name 装载模块 rmmod mod_name 卸除模块 help [command] 显示帮助 ls [options] [dir] 列表目录。当不带参数时,显示的是所有的硬盘设备,带参数时,显示的是目录里的子目录和文件。 还有很多其它的命令,全部命令的列表在/boot/grub/command.lst里: boot cat chainloader cmp . configfile export font halt hello help initrd lsmod linux loopback ls lsmod module multiboot play reboot rescue rmmod search set source terminal terminfo [ unset vbeinfo vbetest videotest 可以用help来看具体的用法 注意: a、很大一部分命令都在模块里,如果输入时显示找不到命令,只需要用insmod 装载相应的模块就可以了。 b、你可以定制内核,使所需的命令包在其中。 从代码中编译: 1、用cvs取得源代码 2、当前的Grub2代码中有一个bug,使得启动后不会显示grub.cfg中的菜单,有一个补丁,在: 扩展阅读里 要使用该补丁,请进入grub2的目录,然后: patch -p1 < grub2-menu.diff 这里假设grub2-menu.diff放在grub2目录下 3、./configure 然后 ./make 4、定制内核 ./grub-mkimage -d . -v -o core.img fat pc core.img是内核的名字,fat和pc是加入内核的模块。常用模块有: fat: 支持 fat 文件系统 ext2: 支持 ext2 文件系统 pc: 支持主分区和扩展分区 help: help命令 ls: ls命令 除了当前分区的文件系统的模块外,其它的都可以用insmod在进入grub2后才转载 5、把core.img, boot.img, diskboot.img, *.mod, fs.lst, command.lst 抄到某一分区的 /boot/grub目录下,然后编写配置文件grub.cfg |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。