busybox linux内核,使用busybox创建精简linux内核实例
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内核实例相关推荐
- linux系统创建操作系统用户,linux系统中用户组创建管理linux操作系统 -电脑资料...
用户组管理包括对用户组创建,删除,修改及查看组操作命令,下面我们一起来看看希望本文章对各位同学会有所帮助哦, 1,创建组 groupadd test 增加一个test组 2,修改组 groupmod ...
- linux 下的进程创建线程,Linux线程 之 线程 线程组 进程 轻量级进程(LWP)
线程是有栈的,我们知道,普通的一个进程,它的栈空间是8M,我们可以通过ulmit -a查看: stack size (kbytes, -s) 8192 线程也不例外,线程也是需要栈空间的这句话是废话, ...
- linux 在硬盘中创建文件系统,linux mkfs命令创建Linux文件系统
功能描述 使用mkfs命令可以在分区上创建各种文件系统.mkfs命令本身并不执行建立文件系统的工作,而是去调用相关的程序来执行.这里的文件系统是要指定的,如ext4.ext3.vfat或msdos等. ...
- Linux下的LVM创建以及Linux快照卷
通过最的学习,我加深了对LVM的理解,在这里,我将它写成博客,一是方便自己记忆,二是让Linux的入门学习者一起学习一下. 首先我们引入LVM的概念,并展开详细的说明,主要是近期学习的看法,我们先看一 ...
- Linux怎么给命令创建别名,linux设置命令别名
腾讯云活动汇聚了最新的促销打折.优惠折扣等信息,你在这里可以找到云服务器.域名.数据库.小程序等等多种不同产品的促销活动,还有各种产品的免费试用哦. 我们可以使用 alias 命令定义或显示 bash ...
- linux下进程的创建代码,Linux下进程创建分析
如何创建一个进程? 子进程拷贝父进程的代码和数据,进程拥有自己的独占资源(写时拷贝),父,子进程共享代码区,不共享数据区(私有化) 当使用pid_t fork(void)创建进程时,若创建成功,给父进 ...
- linux 如何创建内核进程,Linux内核的进程创建和执行.pdf
Linux内核的进程创建和执行 !"#$% 内核的进程创建和执行 徐 炜 摘 要 详细阐述了!"#$% 内核34 54 2 的进程创建和执行过程,分析了相应的算法.数据 结构和关键 ...
- 《LINUX下动态链接库的创建与应用》
大家都知道,在windows系统中有很多的动态链接库(以.dll为后缀的文档,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一部 ...
- Linux拉取代码启动镜像,基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法...
基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法总结 熊海泉 内核源代码 下载地址 这里下载的是linux-2.6.38.tar.bz源代码 下载地址 这里下载的是busy ...
最新文章
- 为什么 Redis 的吞吐量能这么高
- VS2017项目打包为exe和setup
- 每一个有理想的程序员都应该读的一本书-《rework》
- python的合法名称_Python未定义名称:turn。!
- 分层模型:OSI与TCP/IP
- 注册机patch起什么作用_电机滑环起什么作用?
- 关于java.util.ConcurrentModificationException和remove倒数第二个元素
- java多线程 游戏_java利用多线程和Socket实现猜拳游戏
- SpringCloud工作笔记053---SLF4J简介与使用(整合log4j_并切换logging)
- BOSS直聘数据采集、解析处理、分析与可视化实战
- u深度重装系统详细教程_u深度一键还原精灵电脑重装系统使用教程
- 图像处理:图像灰度化
- 用 construct 2 制作简易弹幕游戏
- 序列化(serialization)。
- IE浏览器闪退、自动打开Edge浏览器
- 颜色恒常性CVPR2020 Multi-Domain Learning for Accurate and Few-Shot Color Constancy阅读笔记
- 合作开发收费系统——临时表解决用户重复登录问题
- 什么是智能插座,智能插座有什么用?
- c语言指定外设访问宽度 强制,《C语言程序设计》第2章 简单的C程序设计.ppt
- Launcher3--初识Launcher3