10. 存储设备(TF卡、U盘等)¶
本章节讲述一下,鲁班猫系列板卡的存储设备挂载
10.1. 查看硬盘¶
10.1.1. lsblk¶
列出所有可用块设备的信息,显示他们之间的依赖关系
1 | lsblk
|
如下图

如上图: 文本的左边列出了所有可用块的信息,文本的最右边是当前硬盘的挂载的位置。
可以看到当前的可用块有6个,分别是mmcblk1,mmcblk0,mmcblk0boot0,mmcblk0boot1,zram0,zram1
mmcblk0boot0和mmcblk0boot1是mmcblk0的一些信息,在lsblk中可以看到是只读的,我们就不用把这个当成可用块来使用。
zram0和zram1是zram交换分区,可以看成是用内存做一块虚拟盘,拿来作为Linux的交换分区。
mmcblk1是TF卡,,RM=0,大小32G,换算到系统里是29.7G,可读可写。
mmcblk0是板载eMMC,不支持热插拔,RM=0,大小32G,换算到系统是28.9G,可读可写。
10.1.2. fdisk¶
fdisk可以查看硬盘的一些基本信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #列出硬盘或者分区的基本信息
fdisk [options] -l [<disk>]
#修改硬盘或者分区的信息(自己去了解)
fdisk [options] [<disk>]
#例子如下
cat@lubancat:~$ fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 28.91 GiB, 31037849600 bytes, 60620800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2a0cb20c
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 40960 59998207 59957248 28.6G 83 Linux
cat@lubancat:~$
|
可以看到eMMC的一些基本信息
fdisk还可以修改硬盘的配置,具体方法这里不讲述,可以自行去了解
10.1.3. SD卡¶
SD卡的信息和eMMC是差不多的,他们使用同一个类型的驱动,SD卡在鲁班猫H618系列的系统里的默认设备是/dev/mmcblk1,SD卡有点特别, 在lsblk内显示是不可移动的,可能是因为SD卡可以作为系统镜像来启动鲁班猫,所以没有将SD卡标志为可移动设备。
分区号为/dev/mmcblk1p#(#为1,2,3,4,5,6,7)
10.1.4. U盘¶
U盘在鲁班猫H618系列的系统里的默认设备是/dev/sdx(x为a,b,c,d,e…),这需要根据你安装设备数量来决定他的设备号。 在lsblk中会显示该设备是可移动的设备。
分区设备号为/dev/sdx#(x为a,b,c,d,e…)(#为1,2,3,4,5,6,7)
10.2. 手动挂载¶
10.2.1. 挂载硬盘¶
比较基础的命令
1 2 3 4 5 | #创建你要挂载到的文件夹(如果有自己要挂载的文件夹可以不用创建)
mkdir /mnt/mydir
#挂载硬盘
mount /dev/xxx /mnt/mydir
|
/dev/xxx是你硬盘的分区设备
/mnt/mydir是你要挂载的文件夹,因为常用的文件夹挂载的地方为/mnt或/media,所以这里在/mnt/mydir挂载硬盘。
mount的功能十分丰富,这里只是简单讲一下mount的基本用法,如果有需要可以自行查找mount的具体用法
10.2.3. fstab自动挂载(设备分区)¶
注解
这种方法适合存储设备单一,硬盘设备号不变的自动挂载
1 2 | #修改/etc/fstab文件
vi /etc/fstab
|
1 2 3 | #添加以下内容
/dev/sdx /mnt/mydir auto defaults 0 2
|
/dev/sdx 是要挂载的硬盘分区
/mnt/mydir 是要挂载的文件夹
auto 要挂载的硬盘分区的文件系统格式,”auto”是自动判断文件按系统格式,除此之外还有”ext4”,”ntfs”等
defaults 配置文件的模式,”defaults”是默认选项,除此之外还有”mode=1777”,”rw,noauto”等
0 和 2 分别是备份和检查顺序
10.2.4. fstab自动挂载(UUID)¶
注解
这种方法适合存储设备多且存储设备号会随时改变的情况
UUID是”Universally Unique Identifier”(通用唯一标识符)的缩写。它是一个用于唯一标识计算机系统中各种资源(如磁盘、分区、文件、目录等)的标识符。
UUID是一个128位的数字标识符,通常以16进制表示。它的目的是在不同的系统和环境中保持唯一性,避免冲突和重复。每个UUID都应该是唯一的,即使在不同的计算机或网络中也是如此
1 2 3 4 5 | #方法1:列出硬盘分区的UUID
lsblk -o NAME,UUID
#方法2:列出硬盘分区的UUID
blkid
|
获取你硬盘分区的UUID
1 2 | #修改/etc/fstab文件
vi /etc/fstab
|
1 2 3 | #添加以下内容
UUID=xxxxx /mnt/mydir auto defaults 0 2
|
注解
除了UUID,PARTUUID也有着和UUID一样的功能,这里就不过多赘述了
10.3. 硬盘测速¶
10.3.1. dd¶
dd命令的一些参数说明和使用可以参考: https://www.runoob.com/linux/linux-comm-dd.html
dd命令不仅可以用来文件传输、镜像烧录,也能用来硬盘测速,具体操作如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #下列操作需要在root账户下运行,当前为TF卡系统
#硬盘挂载,将eMMC的mmcblk0p1分区挂载到/mnt目录下
mount /dev/mmcblk0p1 /mnt/
#查看挂载情况
df -h
#进入挂载的/mnt目录
cd /mnt
#测试eMMC的无缓存写入速度
echo 3 > /proc/sys/vm/drop_caches
#写入1024M数据
dd if=/dev/zero of=test bs=1M count=1024 oflag=direct
#oflag=direct 跳过系统内存缓存,将数据写入
#oflag=sync 跳过硬盘内部的缓存写入
#测试eMMC的无缓存读取速度
echo 3 > /proc/sys/vm/drop_caches
#写入1024M数据,oflag=direct表示跳过系统内存缓存,将数据写入
dd if=test of=/dev/null bs=1M count=1024
#硬盘卸载
cd -
umount /mnt
|
演示如下:

10.3.2. hdparm¶
hdparm命令的一些参数说明和使用可以参考: https://www.runoob.com/linux/linux-comm-hdparm.html
注意
hdparm是用于测试磁盘性能的简单工具,但只能测试硬盘的读取速率。
1 2 3 4 5 6 7 8 9 | #测试eMMC读取速率
hdparm -t /dev/mmcblk0p1
#测试tf卡读取速率
hdparm -t /dev/mmcblk1p1
#测试eMMC缓存读取速率
hdparm -T /dev/mmcblk0p1
#连续测试5次EMMC读取速率和缓存读取速率
for i in {1..5};do hdparm -tT /dev/mmcblk0p1;done
|
演示如下:
