分享

linux 文件系统创建

 定慧图书馆 2012-02-12

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:目标系统为内核指明控制台

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多