从无到有构建一个Mini Linux(4)

16.编译busybox

17.提供inittab文件

18.提供初始化脚本

19.第七次测试启动

16.编译busybox

BusyBox简介
    BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。
    BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,
    如grep、find、mount以及telnet.有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.
    简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,
    也包含了 Android 系统的自带的shell.  --- 来源 百度百科
[[email protected] ~]# tar xf busybox-1.22.1.tar.bz2 
[[email protected] ~]# cd busybox-1.22.1
[[email protected] busybox-1.22.1]# less INSTALL
[[email protected] busybox-1.22.1]# make menuconfig
//静态方式编译

Busybox Settings  --->
	Build Options  ---> 
		 [*] Build BusyBox as a static binary (no shared libs)
	Installation Options ("make install" behavior)  ---> 
		 (./_install) BusyBox installation prefix
		 
[[email protected] busybox-1.22.1]# make && make install

//删除/mnt/sysroot下的目录,重新开始从头测试

[[email protected] busybox-1.22.1]# rm -rf /mnt/sysroot/*
[[email protected] busybox-1.22.1]# ls _install/
bin  linuxrc  sbin  usr  //编译成功后生成的文件
[[email protected] busybox-1.22.1]# cp -a _install/* /mnt/sysroot/
[[email protected] busybox-1.22.1]# ls /mnt/sysroot/
bin  linuxrc  sbin  usr

简单测试

[[email protected] ~]# chroot /mnt/sysroot/
chroot: failed to run command ‘/bin/bash‘: No such file or directory
[[email protected] ~]# chroot /mnt/sysroot/ /bin/ash
/ #   //绝大部分命令执行成功

//创建相应的目录

[[email protected] sysroot]# mkdir -pv etc lib lib64 proc sys dev root home boot mnt media tmp var

17.提供inittab文件

//busybox提供/sbin/init文件,我们手动编写init的配置文件/etc/inittab文件即可(参照centos 5系列)

[[email protected] sysroot]# vim etc/inittab  //注意是相对路径
::sysinit:/etc/rc.d/rc.sysinit
console::respawn:-/bin/ash
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

18.提供初始化脚本

[[email protected] sysroot]# mkdir etc/rc.d/
[[email protected] sysroot]# vim etc/rc.d/rc.sysinit
#!/bin/ash
#
echo -e "\tWelcome to Sxj \033[32mMini\033[0m Linux"
mount  -t proc proc /proc
mount  -t sysfs sysfs /sys
mount -o remount,rw /dev/sda2 /

//加执行权限
[[email protected] sysroot]# chmod +x etc/rc.d/rc.sysinit

19.第七次测试启动

//启动成功,且绝大多数的命令都可以使用

时间: 2025-01-08 12:47:05

从无到有构建一个Mini Linux(4)的相关文章

从无到有构建一个Mini Linux(7)

31.编译安装dropbear 32.创建远程登录时,用到的目录 33.为目标系统生成密钥文件 34.设置安全的shells 35.开启网络服务转换功能 36.复制相应的库文件,路径要对应,没有则创建之 37.测试 31.编译安装dropbear Dropbear是一个相对较小的SSH服务器和客户端 [[email protected] ~]# tar xf dropbear-2016.73.tar.bz2 [[email protected] ~]# cd dropbear-2016.73 [

从无到有构建一个Mini Linux(3)

10.重新编译内核使其支持键盘和鼠标驱动 11.第四次测试启动 12.利用脚本实现init功能 13.第五次测试启动 14.编译内核使其能够直接识别到设备文件 15.第六次测试启动 10.重新编译内核使其支持键盘和鼠标驱动 [[email protected] ~]# lsusb  //查看Usb接口类型和型号 [[email protected] ~]# cd /usr/src/linux [[email protected] ~]# make menuconfig //使其支持键盘和鼠标驱动

从无到有构建一个Mini Linux(2)

6.重新编译内核使其识别ext4文件系统 7.第二次测试启动 8.使用bash程序模拟init 9.第三次测试启动 6.重新编译内核使其识别ext4文件系统 [[email protected] ~]# cd /usr/src/linux [[email protected] linux]# make menuconfig //选择ext4文件驱动 File systems  ---> <*> The Extended 4 (ext4) filesystem [*]   Ext4 POS

从无到有构建一个Mini Linux(5)

20.编辑/etc/fstab文件,进一步完善 rc.sysinit 及 inittab文件 21.第八次测试启动 22.编译内核使用能够支持网络功能 (直接编译为核心) 23.第九次测试启动 24.编译内核使其能够支持网络功能 (编译为模块) 25.第十次测试启动 20.编辑/etc/fstab,完善 rc.sysinit.inittab [[email protected] sysroot]# vim etc/fstab sysfs /sys sysfs defaults 0 0 proc 

从无到有构建一个Mini Linux(6)

26.进一步增加功能(开机自动加载网卡驱动,设置主机名) 27.第十一次测试启动 28.创建/etc/sysconfig/network 及 /etc/issue文件 29.设置登录认证 30.第十二次测试启动 26.进一步增加功能(开机自动加载网卡驱动,设置主机名) [[email protected] ~]# cd /mnt/sysroot/ [[email protected] sysroot]# vim etc/rc.d/rc.sysinit  echo -e "\tWelcome to

从无到有构建一个Mini Linux(8)

遇到的问题及解决方式 1.dropbear启动时,如果提示缺少库,复制宿主机上的库文件到目录主机上 -bash-4.1# cd /usr/local/sbin -bash-4.1# ./dropbear -E -F 切换终端,查看端口是否监听 -bash-4.1# netstat -tln 2.此时dropbear并不在PATH环境变量中,要用绝对或相对路径启动之 3.root无法远程登录 ---查看dropbear运行时,提示的错误即可--- 4.可以新建一个普通用户,并添加密码 -bash-

构建一个mini linux系统

mini linux: 启动流程: centos6:post>bootsequence(bios)>BootLoader(mbr)>kernel(如无法直接识别硬盘驱动,需借助ramdisk)>rootfs>/sbin/init centos7:post>bootsequence(bios)>BootLoader(mbr)>kernel(如无法直接识别硬盘驱动,需借助ramfs)>rootfs>/sbin/systemd bootloader:l

第三周——构建一个简单的Linux系统MenuOS

[洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 第三周  构建一个简单的Linux系统MenuOS

构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)

构建一个简单的Linux系统 MenuOs —— start_kernel到init进程 作者:刘世鹏20135304 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核代码简介 内核源码三个个重要目录 arch占有代码量最大,支持不同cpu的源代码,arch/x86目录下的代码是我们关注的重点 init,内核启动相关的代码基本都在init目录下,init/main.c中start_kernel是整