- #mount /dev/hda1 /mnt/boot/
- #mount /dev/hda2 /mnt/sysroot/
- #mount -a
- # cd /usr/src
- # tar jxvf linux-2.6.38.5.tar.bz2
- # ln -sv linux-2.6.38.5 linux
- # cd linux
- # make SUBDIR=arch/
- # cp arch/x86/boot/bzImage /mnt/boot
- # make menuconfig
- # grub-install --root-directory=/mnt /dev/hda
- default 0
- timeout 3
- color light-green/black light-magenta/black
- title MageEdu Linux (2.6.38.5)
- root (hd0,0)
- kernel /bzImage ro root=/dev/hda2 quiet
- initrd /initrd.gz
- # tar -jxvf busybox-1.20.2.tar.bz2
- # cd busybox-1.20.2
- # mkdir include/mtd
- # cp /usr/src/linux/include/mtd/ubi-user.h include/mtd/
- # make menuconfig
- #mkdir /tmp/initrd
- #cp _install/* /tmp/initrd/ -a
- # cd /tmp/initrd/
- # mkdir -pv proc sys etc/init.d tmp dev mnt/sysroot
- # mknod dev/console c 5 1
- # mknod dev/null c 1 3
- # rm linuxrc
- # vim init
- #!/bin/sh
- mount -t proc proc /proc
- mount -t sysfs sysfs /sys
- insmod /lib/modules/jbd.ko
- insmod /lib/modules/ext3.ko
- mdev -s
- mount -t ext3 /dev/hda2 /mnt/sysroot
- exec switch_root /mnt/sysroot /sbin/init
- # cp /lib/modules/2.6.18-308.el5/kernel/fs/jbd/jbd.ko lib/modules/
- # cp /lib/modules/2.6.18-308.el5/kernel/fs/ext3/ext3.ko lib/modules/
- # mkdir -pv proc sys etc/rc.d/init.d tmp dev/pts boot var/log usr/lib
- # mknod dev/console c 5 1
- # mknod dev/null c 1 3
- # vim etc/rc.d/rc.sysinit
- #!/bin/sh
- echo -e "\tWelcome to \033[31mMageEdu\033[0m Linux"
- echo -e "Remounting the root filesystem ..."
- mount -t sysfs sysfs /sys
- mount -o remount,rw /
- echo -e "Creating the files of device ..."
- mdev -s
- echo -e "Mounting the filesystem ..."
- mount -a
- swapon -a
- echo -e "Starting the log daemon ..."
- syslogd
- klogd
- echo -e "Configuring loopback interface ..."
- ifconfig lo 127.0.0.1/24
- ifconfig eth0 172.16.100.9/16
- chmod +x etc/init.d/rc.sysinit
- #cd /mnt/sysroot
- # rm -f linuxrc
- 为init进程提供配置文件:
- # vim etc/inittab
- 添加如下内容:
- ::sysinit:/etc/rc.d/rc.sysinit
- console::respawn:-/bin/sh
- ::ctrlaltdel:/sbin/reboot
- ::shutdown:/bin/umount -a -r
- # vim etc/fstab
- 添加如下内容:
- sysfs /sys sysfs defaults 0 0
- proc /proc proc defaults 0 0
- /dev/hda1 /boot ext3 defaults 0 0
- /dev/hda2 / ext3 defaults 1 1
- # vim etc/syslog.conf
- *.info /var/log/messages
- # cd /mnt/sysroot
- ## cp busybox-1.20.2/_install/* /mnt/sysroot/ -a
- # mkdir -pv proc sys etc/rc.d/init.d tmp dev/pts boot var/log usr/lib
- # mknod dev/console c 5 1
- # mknod dev/null c 1 3
- #cd /mnt/sysroot
- # rm -f linuxrc
- 为init进程提供配置文件:
- # vim etc/inittab
- 添加如下内容:
- ::sysinit:/etc/rc.d/rc.sysinit
- console::respawn:-/bin/sh
- ::ctrlaltdel:/sbin/reboot
- ::shutdown:/bin/umount -a -r
- # vim etc/rc.d/rc.sysinit
- 添加如下内容:
- #!/bin/sh
- echo -e "\tWelcome to \033[31mMageEdu\033[0m Linux"
- echo -e "Remounting the root filesystem ..."
- mount -t sysfs sysfs /sys
- mount -o remount,rw /
- echo -e "Creating the files of device ..."
- mdev -s
- echo -e "Mounting the filesystem ..."
- mount -a
- swapon -a
- echo -e "Starting the log daemon ..."
- syslogd
- klogd
- echo -e "Configuring loopback interface ..."
- ifconfig lo 127.0.0.1/24
- ifconfig eth0 172.16.100.9/16
- # vim etc/fstab
- 添加如下内容:
- sysfs /sys sysfs defaults 0 0
- proc /proc proc defaults 0 0
- /dev/hda1 /boot ext3 defaults 0 0
- /dev/hda2 / ext3 defaults 1 1
- # cd /mnt/sysroot
- 将 etc/inittab文件改为如下内容:
- ::sysinit:/etc/init.d/rc.sysinit
- tty1::askfirst:/bin/sh
- tty2::askfirst:/bin/sh
- tty3::askfirst:/bin/sh
- tty4::askfirst:/bin/sh
- tty5::askfirst:/bin/sh
- tty6::askfirst:/bin/sh
- ::ctrlaltdel:/sbin/reboot
- ::shutdown:/bin/umount -a -r
- 1、为目标主机建立passwd帐号文件
- # cd /mnt/sysroot
- # vim etc/passwd
- 添加如下内容:
- root:x:0:0::/root:/bin/sh
- 而后为root用户创建“家”目录:
- # mkdir root
- 2、为目标主机建立group帐号文件
- # vim etc/group
- 添加如下内容:
- root:x:0:
- 3、为目标主机建立shadow影子口令文件,这里采用直接复制宿主机的shadow文件中关于root口令行的行来实现
- # grep "^root" /etc/shadow > etc/shadow
- ::sysinit:/etc/init.d/rc.sysinit
- ::respawn:/sbin/getty 9600 tty1
- ::respawn:/sbin/getty 9600 tty2
- ::respawn:/sbin/getty 9600 tty3
- ::respawn:/sbin/getty 9600 tty4
- ::respawn:/sbin/getty 9600 tty5
- ::respawn:/sbin/getty 9600 tty6
- ::shutdown:/bin/umount -a -r
- ::ctrlaltdel:/sbin/reboot
- # vi /etc/issue
- 添加如下内容:
- Welcome to MageEdu Linux(http://www.magedu.com)...
- Kernel \r
- # mkdir /etc/sysconfig
- # vi /etc/sysconfig/network
- 添加如下内容:
- HOSTNAME=marion.example.com
- # vi /etc/init.d/rc.sysinit
- 在文件尾部添加如下行:
- HOSTNAME=
- [ -e /etc/sysconfig/network && -r /etc/sysconfig/network ] && source /etc/sysconfig/network
- [ -z ${HOSTNAME} ] && HOSTNAME="localhost"
- /bin/hostname ${HOSTNAME}
- # tar xf dropbear-2013.56.tar.bz2
- # cd dropbear-2013.56
- # ./configure
- # make
- # make install
- #!/bin/bash
- #
- read -t 30 -p "Target System Directory[/mnt/sysroot]: " DEST
- DEST=${DEST:-/mnt/sysroot}
- libcp() {
- LIBPATH=${1%/*}
- [ ! -d $DEST$LIBPATH ] && mkdir -p $DEST$LIBPATH
- [ ! -e $DEST${1} ] && cp $1 $DEST$LIBPATH && echo "copy lib $1 finished."
- }
- bincp() {
- CMDPATH=${1%/*}
- [ ! -d $DEST$CMDPATH ] && mkdir -p $DEST$CMDPATH
- [ ! -e $DEST${1} ] && cp $1 $DEST$CMDPATH
- for LIB in `ldd $1 | grep -o "/.*lib\(64\)\{0,1\}/[^[:space:]]\{1,\}"`; do
- libcp $LIB
- done
- }
- read -p "Your command: " CMD
- until [ $CMD == 'q' ]; do
- ! which $CMD && echo "Wrong command" && read -p "Input again:" CMD && continue
- COMMAND=` which $CMD | grep -v "^alias" | grep -o "[^[:space:]]\{1,\}"`
- bincp $COMMAND
- echo "copy $COMMAND finished."
- read -p "Continue: " CMD
- done
- 编辑/mnt/sysroot/etc/fstab,添加如下一行:
- devpts /dev/pts devpts mode=620 0 0
- 创建所需要的目录:
- # mkdir /mnt/sysroot/dev/pts
- # mkdir /mnt/sysroot/etc/dropbear
- # dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
- # dropbearkey -t rsa -f /etc/dropbear/dropbear_dss_host_key
- # cat >> /mnt/sysroot/etc/shells << EOF
- /bin/sh
- /bin/ash
- /bin/hush
- /bin/bash
- EOF
- # cat >> /mnt/sysroot/etc/nsswitch.conf << EOF
- passwd: files
- shadow: files
- group: files
- hosts: files dns
- EOF
- 复制所需要的库文件:
- # cp -d /lib/libnss_files* /mnt/sysroot/lib/
- # cp -d /usr/lib/libnss3.so /usr/lib/libnss_files.so /mnt/sysroot/usr/lib/