|
看了youbest的关于制作minilfs的过程,也试着照那个方法来制作,但是感觉方法太复杂,而且制作LFS工具链也是一个极其复杂而且个人感觉也多于的过程(对于功能简单的小操作系统)。
下边是我在参看了youbest的制作功能单一、体积只有5M的apach服务器和那篇关于制作babylinux详细过程后来制作一个小Linux的过程:
1.为了有个好的且安全的制作环境,下载LFS6.2-pre3的LiveCD,下在这个只是为了安全和方便,要是你已经有一个Linux操作系统,那么不下在这个LiveCD也是可以的。但是除了问题不负责的说^_^.。
2.在VMWare5中创建一个虚拟机,网络使用NAT方式,创建一个虚拟的IDE硬盘(不知道为什么为开始想使用SCSI虚拟硬盘,但是在用cfdisk对硬盘进行分区的时候过不去,始终出错)。设置虚拟机的CD-ROM为下在下在德LiveCD镜像文件。然后启动虚拟机。
3.在从CDROM中启动后就进入了LiveCD的启动画面,它随后会要求你设置时区,本地化语言等,这些我都是乱设的,没多大用——这只是一个工具。
4.启动完成后就来到熟悉的提示符"#"
5.现在可以在提示符上敲些你熟悉的命令试一试看看是不是和我们熟悉的Linux一样?现在在命令行上敲下该命令:#cfdisk ,对我们的虚拟硬盘进行分区,我只将其分了一个分区即hda1,然后打上可引导标记,接着存盘,会提示你是否确定对磁盘进行分区,当然要输入yes确定了.等待片刻后分区命令界面还会弹出来,此时我们的分区已经准备好了,所以选择quit推出分区命令。
6.现在需要在hda1分区上创建文件系统。命令为#mkfs.ext2 /dev/hda1。
7.将我们的分区挂在/mnt上,命令#mount /dev/hda1 /mnt.
8.进入/mnt目录并创建一个新目录,命令:
#cd /mnt
#mkdir pkg(你也可以把它叫着其他的名字)
9.在创建一个目录: #mkdir -p /mnt/boot/grub
10.进入pkg目录并解开LiveCD中自带的grub原码包 :
#cd /mnt/pkg
#tar xvf /lfs-sources/grub-0.97.tar.bz2(这里的版本不一定正确,自己看着办吧)
#cd grub-0.97
#./configure && make
#cp stage1/stage1 /mnt/boot/grub/
#cp stage2/xfs_stage1_5 /mnt/boot/grub/
#cp stage2/stage2 /mnt/boot/grub/
#grub/grub
grub>root (hd0,0)
grub>setup (hd0)
grub>quit
#cd ..
#rm -rf gurb-0.97
#cat > /boot/grub/menu.lst << end
default 0
timeout 10
color green/black light-green/black
title MiniLinux
root (hd0,0)
kernel /boot/bzImage root=/dev/hda1 rw
end
11.安装bash:
#mkdir /mnt/bin
#cd /mnt/pkg
#tar xvf /lfs-sources/bash-3.1.tar.bz2(还是那句话,版本不一定正确)
#cd bash-3.1
#./configure --without-bash-malloc
#make LDFLAGS="-static"
#cp bash /mnt/bin/
#cd ..
#rm -rf bash-3.1
12.创建脚本init:
#mkdir /mnt/sbin
#cat > /mnt/sbin/init << end
#!/bin/bash
echo
echo
echo "#################################"
echo "# Hello Man! #"
echo "#################################"
echo
echo (不要怀疑这里的echo命令,因为我们已经安装了bash,而该命令是bash内建的命令之一)
/bin/bash
end
#chmod a+x /mnt/sbin/init
13.创建设备文件目录:
#mkdir /mnt/dev
#这个命令我就不写了,就是将/dev/目录下边除了shm目录以外所有的都拷贝
到/mnt/dev/目录下,这不是必须,只是为了简单。
14.编译内核,不使用模块,而是将所有要用到的全部编入内核,将编译好的内核bzImage拷贝到/mnt/boot/下.
到这里你的系统就已经可以启动了,但是还不能干任何事,除了bash内建的命令可以使用以外
没有其他的命令,即使最平常的ls命令也找不到。下一步我们就是要让我们的系统可以上网和使用我们平
时最常用的命令。
下一步就是为我们的系统加入常用的命令:
参照“http://www.linuxsir.cn/bbs/archive/index.php/t-159887.html“制作babylinux的方法安装一个busybox到我们的系统,但其中需要调整两条,1.不启用busybox的init和ash,因为我们使用自己的init脚本和bash,所以在安装的时候只需要将_install下的bin和sbin目录搬到我们的/mnt下就好了,注意别把我们开始安装在/mnt/bin和/mnt/sbin下的东西覆盖掉了!
现在我们的系统中需要的命令几乎都可以找到了,(如果你在编译busybox的时候选择了的话)我们现在可以使用ifconfig命令来配置我们的网络,然后就可以使用telnet连接到学校的bbs上了 ,不过只支持英文的。
接下来你还可以为你的系统添加一些其他的东西,如iptables防火墙,我已经添加了,而且把busybox给删掉了,只使用防火墙,系统很小的,试试吧! |
|