热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

当前位置 :| 主页>Linux发行版>LFS>

功能单一,体积小巧的LFS完整版(5M大小的Apache服务器)

来源:linuxsir.org 作者:youbest 时间:2007-09-29 Tag: 点击:


第六章 制作目标系统
  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 EXTRAS=extras/run_directory
    ./udevstart
    cd ..
    rm -rf udev-076
  10. grub-0.97
    tar xvf grub-0.97.tar.bz2
    cd grub-0.97
    ./configure && make
    cp stage1/stage1 /boot/grub/
    cp stage2/xfs_stage1_5 /boot/grub/
    cp stage2/stage2 /boot/grub/
    grub/grub
      root (hd0,0)
      setup (hd0)
      quit
    cd ..
    rm -rf gurb-0.97
    cat > /boot/grub/menu.lst << “EOF”
    default 0
    timeout 10
    color green/black light-green/black

    title miniLFS
    root (hd0,0)
    kernel /boot/bzImage root=/dev/hda1 rw
    EOF
  11. 编译内核
    tar xvf linux-2.6.14.3.tar.bz2
    cd linux-2.6.14.3
    make menuconfig
    make
    cp arch/i386/boot/bzImage /boot/
    cd ..
  12. bash-3.0
    tar xvf bash-3.0.tar.bz2
    patch -Np1 -i ../bash-3.0-fixes-3.patch
    patch -Np1 -i ../bash-3.0-avoid_WCONTINUED-1.patch
    ./configure --prefix=/usr --bindir=/bin --without-bash-malloc
    make LDFLAGS="-static"
    rm -rf /bin/bash
    cp bash /bin/
    cd ..
    rm -rf bash-3.0
  13. dhcpcd
    tar xvf dhcpcd-1.3.22.tar.gz
    cd dhcpcd-1.3.22
    patch -Np1 -i ../dhcpcd-1.3.22-pl4-fhs-1.patch &&
    ./configure --prefix="" --sysconfdir=/var/lib &&
    make LDFLAGS="-static"
    cp dhcpcd /bin/
    cd ..
    rm -rf dhcpcd-1.3.22
最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册