Lesson15 Linux系统中的磁盘管理
文章目录
1. 什么是磁盘管理
存储是每个计算机系统的基本需求,Red Hat Linux提供了一些强大的工具,他们能在大量的场景中管理多种类型的存储设备
磁盘管理是一项计算机使用时的常规任务,它以一组磁盘管理应用程序的形式提供给用户
它们位于"计算机管理"控制台中,包括查错程序和磁盘碎片整理程序以及磁盘整理程序
2. 本地存储设备的识别
fdisk 用于管理磁盘分区的实用程序
fdisk -l #真实存在的设备
cat /proc/partitions #系统识别的设备
blkid #系统可使用的设备
df #系统正在挂载的设备
实验条件:在真机里查看设备的情况
注:查看系统真实存在的硬盘设备,看到的不一定是系统识别的,还可能有系统无法识别的设备
存在的,不一定是能被系统识别的
能被系统识别的,不一定是可以使用的
可以使用的,不一定是正在使用的
这三个都不一样,均用不同的命令去查看
系统真实存在的不一定能被识别,能识别的不一定能被用,能用的不一定正在使用
fdisk -l
#真实存在的设备
cat /proc/partitions
#系统识别的设备
blkid
#系统可使用的设备
df
#系统正在挂载的设备
3. 设备的挂载和卸载
/dev/xdx | /dev/hd0;/dev/hd1; /dev/sda; /dev/sdb; /dev/sda1; /dev/sda2; /dev/sdb1 |
---|---|
/dev/sr0 光驱 | /dev/cdrom |
/dev/mapper/* | 虚拟设备 |
命令格式:mount 设备目录 挂载点
mount /dev/sdb1 /mnt
#挂载sdb1到/mnt
umount /mnt | /dev/sdb1
#卸载设备
mount -o ro /dev/sdb1
#只读挂载
mount
#查看挂载信息
mount -o remount, rw /dev/sdb1 |/mnt/
#重新读写挂载
4. 解决设备正忙情况
出现上图这种情况,表示有程序正在使用此设备
解决方法1:
// fuser -kvm /mnt #直接关闭进程
或 fuser -vm /mnt 查看进程id,然后使用kill -9 pid 结束进程,再使用 umount /mnt卸载
解决方法2:
lsof /mnt/
查看占用设备的进程id,再使用kill -9 pid结束进程,之后再umount /dev/sdb1 此时发现就可以卸载了
5 磁盘分区
5.1 磁盘分区的基础知识
系统开机时,磁盘会从0磁道1扇区开始扫描, 其中包括512个字节,记录的信息包括mbr主引导记录(446个字节)
+mpt主分区表(64个字节)
+55aa硬盘有效性标识(2个字节)
主分区:主磁盘分区,直接在硬盘上划分,主分区不能再划分其他分区
扩展分区:是一个容器,为了划分逻辑分区而存在,扩展分区不能使用
逻辑分区:必须建立在扩展分区上
55aa:硬盘有效性标志(2个字节)
1个分区占用16个字节
1块硬盘上最多可以划分4个主分区
5.2 硬盘分区的步骤
实验环境:本实验是在server虚拟机中操作的
在server虚拟机中输入
fdisk -l
查看可以进行分区的硬件设备
可以看到,/dev/vdb有10.7G的空间可以供我们来做实验,我们选择这个设备
在server虚拟机中输入
fdisk /dev/vdb
,按n键表示要添加分区,按m会显示帮助信息
按n添加分区
按p表示添加一个主分区,当建立的分区小于三个时,默认为主分区
选择主分区的编号,系统可以自动检测出已经建立了几块分区,因此会默认是下一个分区编号,扇区的地址也是默认的,接下来填写分区的容量,我们填写+1G
按w即可保存
查看系统分区是否成功
可以看到vdb1已经存在,并且容量为1048576M,说明第一个主分区建立成功
按照同样的方式建立第二块分区大小为500M
可以看到,在保存的时候会有警告提示,这时需要按照警告提示输入partprobe
即可
按照上述方法添加第三块主分区,大小为500M,再添加第四块时要注意,第四块分区为扩展分区,在选择时应该填写e
,而不是p
,按回车键,将剩余的空间全部分给扩展分区
当把剩余的空间全部给了扩展分区时,就可以在扩展分区上再添加逻辑分区了
6. 给设备安装文件系统
注:主分区和扩展分区格式化之后才能用
先格式化再挂载,df才能查看到
文件系统类型 | 支持版本 | 容量 |
---|---|---|
ext3 | rhel5及之前的版本 | 最多支持32TB的文件系统和2t文件,实际2tb文件系统,16G文件 |
ext4 | rhel6 | 1EB 16TB |
xfs | rhel7 | 18EB 9eb 7G/s 4G/s |
df
#查看设备挂载状态,此时设备不能被挂载
mkfs.xfs /dev/vdb1
#格式化这个分区
mount /dev/vdb1 /mnt
#将这个分区挂载在一个目录上才能生效,df查看挂载状态 ,非永久挂载
永久挂载方式
vim /etc/fstab
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
在开机启动项中就会自动执行, 另一种挂载方式永久挂载 vim /etc/rc.d/rc.local
在系统开机后才进行挂载
mount -a
#使挂载生效
reboot
重启电脑之后,df查看挂载依然生效
7.swap分区的建立与删除
swap分区的建立是当内存不够用时用这个分区
划分分区,这里我们将分区6设为swap分区(按t键和L设定分区标签为82)
t--更改标示(id)
6 -- 更改/dev/vdb6的标识
l--查看所有标签及编号
82--swap的标示为82
同步分区查看设备是否可以被使用
mkswap /dev/vdb6
#将刚才建立的swap分区格式化使其生效
查看设备是否可以被使用
swapon -a /dev/vdb
#激活这个swap分区
swapon -s
#显示所有swap分区的信息
vim /etc/fstab 为永久激活
swap分区的删除
删除这个文件里的swap设定的信息vim /etc/fstab
或swapoff /dev/vdb6
swapon -a
#再次激活这个swap分区
swapon -s
#显示所有swap分区的信息
8. 磁盘配额
磁盘配额:为每个使用者合理分配磁盘资源
文件大小 文件个数
配额是针对分区的
mount -o usrquota /dev/vdb1 /mnt
chmod 777 /mnt
edquota -u student
这个文件里的东西都不用修改,都是事实,改了也没用,只改hard,100M
永久配额
vim /etc/fstab
/dev/vdb1 /mnt xfs defaults,usrquota
测试:切换到student用户下面执行
由于设置的分区额度为100M,当student用户截取分区的时候如果超过限度就会报错,并且只分配给用户最大的额度
bs =block size 一块的大小 zero of 无线空设备,没内容但有容量
9. 磁盘加密
磁盘加密过程是基于文件系统底层的加密,放在设备里的文件是被加密过的,当加密层被破坏,文件就不能被取出,安全性高,由于文件经过加密,但会影响磁盘的吞吐能力,读取速度会受到影响
cryptsetup luksFormat /dev/vdb2
#为硬盘设备加密,设置密码,加密方式为luks 这里的yes必须为大写
cryptsetup open /dev/vdb2 haha
# 打开加密设备,并且重命名 开放这个设备(打开盖子),需要输入密码
mkfs.xfs /dev/mapper/haha
#格式化这个虚拟设备,mapper 里存放虚拟设备
查看是否有设备挂载载/mnt下
若/mnt挂载点被占用,则要解挂卸载,空出/mnt
mount /dev/mapper/haha /mnt/
touch /mnt/file{1..5}
#在设备里面建立文件
umount /mnt/
#卸载
cryptsetup close haha
#关上盖子
可以看到,加密磁盘的类型为加密磁盘,不能进行任何操作
加密磁盘开机自动挂载
vim /etc/fstab
#挂载策略
vim /etc/crypttab
#解密文件
vim /root/hahakey
#存放密码
chmod 600 /root/hahakey
cryptsetup luksAddKey /dev/vdb2 /root/hahakey
#使它开机的时候读取上面的文件,进行自动挂载)
reboot
#重启之后df,查看此虚拟设备是否永久挂载