科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux下用Busy Box制作Ramdisk全过程

Linux下用Busy Box制作Ramdisk全过程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

1 建立根文件系统结构

作者:www.soft6.com 来源:www.soft6.com 2007年9月21日

关键字: LinuxWorld MiracleLinux linuxconf SuseLinux Linux

  • 评论
  • 分享微博
  • 分享邮件
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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章