小linux的製作

   先創建一個sdb磁盤。創建二個分區 # echo '
> n
>p
>1與2
>
>+512M
>w ' | fdisk /dev/sdb &> /dev/null
 

1、先格式化 /dev/sdb1 與 /dev/sdb2

使用mke2fs 命令;

2、掛載;mount  /dev/sdb1 /mnt/boot /、

               mount  /dev/sdb2  /mnt/sysroot/

3、安裝grub; grub-install   --root-direatory=/mnt   /dev/sdb

4、複製內核; cp /boot/vmlinuz-2.6.18-164.el5  ./vmlinuz

5、initrd ; mkdir  akon   創建新目錄

       zcat  /boot/initrd-2.6.18-164.el5.img | cpio -id

然後在vim init 中找到  mkrootdev -t ext3 -o default  把最後改成 /dev/sda2

在封裝;find  .  | cpio -o -H newc --quit  | gzip -9 > /mnt/boot/initrd.gz

6、 創建sysroot文件系統; mkdir var home proc sys dev srv mnt media tmp usr opt misc...

7、複製文件; 寫個腳本vim.wc.sh

#!/bin/bash
#

function BCP {
 TARGET=/mnt/sysroot

 COMMAND=`which $1 | grep -o "/.*"`
CMDPATH=${COMMAND%/*}

 [ -d $TARGET$CMDPATH ] || mkdir -p $TARGET$CMDPATH
 [ -e $TARGET$COMMAND ] || cp $COMMAND $TARGET$CMDPATH

for LIBFILE in `ldd $COMMAND | grep -o "/.*lib[^[:space:]]*"`; do
LIBPATH=${LIBFILE%/*}
[ -d $TARGET$LIBPATH ] || mkdir -p $TARGET$LIBPATH
[
sys dev srv mnt media tmp usr opt misc

e $TARGET$LIBFILE ] || cp $LIBFILE $TARGET$LIBPATH
done
}

 while true;do

read -p "A Command:" MYCMD
case $MYCMD in
q|Q)
echo "quit.."
exit 0
;;
*)
! which $MYCMD &> /dev/null && echo "Wrong command.." && continue
BCP $MYCMD
;;
esac
done

然後執行腳本、輸入 ls 、hostname、init、bash、sync、mount、vim、insmod、rmmod、ifconfig、ping、halt

8、編輯配置文件;cd  /mnt/boot  切換至目錄

    vim grub/grub.conf

 default=0
timeout=5
tile linux
root(hd0,0)
kernel/vmlinuz ro root=/dev/sda2
initrd /initrd.gz
 

9、切換至 、cd  /mnt/sysroot    需要rc.sysinit 腳本

 切換 cd   /etc  下 編寫 vim  initab

id:3:initdefault:
si::sysinit:etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc.sysdone

 vim etc/rc.d/rc.sysinit
#! /bin/bash
#
echo -e "\tWelcome to linux"
/bin/bash

未完待續。。。。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章