文章目录
为什么对磁盘进行管理
-
存储是每个计算机系统的基本需求。
Red Hat Linux 提供了一些强大的工具,它能在大量的场景中管理多种类型的存储设备。 -
磁盘管理是一项计算机使用时的常规任务,它以一组磁盘管理应用程序的形式提供给用户。
它们位于"计算机管理"控制台中,包括查错程序和磁盘碎片整理程序以及磁盘整理程序。
磁盘的管理
本地存储设备的识别
fdisk 是用于管理磁盘分区的实用程序
fdisk -l #查看系统中真实存在的设备
cat /proc/partitions#查看能被系统识别的设备
blkid #查看系统可使用的设备,查看系统中磁盘的格式
df #查看系统正在挂载使用的设备
df -H #查看所有已经挂载的使用情况
图示:
1.
2.
3.4567
8
注意:
- 系统中真实存在的不一定能被系统识别。
- 能被系统识别的不一定可用,想象windows下U盘有时候被识别,但是提示不可用。可能因为 blkid 和系统的软件不能对接。
- 系统中可用的,不一定是正在用的。
设备的挂载和卸载
设备名称
(1)/dev/xdx
/dev/hd0; /dev/hd1
/dev/sda1 /dev/sdb1 s代表STAT 磁盘为串行接口。d代表device a代表one 磁盘接口还有一种ide 并口形式。
/dev/vda /dev/vdb 在虚拟机里的磁盘为此格式。
(2)/dev/sr0 光驱 包括/dev/cdrom
(3)/dev/mapper/* 虚拟设备
设备的挂载
mount 设备 挂载点目录
mount /dev/sdb1 /mnt #挂载/dev/sdb1(一般为u盘)到/mnt下
mount -o ro /dev/sdb1 /mnt #只读挂载 ,可用mount查看只读情况
mount -o remount,rw /dev/sdb1 或者/mnt #重新读写挂载
mount #查看挂载信息
只有root可以对设备进行挂载
设备的卸载
umount /mnt 或者 /dev/sdb1
解决设备正忙情况
设备正忙情况指的是当你要卸载某个设备,如u盘时,由于U盘正在使用,提示不可卸载,因为target is busy 。
解决方法一:
fuser -vm 设备挂载点目录 或者设备目录 # 查看设备被使用的情况,解决时不必执行
fuser -kvm 设备挂载点目录
umount 设备挂载点目录
方法二:
lsof 设备挂载点目录 # lsof /mnt #此时显示警告不影响
kill -9 设备的 PID
umount 设备挂载点目录
磁盘的分区
磁盘的一些基础知识,已经在硬件相关分类专栏中写过,这里不再赘述。
本文将一些重点知识再记录一次,加深理解。
磁盘分区的基础知识
-
主引导(mbr)是什么?
以windows系统为例,启动项在c盘,按下电源键之后,磁盘开始转动,但是磁盘怎么能知道自己怎样去找到c盘,即如何启动电脑呢?
这就需要用到主引导,它告诉磁头应该去读c盘的信息。主引导在0磁道的第一扇区。 -
0磁道1扇区的信息
大小:512字节
512=446 + 64 + 2
^
mbr mpt(主分区表) 55aa (硬盘的有效性标志)
3.硬盘分区表
64字节
1个分区占用16个字节
1块硬盘上最多划分4个主分区。
mbr(dos)单个分区大小不能超过2t,它包括主分区+扩展分区,总个数应该小于等于16。
扩展分区是个容器,里面装着逻辑分区,当扩展分区(容器)损坏后,里面的东西也会损坏。扩展分区容器在第四个分区的位置。
gpt 分区可分最多128个分区
mbr 分区的步骤
此实验在虚拟机中做
fdisk /dev/vdb vdb为虚拟机里的硬盘
图示:
此命令查看系统的硬盘信息
开始分区:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019110515091365.png
常用参数及其说明:
d | 删除某个分区 |
---|---|
n | 新建分区 |
p | 显示分区信息 |
q | 退出分区界面 |
t | 修改分区id,修改分区的类型 |
w | 保存分区表信息到硬盘 |
partprobe #同步分区表,建议分区完后执行此命令,否则可能不能被系统识别
改变分区表记录方式
将原来的mbr格式改变成gpt格式,改变格式会破坏掉原格式下的数据
parted /dev/vdb
输入
mklabel
gpt
fdisk -l
fdisk /dev/vdb #再分区时,采用gpt格式。
给设备安装文件系统
1.装文件系统也就是把分区格式化,只有分区格式化后分区才能被使用。
先格式化再挂载,df才能查得到。
格式化(format)是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。
2.三 种文件系统类型:
ext3 rhel5及之前的版本 最多支持32TB的文件系统和2t文件,实际2tb文件系统,16G文件
ext4 rhel6 1 EB 16TB
xfs rhel7 18EB 9eb 7G/s 4G/s
3. 实现步骤
设置临时生效
df # 查看当前挂载状态
mkfs.xfs /dev/vdb2 #格式化此分区
mount /dev/vdb2 /mnt #将分区挂载在一个上才能生效
df # 查看此时挂载状态
umount /mnt 卸载,不影响下一个实验的效果
设置永久生效
reboot之后挂载依然生效
1. vim /etc/fstab
添加
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
2. mount -a 激活设置
3. df 查看挂载
图示:
vim /etc/fstab
swap分区管理
什么是swap分区
Swap分区在系统的物理内存(这里应该是运行内存)不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
swap分区可以看成物理硬盘的缓存区。
计算机用户会经常遇这种现象。例如,在使用Windows系统时,可以同时运行多个程序,当你切换到一个很长时间没有理会的程序时,会听到硬盘“哗哗”直响。这是因为这个程序的内存被那些频繁运行的程序给“偷走”了,放到了Swap区中。因此,一旦此程序被放置到前端,它就会从Swap区取回自己的数据,将其放进内存,然后接着运行。
swap分区的建立
临时建立
划分分区并设立分区id 为82
格式化建立的swap分区,swap分区才能生效。
mkswap /dev/vdb6
激活swap分区
swapon -a /dev/vdb1
查看swap 分区
swapon -s
永久建立
reboot之后还是swap分区
vim /etc/fstab
添加:
/dev/vdb1 swap(类型) swap (用途) defaults 0 0
reboot之后
脚本形式自动化建立swap分区
vim /bin/create_swap.sh
添加
chmod +x /bin/create_swap.sh
swap分区的删除
vim /etc/fstab 删除里面的内容
swapoff /dev/vdb1 关闭swap分区
swapon -s 再查看时没有了
配额管理
配额是什么
配额即设置额度。配额是针对分区的。
举例理解:
当一块100M的硬盘有5个用户使用时,每个用户平均分配硬盘大小。使每个用户能使用的大小是20M。
此时应对设备设定配额,而不是对用户。
当某一用户写入的大小超过20M时,会报错。
如你写的是45,系统给你能给的最多的20M。
临时设置配额
由于分区之后没有对/vdb6进行格式化,因此先格式化。
建立一个挂载目录 mkdir /public
建立一个主分区 /dev/vdb5
mount -o usrquota /dev/vdb5 /public #挂载分区
chmod 777 /public #设置权限 给文件设置权限应在设备挂载好之后设置,否则当挂载上之后,会恢复为默认的
。
edquota -u student 设置student用户可使用的额度
mount查看一下
测试:
su - student
dd if=/dev/zero of=/public/studentfile bs=1M count=200
超过额度,会报错。
永久设置配额
vim /etc/fstab
添加
/dev/vdb5 /public xfs defaults,usrquota 0 0
永久之后,reboot之后,只需重新挂载就可使用。
磁盘加密
磁盘加密是什么?(图解)
LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准,操作简单,只有在挂载磁盘时需要输入密码,在写入和读取磁盘时不需要。
如图所示:
磁盘加密的优缺点
优点:增加了系统的安全性。
缺点:会降低磁盘的读写速度,增大cpu的负载 。
以牺牲系统性能为代价,增加系统安全性。 因此应该对核心磁盘进行加密。
磁盘加密的实现步骤
-
df 查看设备是否挂载,如果挂载的话,就先卸载。
-
cryptsetup luksFormat /dev/vdbx
#给某一磁盘设备为加密类型,给设备盖上盖子。
-
blkid #查看设备类型
-
cryptsetup open /dev/vdbx westos
#打开盖子,并且给盖子随便起一个名字 -
ll /dev/mapper/westos
查看虚拟设备
-
mkfs.xfs /dev/mapper/hello
#格式化虚拟设备
-
mount /dev/mapper/hello /mnt/
挂载设备
9.
8. touch /mnt/file{1..10}
#在设备里添加文件
8. umount /mnt/
#使用完毕卸载设备
9. df
10. cryptsetup close hello
关闭盖子
当再次挂载时,需要密码,
挂载上就可随意操作。
cryptsetup open /dev/vdbx disk
#再想用设备时,再打开盖子,此时的名字可以随便起,和之前无关。
不打开盖子,直接mount会报错。
mount /dev/mapper/disk /mnt
#再挂载
加密磁盘的开机自动挂载
当磁盘是加密的时,系统启动时不能自动挂载。
因为在‘打开盖子’时需要输入密码,才可以使用。
可以使用加密设备自动挂载,使加密磁盘开机挂载。
实现步骤:
1
vim /etc/fstab 添加挂载策略
添加
/dev/mapper/westos /mnt xfs defaults 0 0
vim /etc/crypttab 编辑解密文件
添加
westos /dev/vdbx /root/westoskey
vim /root/westsokey #此文件名字可以随便起 这是密码文件
添加密码 密码大于等于8位
2019westos
cryptsetup luksAddKey /dev/vdbx /root/westoskey #开机的时候,自动读取上面的几个文件,实现自动挂载
5.进行reboot测试 df 查看是否自动挂载
注意
上述三个文件,只要出现错误,可能会导致系统启动失败。
删除加密磁盘的自动挂载
1. vim /ect/fsatb #删除此文件与加密有关内容
2. vim /etc/crypttab #删除此文件与加密有关内容
3. cryptsetup luksRemoveKey /dev/vdb3 /root/westoskey
彻底删除加密设备,只删设备,设备里面的文件会被破坏,因为没有办法进行解密。
4. umount /mnt 卸载
5. cryptsetup close hello
6. mkfs.xfs /dev/vdb3 -f 强制格式化
7. partprobe #同步分区表