五.制作文件系统 (这一步主要参http://blog.linuxmine.com/html/34/6534_itemid_861.html 谢谢GuCuiwen)
这是比较麻烦的一步,我弄了好久,看了挺多网上的文章,但总是不对。
建一个目录rootfs 用来装文件系统
#mkdir etc usr var tmp proc home root dev //建立文件目录
其中etc,proc和dev是一定要建的,bin和sbin可以拷贝busybox生成的,其他的可以象征性的建几个就可以了.
拷贝busybox下的_install文件夹到rootfs下
#cp -R busybox-1.00/_install/* rootfs/
在dev文件夹下建立设备文件名:
#cd rootfs/dev
为了方便我们直接从原系统的/dev目录下拷贝过来.一定要叫-r参数
#cp -R /dev/console ./
#cp -R /dev/null ./
#cp -R /dev/zero ./
...
其中,fd0,hda,ram,ram1,tty1,null,zero,loop1,fb0,fb,tty(这个GuCuiwen文章中没有,但我觉得要加)等是必备的.
其它的hda,hda1,hdb等可以根据实际需要决定.但是上表中的选择是比较合理的,即能满足大部分的需要,
建立etc目录下的配置文件
busybox.conf group inittab motd passwd resolv.conf shadow-
fstab init.d issue mtab profile shadow
其中init.d是一个目录,从busybox-1.00源代码目录下拷贝过来.
#cp -R busybox-1.00/examples/bootflopyp/etc/init.d rootfs/etc/
把init.d拷过来后要更改其中的文件rcS:
请确保这个文件是可执行的,否则请改成可执行的:
#chmod u x rcS
用记事本打开rcS的内容:
#! /bin/sh
mount -o remount,rw /
/bin/mount -a
>/etc/mtab
echo
echo
echo
echo
echo -en "\t\tWelcom to lxh Linux\\033][0;39m\n"
hostname LxhLinux
echo后面跟的都是系统可以自己作相应的修改.
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: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
::ctrlaltdel:/bin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/bin/swapoff -a
issue
Baby Linux release 0.1
motd
mtab
passwd
root::0:0:root:/root:/bin/ash
profile
# /etc/profile: system-wide .profile file for the Bourne shells
echo
echo
export PS1="[\u@\h \w]\$"
echo "Done"
alias ll='ls -l'
alias du='du -h'
alias df='df -h'
alias rm='rm -i'
echo
resolv.conf
nameserver 192.168.1.12
shadow
root1$$adltAB9Sr/MSKqylIvSJT/:12705:0:99999:7:::
shadow-
root1$DWU.tenP$B7ANiXoGoiZMwJR6Ih8810:12705:0:99999:7:::