Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1052436
  • 博文数量: 836
  • 博客积分: 43880
  • 博客等级: 大将
  • 技术积分: 5485
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-20 17:36
文章分类

全部博文(836)

文章存档

2011年(1)

2008年(835)

我的朋友

分类: LINUX

2008-08-20 18:26:14


本文要构建的这个迷你型的Linux系统只能在一台特定的单机上运行,如果读者朋友们有兴趣的话,在这个系统的基础上加以改进,是可以构建出通用的、可以在大多数常规PC机上即插即用的系统来的。但是这已经不在本文的话题之内了,读者朋友们如果有兴趣,可以通过我的电子邮件和我讨论其中的细节问题。 我们的目标Linux系统运行在一台普通的Intel386PC机上,可以有硬盘,也可以不要硬盘,而用FlashDisk来代替。如果是用Flash盘的话,需要能够支持从Flash盘启动,而且Flash盘的大小要在16M字节或者以上。我们希望用户一开机启动,就直接进入XWindow图形界面,运行事先指定好的程序。不需要用户输入用户名和密码进行登录。 我们设定的这个目标有点像一个XTerminal终端工作站。稍加改进,还可以做成干脆无盘的形式,也就是说,连16M的Flash盘也不要了。不过,这也超出了本文的话题了。读者朋友们如果有兴趣,可以来信和我进行讨论。 系统启动 因为我们要考虑从Flash盘进行启动,所以我们选择用LILO作为我们的BootLoader,而不选用GRUB。这是考虑到GRUB有较强的对硬盘和文件系统的识别能力,而Flash盘到底不是标准的硬盘,并且我们选用的文件系统GRUB又不一定认识,搞不好的话GRUB反会弄巧成拙。而LILO就简单的多了,它在硬盘开始的MBR写入一个小程序,这个小程序不经过文件系统,直接从硬盘扇区号,读出KernelImage装入内存。这样,保险系数就大大增加。并且也给了我们自由选用文件系统的余地。那么,我们要如何安装LILO呢? 首先,我们要找一块普通的800M左右的IDE硬盘,连在目标机器的IDE线上。这样在我们的目标机器上,IDE1上挂的是Flash盘,IDE2上挂的是一块工作硬盘。我们用标准的步骤在IDE2的标准硬盘上装上一个DebianGNU/Linux系统。当然,如果读者朋友们手头没有Debian,也可以装RedHat系统。装好工作系统之后,要首先做一些裁减工作,把不必要的Service和XWindow等等东西都删掉。这样做的目的是增进系统启动速度,因为我们在后面的工作中,肯定要不停的重新启动机器,所以启动速度对我们的工作效率是很关键的。 装好工作系统之后,在Falsh盘上做一个Ext2文件系统,这个用mke2fs这个命令就可以完成。由于Flash盘是接在IDE1上的,所以在Linux里面,它的身份是/dev/hda。本文作者在操作的时候,把整个Flash盘划分了一个整个的分区,所以,调用mke2fs的时候,处理的是/dev/hda1。读者朋友们应该可以直接在/dev/hda上做一个Ext2文件系统,而不用事先分区。 在Flash盘上做好了文件系统之后,就可以把一个编译好的内核映像文件vmlinuz拷贝到Flash盘上了。注意,必须要先把这个vmlinuz映像文件拷贝到Flash盘上,然后才能在Flash盘上安装LILO。不然的话,LILO到时候可是会LILILILI打结巴的,因为它会找不到KernelImage在Flash盘上的位置的,那样的话Flash盘也就启动不起来了。还有,如果读者朋友们在Flash盘上用的是一个压缩的文件系统的话,到时候LILO也会出问题,它虽然能正确的找到KernelImage在硬盘上的起始位置,但是它却没有办法处理被文件系统重新压缩过的这个KernelImage,不知道该如何把它展开到内存中去。 把KernelImage拷贝过去以后,我们就可以动手编辑一份lilo.conf文件,这份文件可以就放在工作系统上就行了。但是注意在lilo.conf中索引的文件名的路径可要写对。这些路径名都是在工作系统上看上去的路径名。比如,如果Flash盘Mount在/mnt目录下面,那么,在lilo.conf中,vmlinuz的路径名就是/mnt/vmlinuz。注意这一点千万不要搞错。不然的话,如果一不小心把工作系统的LILO给破坏掉了,那就麻烦了。编辑好了lilo.conf,然后再运行lilo命令,注意,要告诉它用这个新的lilo.conf文件,而不要用/etc/lilo.conf。 安装好LILO之后,我们可以立即重新启动,测试一下。首先在BIOS里面,设置成从IDE1开始启动,如果我们看到LILO的提示符,按回车后还能看到Kernel输出的消息,这就算是LILO的安装成功了。记得这个操作的方法,以后每次我们更新Flash盘上的KernelImage,都记得要更新LILO。也就是说,要重新运行一遍lilo命令。 1 2 3 4 下一页>>


下载本文示例代码
阅读(253) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~