内容简介
----------------------------------------------------------------
如何在一个没有光驱,没有软驱的机器上安装Linux系统?不用我说,
这部分机器都已经安装了Windows系统。本文的目的就是给出在一个装有
Windows的机器上,从硬盘安装Linux系统的办法(准确地说是系统的引导
过程),使用的工具是Vfloppy(虚拟软盘)和Grub for Dos,本人已经
对几个发行版进行了试验,它们都是流行的版本,例如Hiweed-debian,
Fedora Core2。另外,如果你碰到过格式化Windows里的某盘,结果重启
后Grub的菜单不见了的情况,你也可以从本文中找到解决办法
声明
----------------------------------------------------------------
1 本文档可以任意转载、拷贝、剪切复制,甚至不需要注明出处。
2 所述方法已经经过本人试验,但不做任何担保。你将承担使用本文
档带来的一切风险,请您自己做好数据备份。
----------------------------------------------------------------
内容简介
----------------------------------------------------------------
如何在一个没有光驱,没有软驱的机器上安装Linux系统?不用我说,
这部分机器都已经安装了Windows系统。本文的目的就是给出在一个装有
Windows的机器上,从硬盘安装Linux系统的办法(准确地说是系统的引导
过程),使用的工具是Vfloppy(虚拟软盘)和Grub for Dos,本人已经
对几个发行版进行了试验,它们都是流行的版本,例如Hiweed-debian,
Fedora Core2。另外,如果你碰到过格式化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(以便和下文相对应)。
3 下载Vfloppy(虚拟软盘),自己搜一下吧,免费的。下载后用Winrar
解压,进入Vfloppy的目录,点击VFloppy.exe图标运行程序,在启动设置
栏里,点击“映像文件”条目后的第二个图标“选择映像文件的路径”,
弹出界面后选择BOOTDISK.img作映像文件(针对C盘为FAT32格式),其他
的为默认值,然后点击“应用”按钮……
注意:我的C盘是FAT32,上面的过程也只针对此格式,至于NTFS格式会有
什么结果,我没办法试验,你可以自己试试。
4 下载发行版的光盘映像文件,如果你想装Hiweed-debian,请到
ftp://debian.ustc.edu.cn/debian-cd/hiweed-debian/目录里下载一个
光盘映像(当前最新版本为“国庆特别版”,即*0.55_i386.iso),下载
的文件放到C盘根目录下,接着下载子目录hiweed-hard-disk-install 里
的文件,也放到C盘根目录下。如果你想安装Fedora Core2(RedHat的后
继版本),你可以到ftp://202.38.75.11/下载光盘映像,共有四个映像
文件,光盘映像同样放到C盘根目录下,然后用Winrar打开第一个映像文
件,提取isolinux子目录下的initrd.img和vmlinuz文件到C盘根目录下。
说明:如果安装Hiweed-debian,请确保C盘根目录下有下列文件
vmlinuz (从ftp服务器下载,如上所述)
initrd.gz (从ftp服务器下载,如上所述)
hiweed-debian-desktop_0.55_i386.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 重启计算机,按如下步骤进行:
(1)选择“由虚拟启动软盘启动”;
(2)进入DOS界面,选择第二项——无光驱支持;
(3)看到盘符后“A:>”后,键入“C:”,进入C盘;
(4)键入“cd grub”,进入到目录grub里;
(5)键入“grub”命令运行grub程序;
(6)按‘C’字母键进入grub的命令行方式;
(7)见下面第六条。
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
通过如下步骤引导Fedora Core2:
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 引导成功后你就可以安装系统了,具体的安装请参考别的文章,这里
要说一下,如果安装的是Fedora Core2,安装程序会问你从什么位置安装,
请选择从“Hard disk”安装,然后选择/dev/hda1作为映像文件的位置。
实际上安装过程是比较简单的,对于Fedora Core2,如果你的机器是主流
配置,安装的时候你会发现居然是图形界面,只要你装过Windows,你会
发现其过程如此的熟悉!
-----------------------------------------------------------------
二 从Grub命令行启动系统
-----------------------------------------------------------------
这里所说的Grub和上文中说的Grub for DOS是不一样的,上文的Grub
跟磁盘的第一扇区没有关系,即是说,如果你把上面C盘里grub目录删除,
不会影响你的系统启动。我下面讲的Grub却会把一部分代码写到磁盘的第
一扇区上,即会写到主引导纪录MBR中。
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 Core2(假设装在/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 Core2类似。
说明:如果你通过分区软件调整了分区的大小,鬼知道会有什么结果。
我没试过,从理论上说你玩完了,因为Grub的第一部分中的关于第二部
份的地址信息会失效,结果Grub的核心加载不了了!
4 你以后可以使用同样的方法来启动系统,如果感到不爽,想要菜单,
那就修改你的/boot/grub/grub.conf文件吧。现在机器已经跑起来了,
具体过程就上网找别的文章看看,很容易的。
-----------------------------------------------------------------
我愣,一不小心写了这么长,还没过瘾呢。如有什么不妥和错误之处,欢
迎拍砖!祝你一切顺利!
本文引用通告地址: http://www.donews.net/truefriend/services/trackbacks/138365.aspx
[点击此处收藏本文] 发表于 2004年10月18日 11:20 PM
redblood 发表于2004-11-16 12:35 AM
偶用同样的方法,安装fc2的时候没问题。但是安装fc3的时候,在选择从硬盘安装并指定正确的目录后,就出现错误!
也就是所谓的蓝屏!当然不是死机,毕竟是linux:)
但是,每次安装都如此!!!
hanwoody@163.com 发表于2005-01-04 10:17 PM
这段代码有Grub第二部分
在磁盘上的位置信息,这段代码就是根据此信息加载第二部分,第二部分才是Grub的核心???
根据什么知道mbr中的代码包含了"第二部分
在磁盘上的位置信息"?
第二部分在磁盘上的位置信息就是grub应该就是包含menu.lst、和各种文件系统的支持,当我们修改menu.lst时,磁盘的chs寻址或lba寻址肯定变化了,但这时我们并不需要像lilo一样更新mbr的内容,所以。。。