您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > GRUB2-中文手册-word-版
GNUGRUB中文手册修订次数:1不保证含义准确仅供参考。若发现有谬误之处可发送邮件到:grub2_cn_manual@126.com邮件主题必须以grub2:开始,否则系统不接收。针对grub版本v1.99info手册翻译,并且添加插图和注解。Permissionisgrantedtocopy,distributeand/ormodifythisdocumentunderthetermsoftheGNUFreeDocumentationLicense,Version1.2oranylaterversionpublishedbytheFreeSoftwareFoundation;withnoInvariantSections.译者:三寸断梁1grub前言搭建GRUB2LINUX实验环境。由于GRUB是启动加载器,因此你修改配置文件后需要重启电脑才能看到改变,为了避免反复重启。在这里推荐使用VirtualBox虚拟机。本人实验配置是:Fedora16-i386-DVD完全安装,VirtualBox4.2.2forlinux。Grub1.99。syslinux4.05,你的linux主机应该安装有grub2。下文所述,在我的机器3个镜像成功加载。1.准备虚拟机。如果你发现鼠标消失了,按下右ctrl。••从下载VirtualBox4.2.2。我选择的是Alldistributions。80M左右的体积。新建一个虚拟机,操作简单直接下一步下一步。设置为使用128M内存,使用虚拟硬盘文件,512M硬盘。显存23M。不要启动虚拟机,完成下面的步骤。2.准备memdisk•••使用syslinux是因为实验中的实例需要memdisk,它是包括在syslinux中的。可以用来加载一些Win下的img镜像,比如:Ghost82.imgMaxDOS.img读者可到网下载这两个文件。从下载syslinux-4.05.tar.gz它是syslinux源代码。新版本syslinux中的memdisk能自动计算镜像文件的chs参数。解压源代码到某个路径例如主目录~编译memdisk(我们只需要memdisk)。编译需要nasm编译器,执行如下命令:cd~/syslinux-4.05/memdiskmake1它会生成名为memdisk的文件。这个文件可以在GRUB2中使用linux16加载。3.准备用来创建光盘镜像的iso目录••mkdir-p~/iso/boot/grub{,2}在~/iso/boot/grub下建立配置文件grub.cfg内容如下:setroot=(cd)menuentry'Ghost82.img'{linux16/boot/memdiskinitrd16/Ghost82.img}menuentry'MaxDos.img'{linux16/boot/memdiskinitrd16/MaxDOS.img}menuentry'win7pe-cn.iso'{linux16/boot/memdiskisoinitrd16/Win7PE-CN.iso#你需要自己准备一个Winiso,使用memdisk在虚拟机中加载ISO需要等待较长时间。而且需要大量内存。我们最初设置的128M不够用。所以正文没有提及。}settimeout=-1•复制Ghost82.imgMaxDOS.img到~/iso;复制~/syslinux-4.05/memdisk/memdisk到~/iso/boot/;复制所有GRUB2模块到~/iso/boot/grub2。GRUB2模块在i386/usr/lib/grub2/i386-pc/。4.创建grub.iso,这个文件将用虚拟机加载。•在主目录下执行命令:grub2-mkrescue-ogrub.isoiso应该在:因为当前处在主目录下,命令中的iso就指向~/iso目录。创建的grub.iso光盘,包含:~/iso/*下的所有文件,并且包含有GUB2启动区块。这个iso可以写入CD。如果希望写入U盘需要使用grub2-install命令。5.在虚拟机的镜像列表中添加grub.iso,然后启动虚拟机。当你修改了iso/boot/grub/grub.cfg配置文件,重新执行第四步,然后重启虚拟机就看以看到改变。2如果你没有出错且幸运的话,虚拟机应该能够得到图。尝试前两个选项,她们应该能够正确运行。1.1概论简而言之:grub是一个引导加载器,即计算机系统启动时第一个运行的程序。它是为了加载操作系统和转移控制权给操作系统内核。内核再继续启动完整的操作系统。GNUGRUB是一个非常强大的引导加载器,它可以加载种类繁多的操作系统。还支持链式加载chain-loading。GRUB最大的特性就是可扩展性。GRUB支持文件系统和内核可执行格式,因此你可以用很多方式加载你的OS,而不用记录下OS在磁盘的物理地址。比如使用分区名,路径和文件名指定文件。当GRUB加载系统时,可以使用命令行交互模式,也可以使用菜单选择模式。使用命令行模式你需要指定内核的文件名和分区名。在菜单模式下,你只需要移动箭头来选择一个菜单然后按下enter。菜单使用一个配置文件来说明。1.2GRUB的历史略1.3与以前版本的不同点GRUB2是重写GRUB后的升级版本。二者有很多相同的特性。但是也有很多地方发生了改变。1.新的配置文件名:/boot/grub/grub.cfg而不是/boot/grub/menu.lstorgrub.conf,配置文件有新的语法。因此不能直接使用grub1的配置文件。2.grub.cfg由grub2-mkconfig命令产生。它方便升级内核版本。3.分区编号从1开始,而不是0.34.配置文件现在是一个完整的脚本语言,它支持:变量,条件,循环。5.save_env和load_env支持对启动状态的本地保存。6.GRUB2拥有更加聪明的算法用来找寻它所需要的文件。使用search命令你可以通过卷标或者UUID来选择磁盘。7.GRUB2支持多找其他类型的系统:PCEFI,PCcoreboot,PowerPC,SPARC,MIPS..8.支持多种文件系统,不仅仅限于:ext4,HFS+,NTFS9.GRUB2可以直接从LVM和RAID中读取文件。10.支持图形终端和菜单系统。11.GRUB2交互界面可以被翻译,包括菜单项的名字。12.镜像文件,发生变化。13.GRUB2有动态加载的模块可用于支持更多的文件系统和其他功能。2加载器的作用引用自GordonMatzigkeit,GRUB爱好者:大多数人在谈论电脑的时候总是讨论操作系统和内核。因此她们总是说GNU/linux或者GNU/Hurd。其他多数人认为内核是系统中最重要的部分,因此他们把GNUOS称作Linux系统。我个人认为那种看法是非常片面的,因为启动加载器才是所有软件最重要的。我过去常常把以上的系统称1作:LILO和GRUB系统可惜的是没人支持我的见解,因此我现在只用GNU指代GRUB。因此如果你听到有人说GNU系统,那你一定要想到那其实是围绕这GRUB展开的。作为GRUB的维护者,我们并不支持Gordon这种程度的发烧友。但是他的话可以帮助理解GRUB的作用。2.1命名规范GRUB为用的设备语法相对与以前发生了重要变化。(fd0)首先GRUB需要设备名称被扩在圆括号内,fd表示软盘,数字0表示编号为0的设备(第一个软盘设备),编号从零开始计数。(hd0,msdos2)hd意思是硬盘,数字0代表设备号,意味着是第一块硬盘。Msdos指出了分区类型,数字2代表分区编号。分区编号从1开始计数,而不是0。因此面的代码指定了第一个硬盘的第二个分区为msdos格式。当你选择了分区时GRUB会尝试解析文件系统,并从分区中读取资料。14LILO,LInuxLOader,一个很多人使用但是很少有人喜欢的加载器。(hd0,msdos5)这指定了第一个硬盘的第一个扩展分区。由于主分区最多为4,所以扩展分区从5开始编号。(hd1,msdos1,bsd1)第2块硬盘的第一个BSDslice(BSD使用slice管理磁盘,概念类似于主分区)。想让GRUB真实的访问磁盘和分区,你需要在命令行中按照述语法指定分区。例如:setroot=(fd0)parttool(hd0,msdos3)hidden-如果你不知道磁盘中的分区方法,可以使用grub的补全功能。只输入setroot=(然后按下tab键,GRUB会自动显示设备列表,分区名,文件名。注意GRUB不从SCSI识别IDE,它简单的从0开始给设备编号,而忽略设备类型。同差IDE设备的编号小于SCSI设备。如果你在BIOS中改变了IDE和SCSI的引导顺序,那编号大小就说不准了。现在考虑一个问题,如何指定一个文件(hd0,msdos1)/vmlinuz它在指定分区指定文件vmlinuz。依次类推,可以指定任意路径。3安装GRUB在类unix系统中安装GRUB请在root权限调用grub2-install程序。命令参数比较简单,只需要指定目标磁盘设备文件名。#grub2-install/dev/hda在GNU/hurd系统下使用这个命令#grub2-install/dev/hd0面的两个命令会把GRUB镜像放置到/boot文件夹。如果你希望它把文件放到其他文件夹需要指定--boot-directory参数。这里有个创造软盘启动的实例。#mke2fs/dev/fd0#mount-text2/dev/fd0/mnt#mkdir/mnt/boot#grub2-install--boot-directory=/mnt/boot/dev/fd0#umount/mnt有些BIOS在使用USB设备的第一个分区作为软盘时有bug。此时把USB设备当作硬盘来启动。俗称:USB-FDD启动。这种情况下你需要这样安装GRUB。:#losetup/dev/loop0/dev/sdb1#mount/dev/loop0/mnt/usb#grub2-install--boot-directory=/mnt/usb/bugbios--force--allow-floppy/dev/loop0这个安装方法不和标准方法冲突。因为她们被安装到其他文件夹里。目前grub2-install只是一个shell脚本。脚本调用了grub2-mkimage和grub2-setup。你也可以直接使用这两个命令。不建议这样做,非常熟悉grub者除外。安装引导加载器到正在运行的OS中可能导致严重错误。53.1创建GRUB引导的CD-ROMGRUB支持ElTorito1非仿真模式。这也意味着你可以直接从cd-rom中使用GRUB启动,而不需要创建启动软盘和硬盘镜像(它们可能导致启动失败)。CD-ROM启动GRUB使用一个称作cdboot.img的镜像。此镜像被core.img包含。core.img镜像也必须包含iso9660和biosdisk模块。CD-ROM启动也需要包含grub.cfg和相关grub模块。创建一个简单通用的GRUB救援光盘,你需要使用grub2-mkrescue程序:#grub2-mkrescue-ogrub.iso你还需要在iso中包括其他的有用的文件。只需要在iso文件夹内放置你需要的文件即可。#mkdiriso#mkdir-piso/boot/grub你也许需要在boot/grub文件下包含grub.cfg用来提供启动菜单。把其他所有你需要的文件复制到iso文件里面,你可以随意创建目录结构。最后使用命令:#grub2-mkrescue-ogrub.isoiso它会产生名为grub.iso的文件。它可以直接刻录到CD或者DVD光碟内。根设备在进入grub.cfg之前
本文标题:GRUB2-中文手册-word-版
链接地址:https://www.777doc.com/doc-5238215 .html