zoukankan      html  css  js  c++  java
  • 嵌入式系统增加文件系统分区

    最近工作中需要在arm架构的单板上增加一个fat格式的文件系统分区用于windows访问,就回顾了一下文件系统和linux分区。简单写几句:

    单板的存储介质是eMMC,linux系统,采用交叉编译。增加分区就直接在fastboot传给kernel的参数中增加一个分区就好了,没什么要说的。

    这里主要说一下增加文件系统的两种方式:

    方法一

    1.在宿主机上准备好,再烧录到对应的分区上:

      dd if=/dev/zero of=data.fat bs=1024 count=1024

      bs和count可以根据自己的需要设置,作者这里bs设置为1024,count设置为1024,也即增加的文件系统设置为了1MB。

      这里如果count太小了的话,执行mkfs.fat的时候会出现错误提醒:Not enough space to build proposed filesystem while setting up superblock

      这是因为文件系统的头部会在分区开始出写下MBR,记录文件系统的信息,如果block太少了 ,写不下的话会报错,具体的有机会写一篇文件系统的博客。

      mkfs.fat data.fat -F 32

      这里的-F 32是指定fat32文件系统,你也可以根据自己的需要选择fat12,fat16,fat32中的任意一个,当然也可以不指定,用默认的就好了。

      这时file data.fat就可以看到文件系统已经格式化好了 :data.vfat: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, root entries 512, sectors 2048 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 2, sectors/track 32, heads 64, serial number 0xbfc1387d, unlabeled, FAT (12 bit)

      接着将data.fat烧录到对应的分区即可

    方法二

    2.在目标机上的启动执行脚本上添加:

      在/init.d/rcS中添加如下shell脚本 :

    mount /dev/mmcblkmpn /
    if [ $? -ne 0 ]; then
        mkfs.fat /dev/mmcblkmpn -F 32
        mount /dev/mmcblkmpn /
    fi

      其中mmcblkmpn为对应的文件系统分区

    推荐使用方法一,由于方法二在挂载文件系统失败后可能会有丢失数据的风险

    以上所有。

  • 相关阅读:
    整数的位数,及反转
    判断1~n有多少个1
    C语言常用字符串函数
    C语言类型转换原理
    printf()函数压栈a++与++a的输出
    49 丑数( 时间空间效率的平衡)
    42 连续子数组的最大和(时间效率)
    41 数据流中的中位数(时间效率)
    40 最小的K个数(时间效率)
    一、简介 ELO商户类别推荐有助于了解客户忠诚度
  • 原文地址:https://www.cnblogs.com/live-program/p/10994104.html
Copyright © 2011-2022 走看看