busybox一个二进制程序,模拟实现众多程序。/bin/busybox查看本机硬件设备信息:#cat/proc/cpuinfo#cat/proc/meminfo#lsusb显示usb接口信息。#lspci显示pci总线

busybox

一个二进制程序,模拟实现众多程序。

/bin/busybox

查看本机硬件设备信息:

#cat /proc/cpuinfo

#cat /proc/meminfo

#lsusb 显示usb接口信息。

#lspci 显示pci总线上的所有设备。

#hal-device 显示所有硬件的详细信息。

hardware abstract layer 硬件抽象层。

编译busybox:

#tar xf busybox.tar.bz2

#cd busybox

#make menuconfig

Busybox Settings

Build Options

Build BusyBox as a static binary(no share libs)(NEW)

Installation Options("make install"behavior)

可以指定.install文件生成的地址。

#make install

若make install报错,则此内核版本缺少部分头文件,需要下载更新的内核。

#tar xf linux-xxx.tar.bz2 -C /usr/src

#cp -r /linux-xxx/include/mtd/ubi-user.h /root/busybox/include/mtd/

使用busybox创建系统内核。

0.挂载相关设备:

#mount /dev/sdb1 /mnt/boot

#mount /dev/sdb2 /mnt/sysroot

1.编译busybox

#tar xf busybox.tar.bz2

#cd busybox

#make menuconfig

Busybox Settings

Build Options

Build BusyBox as a static binary(no share libs)(NEW)

Installation Options("make install"behavior)

可以指定.install文件生成的地址。

#make install

3.制作initrd文件:

1.复制busybox目录下的_install内的全部内容:

#cp -a _install /tmp/busybox

#ls /tmp/busybox

bin linuxrc sbin usr

#rm linuxrc

2.创建相应目录:

#mkdir -p etc dev lib proc mnt/sysroot tmp

3.复制ext3需要的相关库。

#cp /lib/modules/KERNELVERSION/kernel/fs/jbd/jbd.ko /tmp/busybox/lib/modules/

#cp /lib/modules/KERNELVERSION/kernel/fs/ext3/ext3.ko /tmp/busybox/lib/modules/

4.创建init文件。

#vim /tmp/busybox/etc/rc.d/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/sda2 /mnt/sysroot

exec switch_root /mnt/sysroot /sbin/init

#chmod +x init

5.创建2个必要的设备文件。

#mknod /tmp/busybox/dev/console c 5 1

#mknod /tmp/busybox/dev/null c 1 3

6.创建initrd文件:

#cd /tmp/busybox

#find . | cpio -H newc -o --quiet |gzip -9>  /mnt/boot/

initrd.gz

4.从当前系统复制vmlinux文件:

#cp /boot/vmlinux-xxx.el5 /mnt/boot/vmlinux

5.安装grub:

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

6.创建grub.conf文件:

#vim /mnt/boot/grub/grub.conf

default=0

timeout=3

title=my linux

root(hd0,0)

kernel /vmlinux ro root=/dev/hda2 quiet

initrd /initrd.gz

7.创建相关的文件系统:

#cd busybox

#cp _inistall /mnt/sysroot

#cd /mnt/sysroot

#rm linuxrc

#mkdir -pv lib/modules proc sys dev etc/rc.d/init.d root mnt media

#mkdir -pv root tmp home var/{log,run,lock/subsys,tmp} usr/{bin,sbin,local} opt boot

8.创建inittab文件:

#cd /mnt/sysroot/etc

#vim inittab

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

console::reapawn:-/bin/sh

::ctrlaltdel:/sbin/reboot

::shutdonw:/bin/umount -a -r

9.创建fstab文件

#vim fstab

sysfs /sys sysfs defaults 0 0

proc /porc proc defaults 0 0

/dev/hda1 /boot ext3 defaults 0 0

/dev/hda2 / ext3 defaaults 1 1

10.创建必要的设备文件:

#mknod /mnt/sysroot/dev/console c 5 1

#mknod /mnt/sysroot/dev/null c 1 3

11.创建initrd文件:

#vim /mnt/sysroot/etc/rc.d/rc.sysinit

#!/bin/bash

echo -e "\tWelcom to \e33[34mMY LINUX\033[0m"

echo -e "Remounting root ......[ \033[32mOK\033[0m ]"

mount -t proc proc /proc

mount -t sysfs sysfs /sys

echo -e "Creating files of device ......[ \033[32mOK\033[0m ]"

mdev -s

echo -e "Mounting the filesystem ......[ \033[32mOK\033[0m ]"

mount -a

swapon -a

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

本文出自 “小私的blog” 博客,请务必保留此出处,

