文件系统支持
===============

Uboot
--------

ext4
~~~~~~~

uboot下支持常用的ext4 ls/load/write命令： 

.. code:: bash

    Hobot$ ext4load
    ext4load - load binary file from a Ext4 filesystem
    Usage:
    ext4load <interface> [<dev[:part]> [addr [filename [bytes [pos]]]]]
        - load binary file 'filename' from 'dev' on 'interface'
          to address 'addr' from ext4 filesystem

.. code:: bash

    Hobot$ ext4ls
    ext4ls - list files in a directory (default /)
    Usage:
    ext4ls <interface> <dev[:part]> [directory]
        - list files from 'dev' on 'interface' in a 'directory'

.. code:: bash

    Hobot$ ext4size
    ext4size - determine a file's size
    Usage:
    ext4size <interface> <dev[:part]> <filename>
        - Find file 'filename' from 'dev' on 'interface'
          and determine its size.

.. code:: bash

    Hobot$ ext4write
    ext4write - create a file in the root directory
    Usage:
    ext4write <interface> <dev[:part]> <addr> <absolute filename path>
        [sizebytes] [file offset]
        - create a file in / directory

Linux 内核
-------------

.. _ext4-1:

ext4
~~~~~~~

linux内核下支持将eMMC/sd设备格式化为常见的ext4文件系统格式，使用mkfs.ext4格式化目标设备

linux内核下使用mount 来挂载eMMC/sd的目标分区。eg：

.. code:: bash

   #将eMMC上的userdata分区格式化为ext4格式
   mkfs.ext4 /dev/block/platform/by-name/userdata
   #将eMMC设备上的userdata分区以ext4形式挂载到/userdata目录
   mount -t ext4 /dev/block/platform/by-name/userdata /userdata 
   #通过文件系统访问eMMC
   cd /userdata

文件系统异常处理
---------------------------------

当文件系统损坏导致无法挂载时可通过以下方式尝试处理:

使用\ **fsck**\ 工具对目标分区的文件系统进行检测和修复。

.. code:: bash

   #修复eMMC分区userdata上的ext4文件系统错误
   fsck.ext4 -f /dev/block/platform/by-name/userdata

当fsck无法修复文件系统的错误时，可以考虑对该分区格式化（注意格式化会清空该分区下所有文件）

.. code:: bash

   #将eMMC上的userdata分区格式化为ext4格式
   mkfs.ext4 /dev/block/platform/by-name/userdata

