busybox制作根文件系统

#!/bin/bash


# https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/armeb-linux-gnueabi/gcc-linaro-6.2.1-2016.11-i686_armeb-linux-gnueabi.tar.xz
# tar –xvf gcc-linaro-6.2.1-2016.11-i686_armeb-linux-gnueabi.tar.xz
# mv gcc-linaro-6.2.1-2016.11-i686_armeb-linux-gnueabi /usr/local/arm-linux-gnueabi
# [ grep -q arm-linux-gnueabi /etc/profile ] || echo "PATH=$PATH:/usr/local/arm-linux-gnueabi/bin" >> /etc/profile

wget https://busybox.net/downloads/busybox-1.27.2.tar.bz2

[ -d busybox-1.27.2 ] && rm -rf busybox-1.27.2

tar -xvf busybox-1.27.2.tar.bz2

pushd busybox-1.27.2
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install
popd

make_etc()
{
	[ -d etc ] && rm -rf etc
	mkdir etc
	mkdir -p etc/init.d
	mkdir -p etc/sysconfig
	
	cat > etc/inittab <<EOF
# /etc/inittab
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::restart:/sbin/init
EOF
	
	cat > etc/fstab <<EOF
#<file system>    <mount point>      <type>    <options>     <dump>    <pass>
proc              /proc              proc      defaults       0         0
sysfs             /sys               sysfs     defaults       0         0
tmpfs             /tmp               tmpfs     defaults       0         0
tmpfs             /dev               tmpfs     defaults       0         0
var               /dev               tmpfs     defaults       0         0
ramfs             /dev               ramfs     defaults       0         0
debugfs           /sys/kernel/debug  debugfs   defaults       0         0
EOF

	
	cat > etc/profile <<EOF
USER="root"
LOGNAME=$USER
export HOSTNAME=\$(/bin/hostname)
export USER=root
export HOME=/root
export PS1="[$USER@$HOSTNAME \W]# "
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/lib:/usr/lib
export LD_LIBRARY_PATH
EOF

	cat > etc/init.d/rcS <<EOF
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

mount -a
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock
mkdir -p /var/run

/bin/hostname -F /etc/sysconfig/HOSTNAME
EOF
	
	chmod 755 etc/init.d/rcS
	echo vexpress > etc/sysconfig/HOSTNAME
}

[ -d rootfs ] && rm -rf rootfs
[ -d rootfs.ext3 ] && rm -rf rootfs.ext3
mkdir rootfs

mkdir -p rootfs/proc
mkdir -p rootfs/sys
mkdir -p rootfs/tmp
mkdir -p rootfs/root
mkdir -p rootfs/var
mkdir -p rootfs/mnt

mkdir -p rootfs/dev
mknod rootfs/dev/tty1 c 4 1
mknod rootfs/dev/tty2 c 4 2
mknod rootfs/dev/tty3 c 4 3
mknod rootfs/dev/tty4 c 4 4
mknod rootfs/dev/console c 5 1
mknod rootfs/dev/null c 1 3

cp -arf /usr/local/arm-linux-gnueabi/arm-linux-gnueabi/libc/lib rootfs/
cp -arf busybox-1.27.2/_install/* rootfs/

make_etc
mv etc rootfs/

dd if=/dev/zero of=rootfs.ext3 bs=1M count=128
mkfs.ext3 -F rootfs.ext3

mkdir tmpfs
mount -t ext3 rootfs.ext3 tmpfs -o loop
cp -arf rootfs/* tmpfs/

umount tmpfs && rm -rf tmpfs

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值