Skip to content

# 16.2.4. 文件系统支持

## 16.2.4.1. Uboot

### 16.2.4.1.1. ext4

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

    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

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

    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.

    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

## 16.2.4.2. Linux 内核

### 16.2.4.2.1. ext4

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

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

    #将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

## 16.2.4.3. 文件系统异常处理

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

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

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

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

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