好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

linux与windows双系统下的grub引导管理器安装.doc

6页
  • 卖家[上传人]:xzh****18
  • 文档编号:34651111
  • 上传时间:2018-02-26
  • 文档格式:DOC
  • 文档大小:34.50KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 大多数人日常工作所用的系统是 Windows,如果想尝试或者转向 Linux,那么进行 Windows与 Linux 共存的双系统安装是个不错的主意但双系统的安装较之单系统,在磁盘分区和引导管理器两个方面增加了复杂性,本文对双系统下引导管理器的安装来加以介绍笔者假定你已经有了一个可以正常运行的 Win2k/XP 系统,并且已经为 Linux 准备好了硬盘分区:Windows 位于第一块硬盘的第一个分区,在 Linux 下表示为 hda1,在 Grub 下表示为(hd0,0),而 Linux 位于 hdaX,用 Grub 表示为(hd0, X-1)——Linux 下的硬盘分区计数是从 hda1 开始的,而 Grub 的硬盘分区计数是从(hd0,0)开始的,所以 hdaX 就是(hd0,X- 1)这里 X 如果在 1-4 之内,说明 Linux 分区是主分区,如果 X 大于 4,说明 Linux 分区是逻辑分区,本文并不限定 Linux 必须位于主分区,它在逻辑分区一样是可以引导的首先说明本文的思路,笔者推荐由 Windows 到 Linux 的引导序列,即首先引导 Windows 的ntloader,然后通过 ntloader 加载 Linux 分区的 Grub 引导扇区,最后通过 Grub 引导Linux 系统。

      本文涉及到的引导管理器包括 ntloader 和 Grub, ntloader 是 Windows 系统自带的,在安装 Win2k/XP 后就已经安装了,Windows 2000 以及 Windows Xp 就是由 ntloader加载的Grub 是 Linux 系统下很强大的引导管理器,在常见的 Linux 版本里都是有的,一般是自动安装的下面具体说明安装序列:一、在已经准备好的 Linux 分区上安装 Grub这个过程通常是由 Linux 系统的安装程序自动进行的,当安装程序进行到引导管理器的安装,并就 Grub 的安装给出一些提示时,要当心了:我们选择 Grub,而不是 lilo,并且Grub 要安装在该 Linux 分区,不要安装到硬盘主引导记录 MBR(master boot record)上安装程序询问 Grub 的安装位置时,应该是上文提到的 hdaX 或者(hd0,X-1),如果你写成 hda 或者(hd0),就会安装到 MBR 上之所以强调 Grub 安装到 Linux 分区,而不是 MBR,因为本文是双系统安装,要顾忌到与Windows 系统的兼容性(“兼容”在这里并不准确,实际是共生的意思) 。

      我们的原则,就是把对已经安装的 Windows 系统的修改限制到最小的必要的程度,不去进行并非必要的修改,以此保障 Linux 与 Windows 两个系统的和平共处 “简洁即美” , “简单”也会更安全如果安装到 MBR,也是可以的,但可能会有下面的问题:1、如果所安装的 Windows 系统修改了 MBR 的默认设置,那么再把 Grub 安装到 MBR,就对MBR 的内容进行了修改,可能会导致 Windows 不能正常启动通常的 Windows 安装并不会改动 MBR 的内容,但如果你安装了一些引导管理程序,它们往往是通过 MBR 进行设置的时下很流行的一些“一键恢复”程序,有些也是通过 MBR 设置的;2、日后重装 Windows 系统时,MBR 里的 Grub 会被擦除,这会造成 Linux 系统不能引导虽然这个问题也是可以解决的,但笔者更欣赏一劳永逸的安装方式,Grub 安装到 Linux 分区下,可以避免日后的麻烦;3、在一些个别情形下,Grub 不能正常引导系统这个现象并不常见,但仍有可能发生,要知道 Grub 目前仍然是版本前的软件,而将 Grub 装到 MBR 里,就会把问题弄得更复杂。

      当你所安装的 Linux 系统不能指定将 Grub 安装到 Linux 的所在分区时,我们的选择是:暂将 Grub 安装到 MBR,如果 Linux 系统能被 Grub 加以引导,进入 Linux 系统后,我们再手工将 Grub 装入 Linux 分区,然后恢复 MBR;或者在安装程序内暂时不进行 Grub 的安装,退出安装程序后手工安装 Grub恢复 MBR 需要用 DOS、 win98/me 的启动软盘引导系统,以/mbr 参数执行引导软盘上的磁盘分区程序 fdisk.exe,即在 DOS 命令 行(plain dos)下执行 A:\>fdisk /mbr如果机器没有软驱,那么就需要用光盘或者 U 盘来引导机器进入 DOS;在 Windows 2k/XP 下,一个叫Vfloppy 的软件可以用软盘镜像文件来实现对软盘的虚拟引导,如果你的机器没有 USB 接口(或没有可以引导 DOS 的 U 盘) ,也没有光驱和软驱,可以一试我曾经用 Xubuntu 的 LiveCD 在一台设置了“一键恢复”的 TCL 电脑安装时,安装程序没有给出任何选择,自动将 Grub 安装到了 MBR 上,结果不能进入任何系统。

      最后还是用 DOS 下的 A:\ > fdisk /mbr 恢复了 MBR,能够正常引导 Windows 后,手工将 Grub 装到了 Linux 下的根分区,然后通过 ntloader 加载 Grub,才实现了对 Linux 的引导手工安装 Grub 的简便方法是用一张带有 Grub 的 Linux LiveCD(比如常见的Knoppix、Morphix、Ubuntu,都是可以的) ,启动系统,在 Linux 的安装程序内如果能进入shell 也是可以的,总之就是为了执行 Linux 指令,在终端下执行以下指令:# grubgrub > root (hd0,X-1)grub > setup (hd0,X-1)grub > quit以上指令首先定位 Grub 所需的/boot 目录在分区(hd0,X-1),然后将 Grub 的引导代码写入(hd0,X-1)分区的第一个扇区,所以你首先应该确保(hd0,X-1)分区内的/boot/grub 目录下已经有 stage1、stage2、*_stage*等文件,这些文件可以通过释放 Grub 的打包文件来获得,或者直接从 LiveCD 光盘内的/boot/grub 目录复制。

      如果 LiveCD 带有 grub-install 脚本,也可以直接执行# mount /dev/hdaX /mnt# grub-install --root-directory=/mnt /dev/hdaX以上指令首先将带有 Grub 目录/boot/grub 的/hdaX 挂载到/mnt,然后将 Grub 安装到/hdaX二、将 Grub 装配到 ntloader 内Grub 已经安装到了 Linux 分区内,但它还不能引导系统,我们需要把它和 ntloader 联接起来,由 ntloader 对 Grub 加以引导这是通过把 hdaX 分区内的 Grub 引导扇区转换为文件,并装配到 Windows 的 ntloader 内来实施的仍然用 LiveCD 启动 Linux 系统(因为你所安装的 Linux 系统目前还是不能引导的) ,或者在安装程序可以进入 shell 的情况下,执行以下指令:# mount -t vfat /dev/hda1 /mnt# dd if=/dev/hdaX of=/mnt/linux.lnx bs=512 count=1以上两条指令将 Windows 的启动分区(本文中为 hda1)挂载到/mnt 下,然后把 Linux 分区(hdaX)的第一个扇区(大小为 512 字节)复制为 Windows 启动分区根目录下名为linux.lnx 的文件。

      注意:如果你的 Windows 启动分区(即 Windows 下的 C 盘)不是 fat32 文件系统,而是ntfs 文件系统,你需要在软驱内放入格式化的 DOS 软盘,并将第一条指令替换为:# mount -t msdos /dev/fd0 /mnt因为 ntfs 文件系统不经过特殊处理,在 Linux 下是不可写的,即使你将指令中的 vfat 替换为 ntfs,实现了挂载,也是一样,所以我们在这里把 linux.lnx 写入 DOS 格式的软盘,然后通过软盘在 Windows 下把 linux.lnx 放入 C 盘接着是在 Windows 下编辑 C 盘根目录下的 boot.ini 文件,boot.ini 通常是隐藏、只读的系统文件,所以需要把它的“隐藏” 、 “只读”属性去掉,才可以编辑在“我的电脑”工具菜单“文件夹选项”下的“查看”栏中取消“隐藏受保护的操作系统文件”和“隐藏已知文件类型的扩展名” ,并选择“显示所有文件和文件夹” ,就可以看到 C 盘根目录下的 boot.ini文件了在 boot.ini 内的[operating systems]栏增添一行:c:\linux.lnx=”Grub Menu”并将[boot loader]栏内的“timeout=0” ,改为“timeout=5”,这样引导 Windows 时将会显示带有“Grub Menu”字样的操作系统选择菜单,并持续5秒钟,如果选择 Grub Menu,就会进入 Grub 菜单。

      三、设置 menu.lst 文件menu.lst 是对 Grub 进行设置的一个文本文件,可以用文本编辑器加以编辑,位于/boot/grub 目录内我们在前面虽然已经把 Grub 安装到了 Linux 根分区上,但如果没有生成 menu.lst 文件并对它加以设置,Grub 是没有任何作用的对 menu.lst 文件进行设置是个复杂的工作,特别是有关 kernel 和 initrd 的各种特殊参数,幸而系统安装的 menu.lst文件内通常有详尽的注释并且你的 Grub 如果是由安装程序自动设置的,那么通常menu.lst 已经被设置好了,我们仅仅根据自己的需要进行一些修改和调整,而不必重写menu.lst即使你的 menu.lst 不是由安装程序生成的,也不必担心,还可以参考、分析安装光盘或者 LiveCD 上的 menu.lst 文件来对 Linux 分区内的 menu.lst 加以设置如果 Grub 已经由安装程序装到了 MBR,并且能够引导所安装的 Linux,那么自动生成的Linux 系统根分区下的 /boot/grub/menu.lst 就已经被配置好了,我们只须把 Grub 重新安装到 Linux 系统根分区,恢复 Windows 下的原初 MBR,按照上文的方法把 Linux 系统根分区的 Grub 引导代码装载到 ntloader 就可以了。

      因为 Grub 的安装位置不是在 menu.lst 文件内指定,而是在 linux shell 中执行 grub,进入 Grub 命令行后,应用 Grub 的内部指令 root和 setup 来指定,或者在可执行的 shell 脚本文件 grub- install 中,以参数的形式指定设备文件(如/dev/hda 或/dev/hdaX) 假使所安装的 Linux 系统没有使用 Grub,而是使用 lilo 作为引导管理器,只要 lilo 能够实现引导,我们就可以借鉴 linux 系统内的 /etc/lilo.conf 文件来对 menu.lst 加以设置Lilo.conf 是 lilo 的配置文件,其格式虽然与 menu.lst 不同,但关键部分是相同的,如指定 kernel 和 initrd 的位置,向内核传递引导参数,指定缺省引导的系统和延时时长,在lilo.conf 中内核参数是在 APPEND 后,我们可以将 lilo.conf 中的参数移植到 menu.lst 中四、Menu.lst 的一个实例:以下作为实例的 menu.lst 是我在 windows 2000 系统中安装的 grub4nt 的。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.