Linux 存储设备的挂载及识别

存储挂载的概念

将驻留在物理磁盘或虚拟镜像上的文件系统添加到现有目录树的过程称为挂载。其中挂载到系统的目录称为挂载点

存储设备由一个特殊文件类型表示,称为块设备。块设备存储在/dev目录下。在RHEL系操作系统中,检测到的第一个SCSI、SATA或USB存储设备叫sda,块设备在/dev/sda,第二个是sdb以此类推。该名称代表整个存储设备。若要挂载某一分区,那么在/dev/sda上的第一个分区叫sda1、第二个分区叫sda2以此类推。

虚拟机中的磁盘驱动器是例外情况,通常显示为/dev/vd(x)/dev/xvd(x)

查找存储设备

fdisk -l显示磁盘分区信息
df -h显示已经挂载的文件系统的信息。
lsblk树状图显示磁盘分区以及挂载信息

存储的挂载

常用mount <operation> <mountpoint>命令挂载存储设备,这种手动的挂载都是临时的,重启便失效。

参数1(operation):指定要挂载的文件系统

参数2(mountpoint):指定将要挂载的文件系统挂载到本机的目标目录(挂载点)

从发现存储设备到挂载存储设备的过程例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
lsblk # 使用命令`lsblk`发现存储设备以及分区
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 200M 0 part
└─sda2 8:2 0 1.8T 0 part /home/pi/disk
sdb 8:16 1 29G 0 disk
└─sdb1 8:17 1 29G 0 part
mmcblk0 179:0 0 119.3G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot
└─mmcblk0p2 179:2 0 119G 0 part /

# 找到了想要挂载的磁盘驱动器`sdb`,现在将这个驱动器的第一个分区`sdb1`挂载到本机的`/mnt/mydisk`目录下

mkdir /mnt/mydisk
# 创建目录作为挂载点

mount /dev/sdb1 /mnt/mydisk
# 将`/dev/sdb1`挂载到`/mnt/mydisk`目录上。

挂载过程.png

如果提示权限不足,请使用root权限操作。

现在已经将/dev/sdb1磁盘分区挂载到了系统的/mnt/mydisk挂载点上。

检查是否已经成功地挂载,可以使用df -hlsblk

检查挂载.png

解除挂载

使用umount <mountpoint>来解除对文件系统的挂载。

参数1(mountpoint):要解除挂载的挂载点

比如我们刚刚将/dev/sdb1挂载到了系统的/mnt/mydisk挂载点上,使用umount /mnt/mydisk即可解除挂载。

实现存储设备开机自动挂载

使用mount的挂载只是临时的,重启后就失效了,如果需要继续使用存储设备就要重新挂载,相当的麻烦。

实现开机自动挂载需要修改系统的/etc/fstab配置文件,在这个配置文件中添加一些要挂载存储设备的信息。

/etc/fstab修改比较危险,如果没有一定把握请不要使用这种方式挂载存储设备,如果配置有误,系统重启后将进入恢复模式无法正常的开机。

fstab支持两种配置方式:

  • 使用UUID配置(推荐。只要不格式化,UUID不会改变)
  • 使用存储设备的块设备文件/dev/sdb1(如果设备的顺序有变化或者向系统中添加了其他的设备,设备块设备文件路径会有变化导致系统无法正常启动)

使用lsblk -f列出系统中发现的现有分区以及文件系统的UUID和该分区文件系统的格式等信息。

1
2
3
4
5
6
7
8
9
10
lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
├─sda1 vfat EFI 67E3-17ED
└─sda2 exfat HD 5D31-C4ED 1T 44% /home/pi/disk
sdb
└─sdb1 vfat ESD-ISO F0ED-593A 28.9G 0% /mnt/mydisk
mmcblk0
├─mmcblk0p1 vfat boot 5203-DB74 199M 21% /boot
└─mmcblk0p2 ext4 rootfs 2ab3f8e1-7dc6-43f5-b0db-dd5759d51d4e 99.8G 11% /

lsblk-f.png

可以看到/dev/sdb1文件系统的格式为vfat,UUID为F0ED-593A

切换到root用户,编辑/etc/fstab文件,并按照fstab文件原有的格式添加到文件末尾行。

UUID=F0ED-593A /mnt/mydisk vfat defaults 0 0

fstab.png

使用mount -afstab配置文件中的全部磁盘分区以此进行挂载,如果没有报错,则配置文件编写正确。

使用df -h检查挂载点是否正确。