热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxbusybox内核,Linux内核+Busybox自制linux系统

实验环境1、centos7图形化界面安装2、busybox:busybox-1.30.0.tar.bz2官网https:busybox.net下载地址:https:b

实验环境

1、centos7图形化界面安装

2、busybox:busybox-1.30.0.tar.bz2

官网 https://busybox.net

下载地址:https://busybox.net/downloads/busybox-1.30.0.tar.bz2

3、一块新添加的硬盘

Busybox 是一个开源项目,遵循GPL v2协议。Busybox将众多的UNIX命令集合进一个

很小的可执行程序中,其中包括了三百多个最常用 Linux 命令和工具

一、编译安装busybox

[root@centos7 data]# yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel \

openssl openssl-desystemd-devel zlib-devel glibc-static ncurses-devel wget

[root@centos7 data]# tar xf busybox-1.30.0.tar.bz2

[root@centos7 data]# cd busybox-1.30.0

[root@centos7 busybox-1.30.0]make menuconfig

[root@centos7 busybox-1.30.0] make && make install

##按下面选择,把busybox编译为静态二进制、不用共享库

Busybox Settings -->Build Options -->[*] Build BusyBox as a static binary (no shared

libs) 之后保存退出 --> exit --> exit --> yes

b63a4762461d160b1367d6463b741f13.png

安装成功

394bc1a1d10c2ea56bd58c2c193e0fb2.png

busybox的使用有三种方式:

busybox后直接跟命令,如 busybox ls

直接将busybox重命名,如 cp busybox tar

创建符号链接,如 ln -s busybox rm

以上方法中,第三种方法最方便,但为busybox中每个命令都创建一个软链接,

相当费事,busybox提供自动方法:busybox编译成功后,执行make install,则会

产生一个_install目录,其中包含了busybox及每个命令的软链接

二、添加新硬盘并分区

新添加的硬盘要保存为单个文件,并记录具体保存路径

添加后扫描到磁盘并分区格式化,至少分2个分区,/dev/sdb1为boot分区,/dev/sdb2为根分区 这里不写详细步骤了

e1a7b59a1b61336fec1a92ed14ae2ed5.png

686afb166b0c797ce008f468ebde9a41.png

7d8b814164b535b0f9294aa16cd14a52.png

三、安装bootloader和grub、内核文件

[root@centos7 busybox-1.30.0]# grub2-install --root-directory=/mnt /dev/sdb 安装grub1阶段和1.5阶段

[root@centos7 busybox-1.30.0]# hexdump -C -n 512 /dev/sdb 查看bootloader

[root@centos7 busybox-1.30.0]# grub2-mkconfig > /mnt/boot/grub2/grub.cfg grub阶段

[root@centos7 busybox-1.30.0]# cp /boot/vmlinuz-3.10.0-957.el7.x86_64 /mnt/boot/

[root@centos7 busybox-1.30.0]# cp /boot/initramfs-3.10.0-957.el7.x86_64.img /mnt/boot/

[root@centos7 busybox-1.30.0]# cp _install/* /mnt/sysroot/ 将busybox下_install文件复制到/mnt/sysroot

452b786dcc8461cace307c44584ade42.png

[root@centos7 ~]#vi /etc/default/grub

修改/etc/default/grub在最后一行添加

GRUB_DISABLE_LINUX_UUID=true

[root@centos7 ~]#grub2-mkconfig > /mnt/boot/grub2/grub.cfg

删除之前添加在/etc/default/grub的那一行以免影响现有系统

4b4d8a6784978888dfbd33b693a804d5.png

到此自制系统已经完成下面开始验证

新建一个空白虚拟机,将原有的磁盘删除,不然bios会默认从第一块硬盘寻找系统

ca26e9a5704c7a6c897585642b3515a9.png

添加新硬盘

51b7af52abbcdf261b36112dd11a6019.png

c306301d6d35a6096bdb99aecffbaf44.png

成功开机,里面的命令来自于busybox

66bd9da43b1b45001f6da20246ec465e.png

d0527711594b20b19cbe15609ac58b16.png



推荐阅读
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
author-avatar
张明怡紫茂佳尧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有