Linux存储的基本管理
前期准备
本章主要是关于Linux系统下硬盘设备的分区/挂载/格式化以及部分高级设置的.
为了后文实验,需要进行以下前期准备.
- 准备一台相对清洁的虚拟机
- 为虚拟机添加一块全新的虚拟硬盘,本文中设置为5G.
- 确保
mnt
目录下的文件已经备份或删除,避免数据损失.
Linux下的设备识别与查看
在一块设备被添加到系统中后,会在系统中记录并反映出来.
不同类型的设备所显示的类型也是不同的,方便区分.
##设备查看相关命令
fdisk -l ##查看真实设备情况
lsblk ##设备使用情况
blkid ##设备管理方式及设备ID
df ##查看正在被系统挂载的设备
cat /proc/partitions ##查看系统识别设备
通过上述命令的解释我们不免能发现部分描述上的不同.
当一块设备被添加到系统后,被视作以文件形式存在.
如果设备本身没有问题那么它就会被系统所识别,但识别不代表挂载.
只有被挂载到到系统中的设备可以被df
查看.
同理,只有挂载并正确安装了文件系统的设备才能在blkid
中显示出来.
值得一提的是,但使用df
时能看到的挂载设备占用空间等数据的数字巨大是因为其使用的单位.
为了方便用户感知可以通过添加参数的方式来改变显示方式.
但默认是没有单位的
df -h ##以1MB=1024KB的进制方式以MB显示数据大小
df -H ##以1MB=1000KB的进制方式以MB显示数据大小
不同类型的设备在显示中的名称也很好识别.
/dev/sda /dev/sdb ##SATA/SAS/USB设备在系统中的显示情况
##s表示SATA, d表示DISK, a/b表示第几个设备
/dev/hd0 /dev/hd1 ##IDE设备在系统中的表示方式
/dev/vda /dev/vdb ##VIRTIO-BLOCK设备
/dev/nvme0 ##M2的SSD在系统中的显示方式
/dev/mmcblk0 ##SD/MC/EMMC格式设备的显示方式
/dev/cdrom /dev/sr0 ##光驱
设备挂载
当设备被添加到系统后,会被系统所识别.
但仅仅是被识别并不能被系统所使用,必须将设备挂载到系统后才能正常进行交互.
设备的挂载使用mount
命令,卸载使用umount
命令.
##简单用法
mount 设备 挂载点 ##将指定设备挂载到指定挂载点
umount 设备/挂载点 ##卸载指定设备
##携带参数的用法
mount -o 参数 设备 挂载点 ##将指定设备以附加参数的方式挂载到指定挂载点
mount -o rw /dev/sdb1 /mnt ##将sdb1以可读写的方式挂载到mnt目录下
mount -o ro /dev/sdb1 /mnt ##将sdb1以只读方式挂载到mnt目录下
mount -o remount,ro /mnt ##将mnt目录下的设备重新以只读的方式挂载
mount ##不加任何参数时会列出所有被挂载的设备信息
当卸载设备时,需要设备本身不被占用.
如果对正在被占用的设备使用umount
命令,则会提示设备正忙.
可以通过fuser
命令查看占用程序并关闭.
fuser -vm 挂载设备/挂载点 ##查看挂载设备的占用情况
fuser -kvm 挂载设备/挂载点 ##批量结束占用设备的进程
##参数含义
-k ##结束进程
-v ##显示详细信息
-m ##显示进程
mount
命令的挂载本质上是临时挂载.当重启系统或重新登陆系统后会发现先前的挂载消失了.
如果需要对设备进行永久挂载,则需要修改挂载策略文件.
vim /etc/fstab
/dev/sdb1 /mnt iso9660 defaults 0 0
上面为在挂载策略文件中添加的内容,依次表达的意思是:
- 挂载设备
- 挂载点
- 文件系统类型
- 挂载参数
- 是否备份
- 是否检测
值得一提的是如果你在fstab
中对于永久挂载策略的编写出现了问题,那么开机时就会卡死在设备挂载上.需要手动进入shell
模式对该文件重新进行编辑和修改才能正常启动系统.
在写入新的策略到文件中后,并不会立刻生效,可以通过重启系统或命令刷新的方式来使之生效.
mount -a ##重新读取fstab文件,使新的策略生效