前言;
我一直想做一个在U盘自己启动和运行的Linux系统,近来花费了一些功夫,初步做出了一个基本可以运行的这样的系统,现在记录一下,一是供自己以后参考;二是与大家共同学习和切磋;三是为本论坛增加一点人气。
1、我的制作环境;
先说硬件环境,只说与本系统制作可能有关系的:我的U盘是一个比较早期的朗科64M盘,主板芯片时一个Sis的早期版本。我想现在新的主板和新的U盘应该会比我的硬件具备更好的硬件兼容性。我先把Bios里面的启动介质设置为USB-HDD,另外三种USB启动方式在我这次中都不能成功启动。
我的软件环境,或者说我的操作系统是Sarge。
2、我的基本思路
诚然要做一个比较完善的实用系统,最好是在已经有的Linux发行版的基础上进行加工和修改来做,比如说在Morphix、Knoppix、DSL等基础上进行再加工,但是我做这个系统的主要目的时满足自己的好奇心,另外也是作为学习的一种方式,所以我从更基础的步骤开始,包括自己编译内核、自己制作根目录系统、自己进行各种配置等---当然最好能从自己编写所有源码的最基础开始,但那是不可能的。
3、制作过程;
3.1、编译内核;
具体的编译过程就不说了,资料随处可见,在这里关键是注意为了使U盘启动时能找到自己的根目录系统,需要打一个补丁。关于这个补丁的详情可见:
http://www.lammerts.org/software/kernelpatches/
由于这个补丁是针对内核2.4.22的,所以我专门下载了2.4.22版本的源码---我不知道这个补丁是否对2.4内核的其他版本起作用,而针对2.6内核的补丁又有不同。
然后,解压—打补丁—编译—得到bzImage,不提。
3.2、制作根目录系统;
制作根目录系统的文章也很多,我这里就不重复,值得注意的是:
3.21、由于现在使用的时U盘,空间较软盘宽松得多,所以我没有使用busybox,而是从我自己工作的Sarge系统的bin sbin lib等目录中直接拷贝需要的东西。
3.22、一般我们都使用initrd来分两个阶段启动Linux,由initrd来挂载U盘上的文件系统。不知道为什么,我不喜欢这种方式。经过实验证明,直接由grub或是syslinux来指定根目录文件系统是可行的。
3.23、现在我的根目录里面几乎没有什么配置文件,连inittab fstab等都没有,以后再改进吧。
3.3、处理U盘;
首先要使用fdisk cfdisk对U盘分区,我把我的U盘划分为两个区,第一个10M的boot区,第二个是50M的root区,注意将boot分区设置为可启动的---在DOS下叫激活吧。
然后要建立文件系统,因为我对syslinux比对grub熟悉一些,所以我使用:
#mkdosfs /dev/sda1
#mke2fs /dev/sda2
将boot分区建立为FAT文件系统而将root分区建立为ext2文件系统---用grub应该不用这么麻烦,待我下次再研究如何用grub来加载启动U盘上的内核。
再然后就要这样对U盘进行syslinux处理:
#syslinux /dev/sda
复制相关的文件到U盘,在挂上相应的文件系统之后,把前面编译的内核bzImage复制到sda1,而把自己制作的根文件系统复制到sda2。
最后编写一个syslinux的配置文件并把它复制到sda1里面。(实际上sda1里面只有三个文件,一是内核;一是syslinux系统文件;一是下面的syslinux.cfg)
#nano syslinux.cfg
title myusb
kernel bzImage
root /dev/sda2
制作完成,现在启动电脑就可以顺利进入到我的U盘了---虽然内核在启动的时候还会报告找不到root文件系统,但是折腾了几下之后,它就找到了并顺利执行init,现在电脑上出现了:
init#
表示可以使用U盘Linux系统了。
但是这个系统还做不了什么事情,需要对许多的配置文件进行创建,比如说现在的系统连用nano vi等编辑文件都总报告”error opening terminal”的错误而退出,需要复制原来系统的/etc/terminfo/l/linux文件才能正常运行。
我本来是想制作一个能运行Gcc+Rhide的小型C语言学习系统---就象当年用一张软盘,拷贝上Dos+TurboC 1.0就能到处学习C语言一样,但现在事情看起来复杂得多,现在要安装Gcc就很麻烦,还需要不断的探索。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |