基于busybox搭建功能完善的小型linux(一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于busybox搭建功能完善的小型linux(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3491字,纯文字阅读大概需要5分钟。
内容图文
实验环境:
1、一个作为宿主机的Linux;本文使用的是CentOS 6.5 x86_64;
2、在宿主机上提供一块额外的硬盘作为新系统的存储盘
3、Linux内核源码,busybox源码;本文使用的是目前最新的内核源码linux-3.13.6和busybox-1.22.1。
一、创建新系统盘
先建立一个大小为50M的主分区作为新建系统的boot分区和一个512M的分区作为目标系统的根分区;
添加第三个分区用于swap,大小为256MB,使用mkswap将其创建为swap分区
50M的分区格式化后将其挂载至/mnt/boot目录下;
512M的分区格式化后将挂载至/mnt/sysroot目录;
两个分区的文件系统均为ext4。
# mke2fs -t ext4 /dev/sdb1 # mke2fs -t ext4 /dev/sdb2 # mkswap /dev/sdb3
编辑/etc/fstab,添加如下内容
/dev/sdb1 /mnt/boot ext4 defaults 0 0 /dev/sdb2 /mnt/sysroot ext4 defaults 0 0
创建目录:
# mkdir /mnt/boot # mkdir /mnt/sysroot # mount -a //自动挂载
二、编译内核源代码
[root@www ~]# tar xf linux-3.13.6.tar.xz -C /usr/src/ [root@www ~]# cd /usr/src [root@www src]# ln -sv linux-3.13.6 linux [root@www ~]# cd linux
这里我们采用make allnoconfig 编译
[root@www linux]# make allnoconfig [root@www linux]# make menuconfig
读者可以从这里下载我配置好的config文件
把下载的config文件改名为.config,复制到/usr/src/linux中,执行下面操作
[root@www linux]# make //编译完成后面复制文件 [root@www linux]# cp arch/x86/boot/bzImage /mnt/boot/
三、编译busybox
[root@www ~]# yum -y install libmcrypt-devel glibc-static [root@www ~]# tar xf busybox-1.22.1.tar.bz2 [root@www ~]# cd busybox-1.22.1 [root@www ~]# make menuconfig
注:、此处需要选择 Busybox Settings --> Build Options --> Build BusyBox as a static binary (no shared libs),这样可以把Busybox编译成一个不使用共享库的静态二进制文件,从而避免了对宿主机的共享库产生依赖;
[root@www busybox-1.22.1]# make [root@www busybox-1.22.1]# make install
安装后的文件均位于_install目录中;把这些文件复制进/mnt/sysroot
[root@www busybox-1.22.1]# cp -a _install/* /mnt/sysroot/shi
四、建立真正的根文件系统
1.创建必要的目录
[root@www sysroot]# mkdir -pv proc sys etc/rc.d/init.d tmp dev/pts boot var/log bin dev home lib64 media sbin srv usr
2.建立系统初始化脚本文件
[root@www sysroot]# vim etc/rc.d/rc.sysinit #!/bin/sh echo -e "\tWelcome to \033[31mGulong\033[0m Little Linux" echo -e "Remounting the root filesystem ..." mount -t proc proc /proc mount -t sysfs sysfs /sys mount -o remount,rw / echo -e "Creating the files of device ..." mdev -s echo -e "Mount filesystems in /etc/fstab" ifconfig eth0 172.16.251.55 ifconfig lo 127.0.0.1 mount -a
3.而后让此脚本具有执行权限:
[root@www sysroot]# chmod +x etc/rc.d/rc.sysinit
4.配置init及其所需要inittab文件
创建两个必要的设备文件:
[root@www sysroot]# cd /mnt/sysroot/dev/ [root@www dev]# mknod console c 5 1 [root@www dev]# mknod null c 1 3
创建inittab文件
[root@www sysroot]# rm linuxrc [root@www sysroot]# vim etc/inittab //添加如下内容: ::sysinit:/etc/rc.d/rc.sysinit console::respawn:-/bin/sh ::ctrlaltdel:/bin/reboot ::shutdown:/bin/umount -a -r
5.为系统准备一个“文件系统表”配置文件/etc/fstab
[root@www sysroot]# vim etc/fstab //添加以下内容 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sda1 /boot ext4 defaults 0 0 /dev/sda2 / ext4 defaults 0 0 /dev/sda3 swap swap defaults 0 0
五、为此系统创建所需的引导程序
安装grub
[root@www ~]# grub-install --root-directory=/mnt /dev/sdb
为grub建立配置文件
[root@www ~]# vim /mnt/boot/grub/grub.conf //添加如下内容 default=0 timeout=5 title Mini Linux (3.13.6-gulong) root (hd0,0) kernel /bzImage ro root=/dev/sda2 init=/sbin/init
接下来将此块硬盘接入一个新的主机(这里使用的是虚拟机),启动一下并测试使用。
至此基于busybox的linux的已经完成了,在后面的博客中我们会来完善下这个系统,比如远程登录,密码登录等!
原文:http://584014981.blog.51cto.com/8605371/1389288
内容总结
以上是互联网集市为您收集整理的基于busybox搭建功能完善的小型linux(一)全部内容,希望文章能够帮你解决基于busybox搭建功能完善的小型linux(一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。