busybox一個二進制程序,模擬實現眾多程序。/bin/busybox查看本機硬件設備信息:#cat/proc/cpuinfo#cat/proc/meminfo#lsusb顯示usb接口信息。#lspci顯示pci總線
busybox
一個二進制程序,模擬實現眾多程序。
busybox如何使用,/bin/busybox
查看本機硬件設備信息:
#cat /proc/cpuinfo
#cat /proc/meminfo
Ubuntu centos,#lsusb 顯示usb接口信息。
#lspci 顯示pci總線上的所有設備。
#hal-device 顯示所有硬件的詳細信息。
hardware abstract layer 硬件抽象層。
docker debian、編譯busybox:
#tar xf busybox.tar.bz2
#cd busybox
#make menuconfig
Linux 內核。Busybox Settings
Build Options
Build BusyBox as a static binary(no share libs)(NEW)
Installation Options("make install"behavior)
busybox linux。可以指定.install文件生成的地址。
#make install
若make install報錯,則此內核版本缺少部分頭文件,需要下載更新的內核。
#tar xf linux-xxx.tar.bz2 -C /usr/src
linux內核busybox。#cp -r /linux-xxx/include/mtd/ubi-user.h /root/busybox/include/mtd/
使用busybox創建系統內核。
0.掛載相關設備:
#mount /dev/sdb1 /mnt/boot
linux內核多大,#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” 博客,請務必保留此出處,
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态