码迷,mamicode.com
首页 > 系统相关 > 详细

redhat 5 系列 diy mini linux 之一

时间:2016-06-28 00:50:02      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:diy mini linux


用户空间访问、监控内核的方式:

/proc,/sys

伪文件系统:

/proc/sys:此目录中的文件很多事可读写的

/sys/:某些文件可写


设定内核参数值得方法:

echo VALUE>/proc/sys/TO/SOMEFILE

sysctl -w kernel.hostname=HOSTNAME     这里的写法相当于

    echo HOSTNAME > /proc/sys/kernel/hostname 

永久有效:/etc/sysctl.conf 修改完立即生效: sysctl -p    

sysctl -a:显示所有内核参数以及值


内核模块管理:

    lsmod:查看

    modprobe MOD_NAME 装载某模块

    modprobe -r MOD_NAME 卸载某模块

    modinfo:查看模块的具体信息

    insmod /PATH/TO/MODULE_FILE    装载模块

    rmmod    MOD_NAME

    depmod    /PATH/TP/MODILES_DIR


内核的编译:

编译的3种选择:

    1.不使用此功能

    2.编译成内核模块

    3.编译进内核


如何手动编译内核:

    make gconfig:Gnome桌面使用,需安装图形开发库工具

    make kconfig:KDE桌面使用

    make menuconfig:文件界面

(默认我们选择完后,会在编译内核的目录下生成.config文件,不想一个一个选的话也可以拷贝/boot/config-`uname -r` 文件到当前,并更名为.config,然后再选择修改)

    make

    make module_install

    make install


二次编译时清理,清理前,有需要的话记得备份.config

make clean      删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译

make mrproper   删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件
make distclean  mrproper删除的文件, 加上编辑备份文件和一些补丁文件。


下面开始diy mini linux

  1. 給虚拟机挂载新的硬盘

    过程略


  2. 给新硬盘分区、格式化、并挂载

    技术分享

    mke2fs -j /dev/sdb1

    mke2fs -j /dev/sdb2

    mkdir /mnt/{boot,sysroot} -p

    mount /dev/sdb1  /mnt/boot

    mount /dev/sdb2  /mnt/sysroot


  3. 安装boot分区并提供grub.conf文件

    grub-install  --root-directory=/mnt/ /dev/sdb

    (这里的目录指定的是新硬盘boot目录所在的父目录,完成后会在boot里面生成grub文件目录)

     技术分享



4.复制内核和initrd文件到/boot下

    cp /boot/vmlinuz-`uname -r`  /mnt/boot/vmlinuz

    (initrd文件不能直接用,需要修改几个地方,因此我们先解压到某个目录)

    mkdir /mnt/init

    cd /mnt/init

     zcat  /boot/initrd-`uname -r`.img |cpio -id

    vi /mnt/init/init修改以下几项:

    技术分享

    (lvm我们暂时不需要用到,所以先注销掉,mkrootdev里面的设备要注意一点,我们当前系统上已有sda,所以识别新硬盘为sdb,但是新硬盘单独用的时候会被识别为sda,而根文件系统所在分区为第2个分区,所以这里要替换成/dev/sda2)

    find . |cpio -H NEWC --quiet -o|gzip -9 >/mnt/boot/initrd.img


5.创建根文件系统,并拷贝程序:

    mkdir bin sbin boot etc/{rc.d,init.d} usr/{local,bin,sbin,lib} lib lib64 proc sys dev tmp home -p

    (为了节约时间,写了个脚本,直接拷贝 bash 、init、ls等命令)

技术分享

技术分享

测试是否可以chroot

技术分享


6.提供配置文件inittab,和rc.sysinit

    vi  /mnt/sysroot/etc/inittab添加如下两行即可:

        id:3:initdefault:

        si::sysinit:/etc/rc.d/rc.sysinit


    vi  /mnt/sysroot/etc/rc.d/rc.sysinit

    技术分享

    chmod +x /mnt/sysroot/etc/rc.d/rc.sysinit


7.至此,一个不怎么完善的mini linux 已经可以启动了,下一篇再谈谈怎么执行运行级别人物和挂载根分区为读写,让系统可以开关机等,现在先测试,应该可以启动了的。

技术分享

技术分享


redhat 5 系列 diy mini linux 之一

标签:diy mini linux

原文地址:http://linzb.blog.51cto.com/5192423/1793462

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!