设为首页 收藏本站
查看: 1018|回复: 0

[经验分享] redhat 5 系列 diy mini linux 之一

[复制链接]

尚未签到

发表于 2018-5-10 09:20:27 | 显示全部楼层 |阅读模式
  

  用户空间访问、监控内核的方式:
  /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

  make module_install

  make install

  

  二次编译时清理,清理前,有需要的话记得备份.config
  make clean      删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译
  make mrproper   删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件
make distclean  mrproper删除的文件, 加上编辑备份文件和一些补丁文件。
  

  下面开始diy mini linux

  •   給虚拟机挂载新的硬盘
      过程略
      

  •   给新硬盘分区、格式化、并挂载
    DSC0000.png

      mke2fs -j /dev/sdb1
      mke2fs -j /dev/sdb2
      mkdir /mnt/{boot,sysroot} -p
      mount /dev/sdb1  /mnt/boot
      mount /dev/sdb2  /mnt/sysroot
      

  •   安装boot分区并提供grub.conf文件
      grub-install  --root-directory=/mnt/ /dev/sdb
      (这里的目录指定的是新硬盘boot目录所在的父目录,完成后会在boot里面生成grub文件目录)
    DSC0001.png

      

  

  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修改以下几项:

DSC0002.png

  (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等命令)

DSC0003.png

DSC0004.png

  测试是否可以chroot
DSC0005.png

  

  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
DSC0006.png

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

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

DSC0008.png

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-457915-1-1.html 上篇帖子: RedHat 7 静默安装Oracle 12c 下篇帖子: RedHat 7 KVM虚拟机在两台宿主机之间在线迁移
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表