编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

EMMC挂载及检查(emmc_ds)

wxchong 2024-10-22 17:56:43 开源技术 76 ℃ 0 评论

EMMC(嵌入式多媒体卡,Embedded MultiMediaCard)是一种用于嵌入式系统的闪存存储技术。EMMC 设备通常被划分为多个分区,这些分区可以被挂载到操作系统中以便使用。下面详细介绍 EMMC 的分区以及如何挂载这些分区。

引导分区(Boot Partition):

  • 包含引导加载程序(Bootloader)。
  • 通常有两个引导分区:BP1 和 BP2,用于冗余备份。
  • 例如:/dev/mmcblk0p1 和 /dev/mmcblk0p2。

用户分区(User Partition):

  • 主要用于存储操作系统、应用程序和用户数据。
  • 可以进一步细分为多个逻辑分区。
  • 例如:/dev/mmcblk0p3、/dev/mmcblk0p4 等。

预留分区(Reserved Partition):

  • 用于系统保留用途,如日志记录或其他特殊功能。
  • 通常较小,可能不会在实际使用中挂载。

分区表格式

EMMC 设备通常使用 MBR(主引导记录)或 GPT(GUID 分区表)格式来组织分区。MBR 格式最多支持四个主分区,而 GPT 格式则可以支持更多分区。

挂载分区

挂载 EMMC 分区的过程涉及将分区映射到文件系统的挂载点,使操作系统可以读写这些分区上的数据。示例:挂载 EMMC 分区

1.查看 EMMC 设备及其分区:

首先,使用 fdisk 或 lsblk 命令查看 EMMC 设备及其分区:

fdisk -l /dev/mmcblk0

或者:

lsblk -f /dev/mmcblk0

这将列出 EMMC 设备的分区信息,例如 /dev/mmcblk0p1、/dev/mmcblk0p2 等。

2.格式化分区(如果尚未格式化):

如果分区尚未格式化,可以使用 mkfs 命令格式化分区:

mkfs.ext4 /dev/mmcblk0p3

这里假设分区 /dev/mmcblk0p3 将被格式化为 ext4 文件系统。

3.创建挂载点:

在文件系统中创建挂载点目录:

sudo mkdir /mnt/emmc-root

4.挂载分区:

将分区挂载到对应的挂载点:

sudo mount /dev/mmcblk0p3 /mnt/emmc-root

5.自动挂载配置:

如果希望在系统启动时自动挂载这些分区,可以在 /etc/fstab 文件中

添加相应的条目:

sudo nano /etc/fstab

在文件末尾添加一行:

/dev/mmcblk0p3 /mnt/emmc-root ext4 defaults 0 2

这行配置表示 /dev/mmcblk0p3 分区将挂载到 /mnt/emmc-root 目录,并使用 ext4 文件系统。defaults 表示使用默认挂载选项,0 表示不备份,2 表示启动顺序。

6.验证自动挂载配置:

重新启动系统后,可以验证分区是否被自动挂载:

df -h

这将显示当前挂载的所有文件系统及其使用情况。

示例:

挂载多个分区如果 EMMC 设备有多个分区需要挂载,可以按照上述步骤逐一挂载:

sudo mkdir /mnt/emmc-boot

sudo mount /dev/mmcblk0p1 /mnt/emmc-boot

sudo mkdir /mnt/emmc-root

sudo mount /dev/mmcblk0p3 /mnt/emmc-root

sudo mkdir /mnt/emmc-data

sudo mount /dev/mmcblk0p4 /mnt/emmc-datas

健康状态以及排查常见问题的方法。

查询 EMMC 的健康状态使用 mmc_utils 工具Linux 系统中,可以使用 mmc_utils 工具来查询 EMMC 的健康状态。首先确保系统中已经安装了 mmc-utils 包。

Debian/Ubuntu 系统

sudo apt update

sudo apt install -y mmc-utils

Red Hat/CentOS 系统

sudo yum install -y mmc-utils

接下来,可以使用 sdinfo 命令来获取 EMMC 的详细信息:

sdinfo /dev/mmcblk0

这条命令将输出 EMMC 的基本信息,包括制造商、型号、容量等。

查看 SMART 属性对于一些支持 SMART(Self-Monitoring, Analysis and Reporting Technology)技术的 EMMC,可以使用 smartctl 工具来查看 SMART 属性:

安装 smartmontools

sudo apt install -y smartmontools

查看 EMMC 的 SMART 属性

sudo smartctl -a /dev/mmcblk0

这将显示 EMMC 的 SMART 属性,包括错误计数、温度等信息。

排查 EMMC 的健康问题检查错误日志如果怀疑 EMMC 存在问题,可以检查系统错误日志来寻找线索:dmesg | grep mmc

这条命令将显示与 EMMC 相关的内核日志,帮助定位问题。

使用 dd 进行读写测试可以使用 dd 命令来进行简单的读写测试,检查 EMMC 是否存在坏块:

写入随机数据

sudo dd if=/dev/urandom of=/dev/mmcblk0 bs=1M count=100

读回数据进行校验

sudo dd if=/dev/mmcblk0 of=/dev/null bs=1M count=100

这条命令将向 EMMC 写入 100MB 的随机数据,并读回数据进行校验。如果出现错误提示,表明可能存在坏块。使用专门的测试工具对于更详细的测试,可以使用专门的测试工具,如 hdparm:

测试读取速度

sudo hdparm -Tt /dev/mmcblk0

测试写入速度

sudo hdparm -Tt /dev/mmcblk0

这些命令可以帮助评估 EMMC 的读写性能。

使用 e2fsck 检查文件系统如果 EMMC 上的文件系统存在问题,可以使用 e2fsck 工具来检查和修复文件系统:

检查文件系统

sudo e2fsck -f /dev/mmcblk0p3

修复文件系统(如果需要)

sudo e2fsck -pf /dev/mmcblk0p3

这里的 /dev/mmcblk0p3 是一个示例分区,根据实际情况替换为实际的分区。

示例:

排查 EMMC 丢失文件系统数据如果遇到 EMMC 分区丢失或文件系统损坏的情况

可以尝试以下步骤:

1.检查分区表:

使用 parted 或 fdisk 检查分区表:

parted /dev/mmcblk0 print

或者:

fdisk -l /dev/mmcblk0

3. 恢复分区表:如果分区表损坏,可以尝试恢复分区表:

parted /dev/mmcblk0 mklabel msdos

parted /dev/mmcblk0 mkpart primary ext4 0% 100%

这里创建了一个新的 MS-DOS 分区表,并创建了一个占据整个设备的 ext4 分区。

4. 检查并修复文件系统:

如果分区表恢复正常但文件系统损坏,可以使用 e2fsck 来修复:

sudo e2fsck -pf /dev/mmcblk0p3

总结

通过上述步骤,你可以将 EMMC 设备上的分区挂载到 Linux 文件系统中,并配置自动挂载以方便使用。如果还有其他问题或需要进一步的帮助,请随时提问。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表