Linux利用ramdisk在线升级,Linux下用Busy Box制作Ramdisk全过程

1 建立根文件系统结构

#mkdir rootfs

#cd rootfs

#mkdir bin dev etc lib proc sbin tmp usr var

#chmod 1777 tmp

#mkdir usr/bin usr/lib usr/sbin

#mkdir var/lib var/lock var/log var/run var/tmp

#chmod 1777 var/tmp

2 准备链接库

#cd \${OBJ_LIB}/lib (\${OBJ_LIB}是交叉编译环境的目录)

#for file in libc libcrypt libdl libm

>libpthread libresolv libutil

>do

>cp \$file-*.so /home/fortis/rootfs/lib

>cp -d \$file.so.[*0-9] /home/fortis/rootfs/lib

>done

#cp -d ld*.so* /home/fortis/rootfs/lib

3 使用busybox制作系统应用程序

3.1 下载busybox(http://www.busybox.net/)并解压。

3.2 进入解压后的目录,配置Busybox

\$make menuconfig

Busybox Settings >

General Configuration >

[*] Support for devfs

Build Options >

[*] Build BusyBox as a static binary (no shared libs)

/* 将busybox编译为静态连接,少了启动时找动态库的麻烦 */

[*] Do you want to build BusyBox with a Cross Compiler?

(/usr/local/arm/3.3.2/bin/armLinux)

Cross Compiler prefix/* 指定交叉编译工具路径 */

Init UtilitIEs >

[*] init

[*] Support reading an inittab file

/* 支持init读取/etc/inittab配置文件,一定要选上 */

Shells >

Choose your default shell (ash) >

/* (X) ash 选中ash,这样生成的时候才会生成bin/sh文件

* 看看我们前头的linuxrc脚本的头一句:

* #!/bin/sh 是由bin/sh来解释执行的

*/

[*] ash

Coreutils >

[*] cp

[*] cat

[*] ls

[*] mkdir

[*] echo (basic SuSv3 version taking no options)

[*] env

[*] mv

[*] pwd

[*] rm

[*] touch

Editors >

[*] vi

Linux System Utilities >

[*] mount

[*] umount

[*] Support loopback mounts

[*] Support for the old /etc/mtab file

Networking Utilities >

[*] inetd

/*

* 支持inetd超级服务器

*/

3.3 编译并安装Busybox

\$make TARGET_ARCH=arm CROSS=armlinux

PREFIX=/home/arm/dev_home/rootfs/my_rootfs/ all install

PREFIX指明安装路径:就是我们根文件系统所在路径。

4 准备所需的设备文件

可以直接拷贝宿主机上的,或者自建几个就是。

#cd rootfs/dev

#mknod -m 600 console c 5 1

5 创建linuxrc文件

内容如下:

\$ vim rootfs/linuxrc

#!/bin/sh

echo "Hello linux ,gggggg"

exec /sbin/init

然后修改权限:chmod 775 linuxrc

6 制作initrd映象文件

#mkdir initrd

#dd if=/dev/zero of=initrd.img bs=1k count=8192

#/sbin/mke2fs -F -v -m0 initrd.img

#mount -o loop initrd.img initrd

#cp -av rootfs/* initrd

#umount

#gzip -9 initrd.img

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值