本文讲述了硬盘安装Linux和从Grub命令行启动Linux的方法,对于想从硬盘安装Linux和从Grub命令行启动Linux的读者能有所帮助。
一 从硬盘安装Linux系统
本来想讲讲磁盘分区的原理,不过会显得冗长,浪费大家的时间,所以我直接给出硬盘安装(引导)的步骤,如果你想做个明白人,请找几篇硬盘分区的文章看看吧。另外,我的 C 盘是 FAT32 格式的,如果你的视窗系统 分区不是此格式,例如是 NTFS 格式,我不知道可行不可行,据说目前的内核是支持的。
下面的描述尽可能具体,但你完万能做些聪明的变通。
1 备份你的重要数据,免得出了问题欲哭无泪。通常你会把 视窗系统 里的某盘分给 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 视窗系统 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,如果你的机器是主流设置,安装的时候你会发现居然是图像界面,只要你装过 视窗系统,你会发现其过程如此的熟悉!
#p#二 从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 当然未找到你想起动的操作系统了,此时需要你手工启动。例如你因为在 视窗系统 里格式化某盘(或别的原因),结果重启机器后 GRUB 漂亮的界面不见了,只留下陌生的提示符“grub>”,别慌,你能用命令来启动你的操作系统。
从命令行启动 视窗系统:
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 文件吧。目前机器已跑起来了,具体过程就上网找别的文章看看,非常容易的。
以上是硬盘安装Linux和从Grub命令行启动Linux的方法。
【编辑推荐】