busybox linux内核,使用busybox创建精简linux内核实例相关推荐

  1. linux系统创建操作系统用户,linux系统中用户组创建管理linux操作系统 -电脑资料...

    用户组管理包括对用户组创建,删除,修改及查看组操作命令,下面我们一起来看看希望本文章对各位同学会有所帮助哦, 1,创建组 groupadd test 增加一个test组 2,修改组 groupmod ...

  2. linux 下的进程创建线程,Linux线程 之 线程 线程组 进程 轻量级进程(LWP)

    线程是有栈的,我们知道,普通的一个进程,它的栈空间是8M,我们可以通过ulmit -a查看: stack size (kbytes, -s) 8192 线程也不例外,线程也是需要栈空间的这句话是废话, ...

  3. linux 在硬盘中创建文件系统,linux mkfs命令创建Linux文件系统

    功能描述 使用mkfs命令可以在分区上创建各种文件系统.mkfs命令本身并不执行建立文件系统的工作,而是去调用相关的程序来执行.这里的文件系统是要指定的,如ext4.ext3.vfat或msdos等. ...

  4. Linux下的LVM创建以及Linux快照卷

    通过最的学习,我加深了对LVM的理解,在这里,我将它写成博客,一是方便自己记忆,二是让Linux的入门学习者一起学习一下. 首先我们引入LVM的概念,并展开详细的说明,主要是近期学习的看法,我们先看一 ...

  5. Linux怎么给命令创建别名,linux设置命令别名

    腾讯云活动汇聚了最新的促销打折.优惠折扣等信息,你在这里可以找到云服务器.域名.数据库.小程序等等多种不同产品的促销活动,还有各种产品的免费试用哦. 我们可以使用 alias 命令定义或显示 bash ...

  6. linux下进程的创建代码,Linux下进程创建分析

    如何创建一个进程? 子进程拷贝父进程的代码和数据,进程拥有自己的独占资源(写时拷贝),父,子进程共享代码区,不共享数据区(私有化) 当使用pid_t fork(void)创建进程时,若创建成功,给父进 ...

  7. linux 如何创建内核进程,Linux内核的进程创建和执行.pdf

    Linux内核的进程创建和执行 !"#$% 内核的进程创建和执行 徐 炜 摘 要 详细阐述了!"#$% 内核34 54 2 的进程创建和执行过程,分析了相应的算法.数据 结构和关键 ...

  8. 《LINUX下动态链接库的创建与应用》

    大家都知道,在windows系统中有很多的动态链接库(以.dll为后缀的文档,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一部 ...

  9. Linux拉取代码启动镜像,基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法...

    基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法总结 熊海泉 内核源代码 下载地址 这里下载的是linux-2.6.38.tar.bz源代码 下载地址 这里下载的是busy ...

最新文章

  1. 为什么 Redis 的吞吐量能这么高
  2. VS2017项目打包为exe和setup
  3. 每一个有理想的程序员都应该读的一本书-《rework》
  4. python的合法名称_Python未定义名称:turn。!
  5. 分层模型:OSI与TCP/IP
  6. 注册机patch起什么作用_电机滑环起什么作用?
  7. 关于java.util.ConcurrentModificationException和remove倒数第二个元素
  8. java多线程 游戏_java利用多线程和Socket实现猜拳游戏
  9. SpringCloud工作笔记053---SLF4J简介与使用(整合log4j_并切换logging)
  10. BOSS直聘数据采集、解析处理、分析与可视化实战
  11. u深度重装系统详细教程_u深度一键还原精灵电脑重装系统使用教程
  12. 图像处理:图像灰度化
  13. 用 construct 2 制作简易弹幕游戏
  14. 序列化(serialization)。
  15. IE浏览器闪退、自动打开Edge浏览器
  16. 颜色恒常性CVPR2020 Multi-Domain Learning for Accurate and Few-Shot Color Constancy阅读笔记
  17. 合作开发收费系统——临时表解决用户重复登录问题
  18. 什么是智能插座,智能插座有什么用?
  19. c语言指定外设访问宽度 强制,《C语言程序设计》第2章 简单的C程序设计.ppt
  20. Launcher3--初识Launcher3

热门文章

  1. 设计模式01-模板设计模式
  2. Python学习笔记--6.2 文件读写
  3. spring mvc 伪静态处理
  4. 用ajax向处理页面传送路径问题解决方法
  5. 中国大学MOOC-数据结构基础习题集、08-1、Talent and Virtue
  6. 玩转Eclipse1--基本知识与配置
  7. [转载] Python学习之numpy函数 all()和any()比较矩阵
  8. [转载] Numpy学习之矩阵、函数、二元运算及数组读写
  9. 最长不下降子序列的长度
  10. JavaScript小技巧总结