分享

从硬盘安装 Linux 和从 GRUB 命令行启动操作系统

 软件团队头目 2006-12-01

标题
+=================================================+
|  从硬盘安装 Linux 和从 GRUB 命令行启动操作系统  |
+=================================================+

版本号
------
 0.3
------

声明
------------------------------------------------------------------
1   本文档可以任意转载、拷贝、剪切复制,甚至不需要注明出处。
2   所述方法已经经过本人试验,但不做任何担保。你将承担使用本文
档带来的一切风险,请您自己做好数据备份。
------------------------------------------------------------------

内容简介
------------------------------------------------------------------
    如何在一个没有光驱,没有软驱的机器上安装 Linux 系统?不用我说,
大家都知道这部分机器都已经安装了 Windows 系统。本文的目的就是给出
在一个装有 Windows 的机器上,从硬盘安装 Linux 系统的办法(准确地说
是系统的引导过程),使用的工具是 GRUB for DOS 最新版,本人已经对
几个发行版进行了试验,它们都是流行的版本,例如 Hiweed-debian、Red 
Hat 9.0、Fedora Core 2。另外,如果你碰到过格式化 Windows 里的某盘,
结果重启后 GRUB 的菜单不见了的情况,你也可以从本文中找到解决办法。
-----------------------------------------------------------------


+========+
|  正文  |
+========+

一  从硬盘安装 Linux 系统
-----------------------------------------------------------------
    本来想讲讲磁盘分区的原理,但是会显得冗长,浪费大家的时间,所
以我直接给出硬盘安装(引导)的步骤,如果你想做个明白人,请找几篇
硬盘分区的文章看看吧。另外,我的 C 盘是 FAT32 格式的,如果你的
Windows 分区不是此格式,例如是 NTFS 格式,我不知道可行不可行,据
说现在的内核是支持的。

    下面的描述尽可能具体,但你完全可以做些聪明的变通。

1   备份你的重要数据,免得出了问题欲哭无泪。通常你会把 Windows 里
的某盘分给 Linux,我的办法是把数据备份到另一盘,例如有 C、D、E、F
四个盘,我想在 F 盘上装 Linux,我就会把 F 盘的数据备份到 D 盘或 E 
盘上,当然我仍然会把最最重要的文件(例如情书)拷贝到移动存储介质
里。

说明:要想改变分区的大小,例如要加大 F 盘,请使用相应软件,比如
Partition Manager。使用时请阅读软件的帮助文档。

2   下载 GRUB for DOS,网址为http://newdos./grubdos.htm
可以下载最新的版本,下载后拷贝到 C 盘,用 Winrar 解压到子文件夹,
重命名此文件夹为 grub(以便和下文相对应)。

注意:我的 C 盘是 FAT32,下面的过程也只针对此格式,至于 NTFS 格式
会有什么结果,我没办法试验,你可以自己试试。

3   Windows XP 下,打开“我的电脑”,进入 C 盘,点击“工具->文件
夹选项->查看”,取消高级设置里的“隐藏受保护的操作系统文件”项,
并且选择“显示所有文件和文件夹”项。这样你能看到一些操作系统的文
件了。打开 boot.ini 文件,在末尾添加
            C:\GRLDR="运行 GRUB"
存盘,接着拷贝 grub 目录下的 grldr 文件到 C 盘根目录下,最后拷贝
到 C:\grub\boot 下的整个 grub 文件夹到 C:\boot 下(没有就建一个)。

4   下载发行版的光盘映像文件,如果你想装 Hiweed-debian,请到
ftp://debian.ustc.edu.cn/debian-cd/hiweed-debian/ 目录里下载一个
光盘映像(当前最新版本为“国庆特别版”,即 *0.55_i386.iso),下载
的文件放到 C 盘根目录下,接着下载子目录 hiweed-hard-disk-install 
里的文件,也放到 C 盘根目录下。如果你想安装 Red Hat 9.0,你可以到
ftp://202.38.64.123/ 下载光盘映像,共有三个映像文件,光盘映像同样
放到C盘根目录下,然后用 Winrar/WinImage 打开第一个映像文件,提取
isolinux 子目录下的 initrd.img 和 vmlinuz 文件到 C 盘根目录下。如
果你想安装 Fedora Core 2(Red Hat 的后继版本),你可以到
ftp://202.38.75.11/ 下载光盘映像,共有四个映像文件,光盘映像还是
放到C盘根目录下,然后用 Winrar/WinImage 打开第一个映像文件,提取
isolinux 子目录下的 initrd.img 和 vmlinuz 文件到 C 盘根目录下。

说明:如果安装 Hiweed-debian,请确保 C 盘根目录下有下列文件
             vmlinuz   (从 ftp 服务器下载,如上所述)
             initrd.gz (从 ftp 服务器下载,如上所述)
             hiweed-debian-desktop_0.55_i386.iso
      如果安装 Red Hat 9.0,请确保 C 盘根目录下有下列文件
     shrike-i386-disc1.iso
     shrike-i386-disc2.iso
     shrike-i386-disc3.iso
             vmlinuz   (从 shrike-i386-disc1.iso 中提取)
     initrd.img(从 shrike-i386-disc1.iso 中提取)
      如果安装 Fedora Core 2,请确保 C 盘根目录下有下列文件
             FC2-i386-disc1.iso
             FC2-i386-disc2.iso
             FC2-i386-disc3.iso
             FC2-i386-disc4.iso
             vmlinuz   (从 FC2-i386-disk1.iso 中提取)
             initrd.img(从 FC2-i386-disk1.iso 中提取)

