自己动手做一个小Linux

RHEL 光盘镜像下载地址:
http://www.verycd.com/topics/2766897/
内核下载地址:
http://www.kernel.org/
其他零部件地址另附
 
 
   注意 : 下面有些长命令要直接拷贝到终端运行的话注意核对,以免命令错误。
 
 
准备:安装 develop 环境(用 yum grouplinst ),加一块新硬盘,分区,格式化,挂载如下;
mount /dev/hda1 /mnt/boot/
mount /den/hda1 /mnt/sysroot/
此作为新的 Linux 的生产目录。
 
把内核拷贝到 /usr/src , 解压 tar �Cjxf linux-2.6. …… .tar.bz2 ( 若后缀是 tar.gz, 则命令为 tar �Czxf linux2.6 …… .tar.gz) ,再创建软连接 linux:------ à
ln �Csv linux- 2.6.34 .1 linux
 
cd linux    进行 make    , 为减少麻烦可以把 准备好的 kernel-kernel- 2.6.20 -i486.cfg 拷贝到 linux 目录下,命令为
 
cp …… /usr/src/linux/      此时要处在 linux 目录下,然后再 make menuconfig , 在这个的基础上编辑内核。
 
make SUBDIR=arch   表示只编译内核相关的目录。
 
把编译好的内核复制到 /mnt/boot/
cp arch/x86/boot/bzImage /mnt/boot/      ( 把内核放到 boot 里,启动时用 )
 
然后改轮到 busybox 了。
cd ..  回到上一目录,即 src, busybox 放到这里,解压(方法同解压内核一样),然后 cd busybox- 1.16.1    ( 进入到 busybox ) 然后 make menuconfig
 
选中 Busybox Settings �C> Build Options �C> Build Busybox as a static binary
(按空格键,出现 * 就是选中)
  Busybox Settings �C>Installation Options - à /_install) BusyBox installation prefix
回车,把里面的默认路径 ./_install  改成   /mnt/sysroot  . 这就行了,退出、保存。然后 make make install (也可以单独 make install . 生成的文件就自动放到新硬盘上了。( make 是把带 M 的也编上了, 单独   make install 仅把带 * 的编上 , 不编带 M 的)
 
# cd /mnt/sysroot
# mv linuxrc init
# mkdir proc sys etc/init.d var/log dev tmp �Cpv   ( 创建系统文件夹 )
# vim etc/init.d/rcS     (系统初始化脚本)
写入内容如下:
#!/bin/sh
echo -e "            Welcome to  \033[ 31m ^-^ Linux ^-^\033[ 0m             "
 
echo -e "Mounting the filesystem .................[  \033[32mOK\033[ 0m   ]"
mount -t proc proc /proc
mount -t sysfs sysfs /sys
 
#echo -e "Creating the files of device ............[  \033[32mOK\033[ 0m   ]"
#mdev -s
 
 
#echo -e "Starting the log daemon .................[  \033[32mOK\033[ 0m   ]"
#syslogd
#klogd
 
echo -e "Configuring loopback interface ..........[  \033[32mOK\033[ 0m   ]"
ifconfig  lo  127.0.0.1/24
 
echo -e "Configuring eth0 interface ..............[  \033[32mOK\033[ 0m   ]"
 
#echo -e "Remounting the root filesystem ..........[  \033[32mOK\033[ 0m   ]"
#mount  -o  remount,rw  /
 
结束。前面带 # 的是暂时不用的。
 
 
# chmod +x etc/init.d/rcS      (加入执行权限)
 
#vim etc/inittab               init 进程启动的时候必读的文件,以此定义后面做什么)
写入内容如下:
::sysinit:/etc/init.d/rcS      (引导载入 init.d/rcS 脚本,初始化系统)
console::respawn:-/bin/sh   (启动控制台,打印控制符,让人能执行命令)
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a �Cr
 
结束。注意,复制上面的命令到终端时时不要把括号中的文字一同复制了。  
 
 
#grub-install --root-directory=/mnt /dev/hda   ( 创建 grub)
#ls /mnt/boot    应该显示有 grub
 
#vim ../boot/grub/grub.conf        ( 创建 grub 配置文件 )
写入内容如下:
default      0
timeout     3
coler     light-green/black light-magenta/black
title      Oranix ( 2.6.34 .1-^0^Linux^0^)
          root (hd0,0)
          kernel /bzImage ro root=/dev/ram0 quiet
          initrd /initrd.gz
 
结束。
#find . | cpio --quiet �CH newc �Co | gzip -9 > ../boot/initrd.gz
( 查找   当前目录下所有文件    归档    静默模式   编码模式   通过 gzip 压缩比为 9 输出到 /boot/initrd.gz   . 简单的说把当前目录( /mnt/sysroot )打包起来 做成 initrd.gz )
 
#sync     ( 同步一下 )
 

结束了。
 

你可能感兴趣的:(linux,安装,内核,编译,休闲)