10. 存储设备(TF卡、U盘等)

本章节讲述一下,鲁班猫系列板卡的存储设备挂载

10.1. 查看硬盘

10.1.1. lsblk

列出所有可用块设备的信息,显示他们之间的依赖关系

1
lsblk

如下图

未找到图片
  • 如上图: 文本的左边列出了所有可用块的信息,文本的最右边是当前硬盘的挂载的位置。

  1. 可以看到当前的可用块有6个,分别是mmcblk1,mmcblk0,mmcblk0boot0,mmcblk0boot1,zram0,zram1

  2. mmcblk0boot0和mmcblk0boot1是mmcblk0的一些信息,在lsblk中可以看到是只读的,我们就不用把这个当成可用块来使用。

  3. zram0和zram1是zram交换分区,可以看成是用内存做一块虚拟盘,拿来作为Linux的交换分区。

  4. mmcblk1是TF卡,,RM=0,大小32G,换算到系统里是29.7G,可读可写。

  5. 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.2. 卸载硬盘

1
umount /mnt/mydir
  • /mnt/mydir是你已挂载的文件夹,可以用lsblk查看

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”等

  • 02 分别是备份和检查顺序

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

演示如下:

未找到图片