5   重启计算机,会有两个菜单项让你选择,其中一条就是上面添加的
“运行 GRUB”,选择、回车,这样就开始运行 GRUB 程序了,不管你
看到了什么,按字母键‘C’。

6   通过如下步骤引导 Hiweed-debian:
          grub>kernel (hd0, 0)/vmlinuz root=/dev/ram ramdisk_size=10000  
devfs=mount,dall
          grub>initrd (hd0, 0)/initrd.gz
          grub>boot
    通过如下步骤引导 Red Hat 9.0:
          grub>kernel (hd0, 0)/vmlinuz root=/dev/ram ramdisk_size=10000     
devfs=mount, dall
          grub>initrd (hd0, 0)/initrd.img
          grub>boot 
    通过如下步骤引导 Fedora Core 2:
          grub>kernel (hd0, 0)/vmlinuz root=/dev/ram ramdisk_size=10000 
devfs=mount,dall
          grub>initrd (hd0, 0)/initrd.img
          grub>boot

技巧:grub 里可以使用TAB键补齐命令或参数,例如键入
          grub>initrd (hd0, 0)/init
    然后按 TAB 键,grub 会自动将“init”补齐“initrd.gz”或
“initrd.img”。

7   引导成功后你就可以安装系统了,具体的安装请参考别的文章,这里
要说一下,如果安装的是 Red Hat 9.0 或 Fedora Core 2,安装程序会问
你从什么位置安装,请选择从“Hard disk”安装,然后选择 /dev/hda1
作为映像文件的位置。实际上安装过程是比较简单的,对于 Fedora Core 
2,如果你的机器是主流配置,安装的时候你会发现居然是图形界面,只要
你装过 Windows,你会发现其过程如此的熟悉!
-----------------------------------------------------------------

二  从 GRUB 命令行启动系统
-----------------------------------------------------------------
    这里所说的 GRUB 和上文中说的 GRUB for DOS 是不一样的,上文的
GRUB 跟磁盘的第一扇区没有关系,即是说,如果你把上面 C 盘里 grub 
目录删除,不会影响你的系统启动。我下面讲的 GRUB 却会把一部分代码
写到磁盘的第一扇区上,即会写到主引导纪录 MBR 中,这是在你装 Linux
时操作的。

1   GRUB 的代码分两部分,一部分写入第一扇区的主引导纪录 MBR 中,
另一部分驻留在磁盘的某一固定位置。

2   GRUB 的工作过程。计算机启动后,BOIS 先做自检等工作,然后 BOIS
会加载磁盘的第一扇区(512 字节)到内存某处,然后跳转到该处执行代
码,这段代码就是上面所说的 GRUB 写入 MBR 的部分,这段代码有 GRUB 
第二部分在磁盘上的位置信息,这段代码就是根据此信息加载第二部分,
第二部分才是 GRUB 的核心,第二部分会读取 /boot/grub/grub.conf 配
置文件,然后根据此配置文件弹出用户界面,你看到的那些菜单选择项就
是这么来的,当然,你也可以按字母键‘C’进入命令行方式。

3   如上所说,你的机器上的各操作系统的信息是写入配置文件 grub.conf
的,如果你的配置文件不正确,GRUB 当然找不到你想起动的操作系统了,
此时需要你手工启动。例如你因为在 Windows 里格式化某盘(或别的原因),
结果重启机器后 GRUB 漂亮的界面不见了,只留下陌生的提示符“grub>”,
别慌,你可以用命令来启动你的操作系统。
    从命令行启动 Windows:
          grub>root (hd0, 0)
          grub>chainloader +1
          grub>boot
    从命令行启动 Fedora Core 2(假设装在 /dev/hda7 上):
          grub>kernel (hd0, 6)/boot/vmlinuz-2.6.5-1.385.img root=/dev/hda7
          grub>initrd (hd0, 6)/boot/initrd-2.6.5-1.385.img
          grub>boot
    从命令行启动 Debian 和启动 Fedora Core 2 类似,不过键入命
令的时候可以使用 TAB 键补齐参数,例如,键入“initrd”后,使用
TAB 键补齐后缀,FC2 和 Debian 下的后缀名是不一样的,免得出现
诸如“panic: VFS not found ... ”这样的错误。

说明:如果你通过分区软件调整了分区的大小,鬼知道会有什么结果。
我没试过,从理论上说你玩完了,因为 GRUB 的第一部分中的关于第二
部份的地址信息会失效,结果 GRUB 的核心加载不了了!

4   你以后可以使用同样的方法来启动系统,如果感到不爽,想要菜单,
那就修改你的 /boot/grub/grub.conf 文件吧。现在机器已经跑起来了,
具体过程就上网找别的文章看看,很容易的。
-----------------------------------------------------------------


我愣,一不小心写了这么长,还没过瘾呢。如有什么不妥和错误之处,欢
迎拍砖。祝你一切顺利!
※ 修改:·SmileFeng 于 10月27日22:46:49 修改本文·
※ 来源:·瀚海星云 bbs.ustc.edu.cn·

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多