|
|

楼主 |
发表于 2006-6-24 20:14:27
|
显示全部楼层
我做这个小系统是想做一个iptables的防火墙,参照的是youbest版主的"功能单一,体积小巧的LFS完整版(5M大小的Apache服务器)" 现将全过程写出,请各位在时间允许的情况下,给予帮助.谢谢!
1.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hdc1 $LFS
2.恢复原来的"构建临时编译环境"时备份.
cd /mnt
tar jxvf lfs.tar.bz2
现在/dev/hdc1上有了临时编译环境.
3.建立工具链的链接
ln -sv $LFS/tools /
4、建立用户
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd lfs
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources
su - lfs
echo 'exec env -i HOME=$HOME TERM=$TERM PS1='\''\u:\w\$ '\'' /bin/bash' > ~/.bash_profile && \
echo 'set +h' > ~/.bashrc && \
echo 'umask 022' >> ~/.bashrc && \
echo 'LFS=/mnt/lfs' >> ~/.bashrc && \
echo 'LC_ALL=POSIX' >> ~/.bashrc && \
echo 'PATH=/tools/bin:/bin:/usr/bin' >> ~/.bashrc && \
echo 'export LFS LC_ALL PATH' >> ~/.bashrc && \
source ~/.bash_profile
su root
第六章 制作目标系统
1. 加载需要的文件系统
mkdir -pv $LFS/{proc,sys}
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vft tmpfs tmpfs $LFS/dev
mount -vft tmpfs tmpfs $LFS/dev/shm
mount -vft devpts -o gid=4,mode=620 devpts $LFS/dev/pts
2. 进入工具链系统
chroot "$LFS" /tools/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h
3. 设置目录属性
chown -R 0:0 /tools
4. 创建目标系统目录
install -d /{bin,etc,dev,sbin,proc,sys,var/{lib,run},srv/{conf,htdocs,logs},boot/grub,tmp}
5. 建立临时链接
ln -sv /tools/bin/{bash,cat,pwd,stty} /bin
ln -sv bash /bin/sh
6. 建立目标系统组和用户
cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
nobody:x:100:100:nobody:/home/nobody:/bin/bash
EOF
cat > /etc/group << "EOF"
root:x:0:
nobody:x:100:
EOF
exec /tools/bin/bash --login +h
7. 创建/dev设备文件
mknod -m 600 /dev/console c 5 1
mknod -m 666 /dev/null c 1 3
mknod -m 666 /dev/zero c 1 5
mknod -m 666 /dev/ptmx c 5 2
mknod -m 666 /dev/tty c 5 0
mknod -m 444 /dev/random c 1 8
mknod -m 444 /dev/urandom c 1 9
chown -v root:tty /dev/{console,ptmx,tty}
ln -sv /proc/self/fd /dev/fd
ln -sv /proc/self/fd/0 /dev/stdin
ln -sv /proc/self/fd/1 /dev/stdout
ln -sv /proc/self/fd/2 /dev/stderr
ln -sv /proc/kcore /dev/core
mkdir -v /dev/pts
mkdir -v /dev/shm
mount -vt devpts -o gid=4,mode=620 none /dev/pts
mount -vt tmpfs none /dev/shm
8. 进入源代码目录
cd /sources
9. udev-0.76
tar xvf udev-076.tar.bz2
cd udev-076
make LDFLAGS="-static" EXTRAS=extras/run_directory
./udevstart
cd ..
rm -rf udev-076
10. grub-0.97
11. 编译内核
12. bash-3.0
13. Iana-Etc-2.00
14. Inetutils-1.4.2
15.iproute2
16. INIT
cat > /sbin/init.sh << "EOF"
/bin/bash
EOF
chmod a+x /sbin/init.sh
17. 去除调式符
strip --strip-all /bin/*
------------------------------------
设置bash下的键盘功能键设置
------------------------------------
cat > /etc/inputrc << "EOF"
set horizontal-scroll-mode Off
set meta-flag On
set input-meta On
set convert-meta Off
set output-meta On
set bell-style none
"\eOd": backward-word
"\eOc": forward-word
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
"\eOH": beginning-of-line
"\eOF": end-of-line
"\e[H": beginning-of-line
"\e[F": end-of-line
EOF
------------------------------------
设置Bash Shell启动文件(The Bash Shell Startup Files)
------------------------------------
cat > /etc/profile << "EOF"
# Begin /etc/profile
export LANG=zh_CN.GB18030
export INPUTRC=/etc/inputrc
# End /etc/profile
EOF
------------------------------------
设置本地网络名
------------------------------------
echo "HOSTNAME=mylinux" > /etc/sysconfig/network
------------------------------------
设置hosts文件
------------------------------------
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (no network card version)
127.0.0.1 mylinux localhost
# End /etc/hosts (no network card version)
EOF
------------------------------------
设置网络的静态地址
------------------------------------
cd /etc/sysconfig/network-devices &&
mkdir -v ifconfig.eth0 &&
cat > ifconfig.eth0/ipv4 << "EOF"
ONBOOT=yes
SERVICE=ipv4-static
IP=192.168.1.1
GATEWAY=192.168.1.2
PREFIX=24
BROADCAST=192.168.1.255
EOF
**注意:IP、GATEWAY、BROADCAST的地址根据自己的实际情况设置。
------------------------------------
设置DNS
------------------------------------
cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf
nameserver 你的首个DNS的地址
nameserver 你的第二DNS的地址
# End /etc/resolv.conf
EOF
将menu.lst连接到/etc目录下
mkdir -v /etc/grub
ln -sv /boot/grub/menu.lst /etc/grub
退出制作环境:
logout
以上是我做的全过程,不知是哪错了,请给予帮助. |
|