声明
------------------------------------------------------------------
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.yginfo.net/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 文件吧。现在机器已经跑起来了,具体过程就上网找别的文章看看,很容易的。