手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

BabyLinux制作过程详解(转贴)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

Show verbose applet usage messages
Runtime SUID/SGID configuration via /etc/busybox.conf

Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文档,运行时才单独于其他函数库.否则必需要其他库文档才能运行,在单一个linux内核不能使他正常工作.

Installation Options
Don't use /usr
这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.

其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就能够了.

配置好后退出并保存.

4,编译并安装busybox

#make
#make install

编译好后在busybox目录下生成子目录_install,里面的内容:
drwxr-xr-x 2 root root 4096 11月 24 15:28 bin
lrwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
其中可执行文档busybox在bin目录下,其他的都是指向他的符号链接.
我编译出来的busybox可执行文档是935K,加上符号链接,整个_install目录是952K.加上845K的内核不是已超过1440K了吗?别担心,我们将对整个根文档系统做大幅度的压缩.


八,制作根文档系统

1,基本目录结构

#cd /babylinux/rootfs
#mkdir etc usr var tmp proc home root dev
其中etc,proc和dev是一定要建的,bin和sbin不用建,因为busybox中已有了.
其他的能够象征性的建几个就能够了.

拷贝busybox
#cp -R /babylinux/busybox-1.00/_install/* /babylinux/rootfs/

2,建立设备文档名

#cd /babylinux/rootfs/dev
您能够用mknod手工建立,也能够直接从原系统的/dev目录下拷贝过来.

手工建立的方法:
#ls -l /dev/console
crw------- 1 root root 5, 1 11月 30 09:02 /dev/console
这样就查看到了console设备的主设备号是5,辅设备号是1,是个标记为C的字符设备.
于是,我们能够用mknod建立一个同样的设备文档:

#mknod console c 5 1

但是手工方法建立太麻烦了,通常直接从/dev下把需要的设备文档拷贝过来.
这些设备文档是特别文档,在拷贝时一定要加上-R参数才能拷贝.

#cp -R /dev/console ./
#cp -R /dev/null ./
#cp -R /dev/zero ./
...

以下是我认为需要的设备名:
cdrom fd0 hda14 hda4 hdb11 hdb19 hdc hdc16 hdc6 hdd13 hdd3 loop2 ram2
console fd0H1440 hda15 hda5 hdb12 hdb2 hdc1 hdc17 hdc7 hdd14 hdd4 loop3 tty0
fb hda hda16 hda6 hdb13 hdb3 hdc10 hdc18 hdc8 hdd15 hdd5 loop4 tty1
fb0 hda1 hda17 hda7 hdb14 hdb4 hdc11 hdc19 hdd hdd16 hdd6 loop5 tty2
fb1 hda10 hda18 hda8 hdb15 hdb5 hdc12 hdc2 hdd1 hdd17 hdd7 null tty3
fb2 hda11 hda19 hdb hdb16 hdb6 hdc13 hdc3 hdd10 hdd18 hdd8 ram tty4
fb3 hda12 hda2 hdb1 hdb17 hdb7 hdc14 hdc4 hdd11 hdd19 initctl ram0 tty5
fb4 hda13 hda3 hdb10 hdb18 hdb8 hdc15 hdc5 hdd12 hdd2 loop1 ram1 zero

其中,fd0,hda,ram,ram1,tty1,null,zero,loop1,fb0,fb等是必备的.
其他的hda,hda1,hdb等能够根据实际需要决定.但是上表中的选择是比较合理的,即能满足大部分的需要,有没有不用的设备浪费空间.注意,千万不要把/dev下的设备全拷贝过来,那将产生大约420K的/dev目录,这对babylinux来说太大了.

3,建立etc目录下的配置文档

busybox.conf group inittab motd passwd resolv.conf shadow-
fstab init.d issue mtab profile shadow

其中init.d是个目录,从busybox-1.00源代码目录下拷贝过来.

#cp -R /babylinux/busybox-1.00/examples/bootflopyp/etc/init.d /babylinux/rootfs/etc/

busybox.conf是个空文档.
其他文档的内容如下:

fstab
/dev/fd0 / ext2 defaults 0 0
none /proc proc defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
group
root:x:0:root
inittab
::sysinit:/etc/init.d/rcS

::askfirst:/bin/sh
tty2::respawn:/bin/getty 38400 tty2
tty3::respawn:/bin/getty 38400 tty3
tty4::respawn:/bin/getty 38400 tty4

# Stuff to do when restarting the init process
::restart:/bin/init

# Stuff to do before rebooting

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!