开发者社区> 余二五> 正文

GRUB简体中文化版使用方法

简介:
+关注继续查看
今天重装了xp,把原先的GRUB引导丢失了,下面摘一篇GRUB的文章
GRUB简体中文化版使用方法

by Gandalf<[email]f22_storm@163.com[/email]> 

目录

一.功能概述

hline_xp.png
 
    在本源上, Grub 是Linux的一个载入程序,正如 NTLDR 之于 Windows NT/2K/XP. 但是,它却拥有多引导的功能,而且还在不断得发展与完善之中. 当前,它的新功能如下:
 

二.基本概念及界面说明

hline_xp.png
 
A.基本概念
1. GRUB 里的设备命名法则
    它使用了UNIX对设备的命名方法.比如我们拥有两块硬盘,那么采用这种形式(hdx,y), 这里,x,y, 都是从0开始计数的.所以两块硬盘是 (hd0,y),(hd1,y). 他们位于第一个IDE接口上. 对 hd0 来说, 请看下图:
hdname.png
(注, 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`键返回到主选菜单界面).以下三图可供参考:
main_menu_small.gif
(主菜单)
edit_menu_small.gif
(编辑菜单项)
console_small.gif
(命令行模式)
D. 关于菜单脚本文件
    与 Windows NT 类似, GRUB 也提供了一个菜单生成文件,我们常称之以脚本.
    通常情况下,我们把 GRUB 要用到地文件都放到 /boot/grub/ (这里我们省略了对根设备的指定, 所以完整的表示可能是 (hd0,0)/boot/grub ). 而菜单文件的默认名称是 menu.lst这里有一个样本实例, 
 >> 请点击 <<
    这里应该说明的是, 菜单文件里的注释是以"#"开头的, 而每一项菜单都必须指定一个标题(title),否则不但不能被显示出来,反而还作为了上一项的命令了.
 

三.功能详情及使用

hline_xp.png
 
   1).中文的显示, 请使用:
         fontfile FILE
      实例:             fontfile (hd0,0)/boot/grub/fonts
   2). 背景图的使用:
      splashimage FILE
      实例:             splashimage   (hd0,0)/boot/grub/bj2008.xpm.gz
    3).  图形菜单( gfxmenu ) 的使用:
        gfxmenu FILE
      实例:             gfxmenu (hd0,0)/boot/grub/grub_chs.msg
   [fontfile 的文件必须是 16 点阵字库;

        splashimage 的文件必须是 640x480 14 色的 XPM 格式, 支持zip压缩;

        gfxmenu 的文件当前只能使用 Linux 下的 mkbootmsg 工具生成, 此功能先见于 SuSe Linux 7.2.
 

2. 支持软盘虚拟功能,可以用以引导系统;
    1). 使用 MEMDISK
      kernel (hd0,0)/boot/grub/memdisk.gz
      initrd (hd0,0)/boot/grub/win99.zip

      boot                                (此项仅在命令行中使用,在菜单文件里无需指定)
    2). 使用内建的 MAP
      map (hd0,0)/boot/grub/win99.img (fd0)
      map --hook
      chainloader (fd0)+1 
      rootnoverify (fd0)

      boot                                (同上)
   [] + 使用 memdisk 有很多好处. 首先它不需要磁盘镜像文件的连续存放,支持网络上,光盘上的磁盘镜像文件, 而且此文件可以使用 zip 压缩格式. 如果磁盘文件的原始大小不是 1.44/2.88MB, 那么,使用起来,就有一些技巧了:
     1). 默认情况下, 将被视为硬盘的镜像文件(与使用 harddisk 效果相同, 故通常不用指定此参数);
     2). 如果是软盘镜像文件,请使用 floppy 参数, 比如:
      kernel (hd0,0)/boot/grub/memdisk.gz c=274 h=2 s=18 floppy
      initrd (hd0,0)/boot/acronis/pe.zip
      boot                                (同上)

        
 => 提示:可以使用新版的 Winimage 获取上述的 C/H/S 参数, 参见: winimage_small.png
        + 用 MAP 命令是,磁盘镜像文件必须连续存放,大小上无限制.但是不支持网络/光盘上的文件,且不支持 zip 压缩了的文件.
 

3. 支持硬盘虚拟,磁盘的映射(当然,还能激活/隐藏/创建分区);
    就硬盘虚拟功能而言, 在上一个段落里,我们已提及到了, 在应用上, 我们可以构造一个虚拟的磁盘环境来, 但是, 这个磁盘的访问是通过对 INT 13 的挂接来进行的, 这也就是为什么, 我们可以虚拟一个安装有 DOS/Win9X 的硬盘, 而对 Windows NT/2K/XP 就无能为力了, 即便是他们的恢复控制台(cmdcons). 

    [ 如果你想体验这种功能, 你可以到 Win98_for_grub 下获取 Win98SE_CHS 的两个镜像文件, 他们都带有图形界面. ]

    [ 此外, 如果你试图使 WinNT 等系统能运行于虚拟的磁盘镜像文件, 请参考 Windows XP Embedded 的相关信息, 通过使用 Ramdisk 驱动, 可以做到的. 你可以到 RamDisk_WinXPe 获取一个针对 WMWare 的硬件环境的 WinXP Embedded 版本.]
    而“磁盘的映射”, 通常不用, 故而也就不再此处讨论了.

4. 支持网络启动(包括网络虚拟软盘);
      ifconfig --address=192.168.0.122        (本机使用的 IP 地址)
      ifconfig --mask=255.255.255.0           
(子网掩码)
      ifconfig --gateway=192.168.0.254      
(网关的 IP 地址)
      ifconfig --server=192.168.0.1             
(tftp 服务器的 IP 地址)
      kernel (nd)/memdisk.gz
      initrd (nd)/win99.gz                          
(可以使用 zip 压缩的文件)
      boot                                (同上)

5. 支持光驱启动(拥有一个独立与BIOS的ATAPI设备的驱动程序);

    1). 如何让GRUB识别光驱
    scdrom --install
    安装成功后, 你可以将 root 设备指定到光盘上(root cd), 访问光盘上的内容(比如指定 memdisk:    kernel  (cd)/memdisk, 等等)
    2). 如何跳转到光驱启动
    scdrom --bootcd
    这是"一去不复返"式的跳转, 如果成功的话. 如果失败,将返回 GRUB.
 

6. 跨平台的支持;
    1). 在纯 DOS 下运行GRUB
    使用配套的 GRUB.exe 程序.
    2). 从光盘上直接启动GRUB(必须是非模拟方式的)
    使用配套的 stage2_eltorito 文件作为启动文件.
    3). 在 Linux 上运行 GRUB
    使用配套的 grub 程序(elf 格式)即可. 可能需要修改运行权限(chmod a+x grub).
    4). 无盘启动 GRUB
    使用配套的 nbgrub/pxegrub 即可.
  * 5). 使用 WinNT/2K/XP/LH 的引导器(NTLDR)载入GRUB *
    使用配套的 grldr 即可.
        如何作:
        首先, 你一定要确认你的系统拥有 NTLDR 的引导功能, 然后打开它的配置文件( boot.ini, 这个文件通常在你的 "c:\"),进行修改. 请为 GRUB 新添如下一行到文件的末尾(注意, 请另起一行)
       C:\GRLDR="Boot Grub with Full Set", 然后保存之.
当然你可能会得到信息说文件是只读的, 请修改它的属性后,再保存. 随后,请把压缩包里的 grldr 解到 C:\ 就可以了.
    

7. 对多引导文件的支持
    我们假设文件所用到的文件位于 C:\ (hd0,0) 

    1). 硬盘扇区文件 

       root (hd0,0)                        (对使用硬盘的时候,一定要使用 hd, 这样才会传递引导盘符为 80H)

       root                                    
(显示说明磁盘为 80H) 
       run /peloader.bin                  
(运行之) 


    2). 光盘非模拟方式的引导文件 


      scdrom --install                       (初始化,安装光盘驱动)

      root (cd)                              
(指定引导盘符的操作) 
      root                                     
(显示说明磁盘为 80H) 
      run (hd0,0)/emurtosk.bin       
 (运行之) 


 *
 注:   所指定的文件要小于 32768 字节.
 

四.致谢
hline_xp.png

    这个版本的 GRUB 的公开, 离不开很多人的努力,合作与帮助. 他们是:
    GNU GRUB 的作者            : 一个伟大的程序工作者,为我们带来了功能强大的 Grub
    fsys_ntfs.c 的提供者       : 此版本的 Grub 引用它来提供对 NTFS 分区的支持
    Smart BootManager 的开发者 : 此版本的 Grub 引用了它的 ATAPI 驱动模块
    VCCode 龙堂论坛上的 zhaoxg : 他向我提供了蓝点 Grub 的相关信息, 使此版本中文支持有了源头 
    Grub 的网络支持补丁的提供者: 此版本的 Grub 引用了诸多官方版本所不支持的网卡驱动
    Grub4Dos 的开发者          : 此版本的 Grub 引用了它的 MAP/NTLDR 模块(谢谢tinybit)
  
    findroot 功能的提供者      : 他(Chris_s)来自 topologilinux 还有他的朋友(Tobias)
    United DOS forum          : 在这里有,我经常和多位高手交流. 感谢 ruymbeke 发出的邀请
    VCCode 龙堂论坛上的小丫头  : 我向她请教了 bj2008.xpm 背景图的修改问题
    ... ... ... ... ...

    还有很多人士, 在此一并表示感谢!

   
 

  更新时间
:
             2004-11-13 12:50:50            - 新增 gfxmenu 动画图形菜单的功能使用说明
             2004-11-05 14:55:40            - 对 RUN 命令的描述[添加]
             2004-10-13 19:28:18            - 对 memdisk 的只能支持 1.44M/2.88M 的说法的调整[更正]
                                              对第三条目, 进行内容的添加[添加]




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/65803,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
25162 0
函数计算 custom runtime 使用集锦
函数计算 custom runtime 使用集锦
4946 0
转帖:DotNet 资源大全中文版
(注:下面用 [$] 标注的表示收费工具,但部分收费工具针对开源软件的开发/部署/托管是免费的) API 框架 NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。
1435 0
使用spring@Schedule注解定时任务时将时间表达式写入配置文件中的方法
@PropertySource("classpath:root/test.props") 然后修改你的@Scheduled(cron="0/5 * * * * ? ") 为 @Scheduled(cron="${jobs.
2099 0
CIO的新难题: 认清SOA使用中的五大隐患
        现在是SOA领域动荡变化的时期,其发展变幻莫测,而这仅仅只是开始。由于服务设计、服务总线、服务治理甚至服务本身都处于不断变化中,而且各大公司仍在重审这一舞台,因此,人们的立场通常很复杂。
781 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18843 0
ANT 运行jar包的中文乱码问题
in eclipse.  在ant中打包成jar文件后,运行,出现的中文乱码问题。 解决方法: 1. 确保eclipse中项目的编码统一. 如:全设置成UTF-8. 2. 在ant task下加如下运行参数: http://www.
624 0
gdy
转载:Ununtu下中文乱码解决方案
转载: 添加中文字符编码: $sudo vim /var/lib/locales/supported.d/local #添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.
797 0
+关注
20381
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载