打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux 文件系统创建

linux 文件系统创建

发表于:2011-11-04 02:42:55 阅读次数: 64
简介: 一,文件系统:用来管理磁盘或磁盘分区上数据的数据结构和算法嵌入式文件系统常用类型:cramfs:小型只读,压缩文件系统,适合用来做为根文件的管理yaffs2:小型可读写文件系统,适合用户文件二,根文件的组成:1,工作目录etc,bin,mnt,root,tmp,lib,dev,sbin,usr,pr ...
 

一,文件系统:

用来管理磁盘或磁盘分区上数据的数据结构和算法

嵌入式文件系统常用类型:

cramfs:小型只读,压缩文件系统,适合用来做为根文件的管理

yaffs2:小型可读写文件系统,适合用户文件

二,根文件的组成:

1,工作目录

etc,bin,mnt,root,tmp,lib,dev,sbin,usr,proc,usr/bin,usr/sbin,sys

2,重要的配置文件

fstab:系统在启动时挂载文件系统和存储设备的详细信息。

profile:系统的环境,也就是有关Linux环境变量的东西,这里修改会对所有用户起作用。

linuxrc:自己写的系统初始化时的配置文件

3,重要的指令执行程序

ls,cd,mount........

4,库文件

5,应用程序



根文件制作

1,makdir 制作根文件目录

2,touch linuxrc,profile,fstab配置文件

3,cp 库到目标系统lib下

4,busybox安装指令

5,创建节点 

6,以后制作应用程序


将以上步骤制作成脚本,内容如下:

#!/bin/sh

INSTALL_PATH=/nfs/rootfs

BUSY_BOX=busybox-1.13.3-mini2440.tgz

BUSY_BOX_SOURCE=busybox-1.13.3

WORK_PATH=/s3c2440/rootfs


if [ -e ${INSTALL_PATH} ]

then

rm -rf ${INSTALL_PATH}/*

else

mkdir ${INSTALL_PATH} -p

fi


echo "Now making dirs ... ..."


cd ${INSTALL_PATH}

mkdir mnt dev bin sbin usr etc lib root sys proc tmp

mkdir mnt/etc usr/sbin usr/bin usr/lib

echo "Making busybox ... ..."

if [ ! -e ${WORK_PATH}/${BUSY_BOX} ]

then

echo "Can't find busybox source file in this dir ... ..."

exit

fi

if [ -e ${WORK_PATH}/${BUSY_BOX_SOURCE} ]

then

rm -rf ${WORK_PATH}/${BUSY_BOX_SOURCE}

fi

tar zxvf ${WORK_PATH}/${BUSY_BOX} -C ${WORK_PATH}


cd ${WORK_PATH}/${BUSY_BOX_SOURCE}


make menuconfig


make


make install


if [ -e ${INSTALL_PATH}/linuxrc ]

then

rm -rf ${INSTALL_PATH}/linuxrc

fi


echo "Making etc files ... ..."

touch ${INSTALL_PATH}/linuxrc

touch ${INSTALL_PATH}/mnt/etc/profile

touch ${INSTALL_PATH}/mnt/etc/fstab


vi ${INSTALL_PATH}/linuxrc

chmod a+x ${INSTLL_PATH}/linuxrc

vi ${INSTALL_PATH}/mnt/etc/profile

vi ${INSTALL_PATH}/mnt/etc/fstab


echo "Copy system librarys to lib dir... ..."

cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*.so ${INSTALL_PATH}/lib

cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*.so.* ${INSTALL_PATH}/lib

cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*.so ${INSTALL_PATH}/usr/lib

cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*.so.* ${INSTALL_PATH}/usr/lib


arm-linux-strip ${INSTALL_PATH}/lib/*

arm-linux-strip ${INSTALL_PATH}/usr/lib/*



echo "Making node ... ..."


mknod -m 660 ${INSTALL_PATH}/dev/console c 5 1



busybox配置:
1,BusyBox Settings-->(回车)
Build Options-->(回车)
选中Build BusyBox as a static binary(no shared libs)
2,Cross Compiler prefix(回车)
添加路径:/usr/local/arm/4.3.2/bin/arm-linux-
3,Installation Options-->(回车)
(./_install)BusyBox installation prefix(回车)
添加路径:/nfs/rootfs
保存退出




编辑linuxrc文件:
#!/bin/sh
echo "mount /etc as ramfs"
/bin/mount -n -t ramfs ramfs /etc
/bin/mount -n -t proc none /proc
/bin/mount -n -t sysfs none /sys
#/bin/mount -a
exec /bin/init


编辑profile文件:
export PATH=/bin:/sbin:/usr/sbin:/usr/bin:$PATH
export LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH




添加内核启动参数:
cd s3c2440/kernel/linux-2.6.32.2
启动内核配置菜单:make menuconfig
Boot options-->(回车)
第三项添加内核启动参数:
noinitrd root=/dev/nfs nfsroot=192.168.1.188:/nfs/rootfs init=/linuxrc ip=192.168.1.187 netmask=255.255.255.0 console=ttySAC0,115200 mem=64MB


root=dev/nfs:指明根文件挂载方式,通过nfs挂载
nfsroot:描述根文件所在位置
init:指明内核初始化脚本为linuxrc
console:目标系统为内核指明控制台
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
根文件系统(rootfs)
[实践]busybox1.16.1建立文件系统
嵌入式linuxbusybox文件系统的移植和rzsz命令的添加
ARM学习(三十一)转载:内核(2.6.14) 根文件系统 Qt4 移植 for ...
ubuntu 中jdk安装和sqldeveloper安装
动态连接的busybox的简单使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服