专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
目录
相关文章推荐
北京新闻广播  ·  拟录3名本科生惹争议,后删除公示名单?国企回应 ·  20 小时前  
北京厚朴中医  ·  厚朴电子日历 ·  2 天前  
中国电信  ·  国际荣誉!首次获得! ·  3 天前  
51好读  ›  专栏  ›  嵌入式微处理器

嵌入式Linux下SD卡测试操作笔记

嵌入式微处理器  · 公众号  ·  · 2024-09-30 12:00

正文


1、 lsblk详解

首先跟大家介绍lsblk命令,l sblk 是一个用于列出所有块设备的命令,提供有关设备的详细信息,例如设备名称、大小、类型和挂载点等。它非常有用,尤其是在管理磁盘和分区时。

基本用法:直接输入,lsblk

这将输出系统中所有块设备的列表,包括硬盘、SSD、USB驱动器等。

常用选项:


输出示例:

运行 lsblk 命令后的输出可能类似于以下内容:

   

各列说明:

  • NAME : 设备名称。
  • MAJ:MIN : 主设备号和次设备号。
  • RM : 是否为可移动设备(1 表示是,0 表示否)。
  • SIZE : 设备的大小。
  • RO : 是否为只读(1 表示是,0 表示否)。
  • TYPE : 设备类型(如 disk、part、rom 等)。
  • MOUNTPOINT : 设备的挂载点,如果设备未挂载,则为空。

实用场景:

  • 查看磁盘分区 : 使用 lsblk 可以快速查看系统所有存储设备及其分区情况。
  • 确认挂载情况 : 能够轻松查看哪些设备已经挂载,以及挂载的位置。
  • 了解文件系统 : 配合 -f 选项,可以了解每个设备的文件系统类型,便于管理。


2、如何格式化SD卡

我们在拿到一个张新卡,或者需要格式化一张旧卡就需要执行该过程:

首先如果是一张旧卡,且已经插入并挂载到了文件系统,就需要umount卸载对应的SD卡。

如上图所示,直接卸载对应的SD卡,则在对应的挂载点不再显示目录。

然后接下来我们格式化SD卡需要借助另外一个命令fdisk。

fdisk 是一个用于管理磁盘分区的命令行工具,适用于Linux系统。它允许用户创建、删除、修改和查看磁盘分区。以下是 fdisk 的详细介绍,包括基本用法和常见选项。

基本用法: 打开终端并输入以下命令来运行 fdisk:

sudo fdisk /dev/sdX(mmcblkX)

其中 /dev/sdX (mmcblkX) 是你要操作的磁盘设 备(如 /dev/sda (mmcblkX) )。

当你输入如上命令行时就会进入fdisk的命令行:

  • m: 显示帮助菜单,列出所有可用命令。

  • p: 打印当前分区表。

  • n: 创建新分区。系统会提示输入分区类型(主分区或扩展分区),起始和结束扇区。

  • d: 删除现有分区。系统会提示输入要删除的分区编号。

  • t: 修改分区的类型。需要指定要修改的分区编号和新类型。

  • a: 设置分区为活动分区(启动分区)。

  • w: 保存更改并退出。

  • q: 不保存更改并退出。

  • c: 将分区标记为隐藏分区。

然后根据提示进行分区即 ,最后记得输入 w 保存更改,或者输入 q 放弃更改并退出。

最后我们需要在 对应的分区上格式化成相应的文件系统,通常SD卡采用FAT32,如输入sudo mkfs.vfat /dev/sdX(mmcblkX)

当然mkfs还有很多其他的文件格式可以设置mkfs.ext4等。

3、测试SD卡的速度

测试命令前先进行缓存清除,执行如下命令:

echo 3 > /proc/sys/vm/drop_caches

然后使用time和dd命令进行读写测试。

首先是进行读取测试:

命令解析: 使用 dd 工具从设备 /dev/mmcblk1 中读取数据,并将其输出到 /dev/null,具体含义如下:

  • time: 这个命令用于测量执行 dd 命令所需的时间。

  • dd: 是一个用于转换和复制文件的工具。

  • if=/dev/mmcblk1: 指定输入文件为 /dev/mmcblk1,通常是一个存储卡或MMC设备。

  • of=/dev/null: 指定输出文件为 /dev/null,即丢弃所有读取的数据,不进行保存。

  • bs=1M: 设置读写块大小为1兆字节(1MB),可以加速数据处理。

  • count=500: 指定读取500个块,总共读取500MB的数据。

  • conv=sync: 这个选项使得在处理数据时,如果读取的数据块较小,会用空字节填充到指定的块大小。

命令解析:使用 dd 工具从 /dev/zero 设备创建一个文件,并且在写入时进行时间测量。具体含义如下:

  • time: 用于测量执行 dd 命令所需的时间。

  • dd: 用于数据的转换和复制。

  • if=/dev/zero: 输入文件为 /dev/zero,这是一个特殊文件,用于生成连续的零字节。

  • of=/run/media/mmcblk1/test: 输出文件为 /run/media/mmcblk1/test,这是将要创建或写入的目标文件路径。

  • bs=1024k: 设置读写块大小为1024KB(即1MB),这意味着每次读取和写入的大小为1MB。

  • count=100: 指定写入100个块,因此总共会写入100MB的数据。







请到「今天看啥」查看全文