一、存储设备(磁盘)的识别
fdisk -l ###真实存在的设备(硬件对硬件)
cat /proc/partition ###系统可识别的设备,有的设备识别不了(无驱动)
blkid ###系统可使用的设备(软件对软件)
df ###系统正在挂载的设备
df -h ##系统正在挂载的设备,大小采用1Mb=1024Kb表示,更精确
df -H ##系统正在挂载的设备,大小采用1Mb=1000Kb表示
二、设备挂载和卸载
1.设备名称
/dev/* d $ ### * :hd并行硬件接口 (ide)| sd 串行硬件接口(sata) | vd虚拟硬盘(虚拟机中)
### $ : a 第一块 | b 第二块
/dev/sr0 ###光驱
/dev/mapper/* ###虚拟设备
2.挂载设备
挂载(可读写)-----安装“门”----"门">>目录------重复挂载会覆盖原挂载
mount 设备 挂载点
mount -o ro 设备 挂载点 ###只读挂载(先卸载)
mount -o rw 设备 挂载点 ###可读可写挂载(先卸载)
mount ###查看挂载信息
mount -o remount,rw 设备| 挂载点 ###重新读写挂载(挂载状态下可执行)
操作:
3.卸载设备
umount 设备 | 挂载点 ##卸载/mnt/或/dev/vdb1,两条命令效果一致
解决正忙(有程序占用):
法1:
fuser 挂载点 ===fuser -m 挂载点 ###查看占用
fuser -v 挂载点 ###查看占用详细信息(user、pid ...)
fuser -kvm 挂载点 ###解除占用
umount
法2:
lsof 挂载点 ###列出占用进程详细信息
kill -9 进程pid ###用pid结束占用进程
umount
操作:
有程序在使用此设备时,会出现设备正忙的报错
方法一:
fuser -kvm /mnt ##查看并结束挂载在/mnt/设备上的占用进程
umount /mnt ##卸载挂载在/mnt/上的设备
方法二:
三、磁盘分区(系统在硬盘中)
1.分区是由磁道和扇区共同决定;
零磁道1扇区是磁头的默认起始位置,记录信息如下:
446byte(mbr主引导记录,告诉磁头跳到启动分区)
+ 64字节(主分区表,每个分区大小为16byte,可画4个分区)(16进制=二进制0000)
+ 2 字节(55aa:磁盘有效性标识)
= 512字节
2.磁盘分区的两种方法
1)mbr分区方式
一块分区是16个字节(寄存器数据为16进制:一个16进制数=二进制0000);所以一块硬盘上如果是mbr的分区方式,主分区表的64byte最多可以划分4个主分区,最后一个主分区可以作为扩展分区(剩余字节的容器),再在其中划分若干个逻辑分区,使得这些逻辑分区的硬盘有效性标识保存在mbr中;
主分区+扩展分区+逻辑分区最多16个,多了的建立了无法识别使用;
mbr 分区模式下一个分区不能超过2T;
2)GTP分区方式
gpt一个分区不超过18Eb,1Eb=1000Tb;
最多可识别128个,多了的建立了无法识别使用
3)两种分区方式转化
注意:先卸载已挂载设备,否则有报错,更换不了
parted /dev/vdb ###更改分区方式
help---->mklabel-----><tab键>------->gpt | msdos------>quit
------>Information: You may need to update /etc/fstab. ##需更新此文件
fdisk -l
-------->Disk label type: gpt | dos ###建立分区方式为gpt | mbr
操作:
[root@localhost ~]# parted /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel ###更改分区方式
New disk label type? ###分区类型
aix amiga bsd dvh gpt loop mac msdos pc98 sun
New disk label type? gpt
(parted) quit
Information: You may need to update /etc/fstab.
[root@localhost ~]# fdisk -l
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: gpt ###转化成功
3.磁盘分区步骤
fdisk -l ####查看设备信息
fdisk /dev/vdb
m ##帮助
d ##删除
p ##显示分区信息
q ##退出
t ##修改分区id
n ##新建
w ##保存分区表信息到硬盘
注意:wq退出后可能保存分区信息失败,此时需要命令partprobe 手动同步分区表信息到硬盘
操作:
Command (m for help): n ##新建
Partition type:
p primary (1 primary, 0 extended, 3 free) ##主分区
e extended ##扩展分区
Select (default p): p ##当系统已经有三个主分区时,此处默认为扩展分区,分配大小时默认为分配所有空间给扩展分区
Partition number (2-4, default 2): ##id使用默认
First sector (2099200-20971519, default 2099200): ##分区起始块
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-20971519, default 20971519): +1G ##+100M ## 分区大小
Partition 2 of type Linux and of size 100MiB is set
Command (m for help): p ##显示分区信息
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0x000281e2
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
####同步分区表
###查看分区是否被系统识别
四、给设备安装文件系统
1.rhel各个版本使用的文件系统:
ext3 rhel5及之前的版本 最多支持32TB的文件系统和2t文件 实际2tb文件系统,16G文件
ext4 rhel6 最多支持1EB的文件系统和16TB文件
xfs rhel7 最多支持18EB的文件系统和9EB文件 读取速度可达(r)7G/s 写入速度可达(w)4G/s
2.挂载新建磁盘设备到系统目录
mkfs.xfs /dev/vdb1 ##格式化磁盘/dev/vdb1,并给磁盘安装xfs文件系统
blkid ##列出系统中可以使用的设备id
mount /dev/vdb1 /mnt/ ###挂载设备
注意:不能格式化/dev/vdb4,它是一个容器,否则整个硬盘将缺少更多空间使用。
操作:
[root@localhost ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1 isize=256 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="8191defd-8bc1-4a31-bd75-f132cf89063a" TYPE="xfs"
[root@localhost ~]# mount /dev/vdb1 /mnt/
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vdb1 98988 5280 93708 6% /mnt
3.永久挂载磁盘到系统目录
vim /etc/fstab #策略,开机自动挂载设备
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs efaults 0 0
五、swap分区管理
1. 建立swap分区
fdisk -l ####查看设备信息
fdisk /dev/vdb1
n ##新建
p ##查看分区信息
t ##修改分区类型
l ##列出所有类型
82 | 14 ##mbr的swap分区 | gpt的swap分区
p
wq
partprobe ###设备存在,但不识别;同步分区表,让系统识别
mkswap /dev/vdb1 ###格式化分区类型为swap文件系统格式
激活:(swap分区在使用时不需要挂载)
1)激活当前状态(一次性) swapon -a 设备
2)开机自动激活(永久) vim /etc/fstab
设备名 挂载点 设备类型 设备参数 是否备份 是否检测
swapon -s ###查看swap分区
2.取消swap分区
vim /etc/fstab 取消修改"dd" ###取消挂载永久分区,当前状态swap依然在
swapoff /dev/vdb1 ###取消当前分区
最后在fdisk命令中删除/dev/vdb1设备或使用命令mkfs.xfs /dev/vdb1 - f 将该设备格式化成xfs文件系统分区
操作:建立swap分区再 删除
[root@localhost ~]# fdisk /dev/vdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n ##新建
Partition number (1-128, default 1):
First sector (34-20971486, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +100M
Created partition 1
Command (m for help): p ###查看新分区
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: gpt
# Start End Size Type Name
1 2048 206847 100M Linux filesyste ###此时为普通分区
Command (m for help): t ###转化磁盘分区类型
Selected partition 1
Partition type (type L to list all types): l ###列出所有类型
Partition type (type L to list all types): 14 ###选择 Linux swap类型
Changed type of partition 'Linux filesystem' to 'Linux swap'
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: gpt
# Start End Size Type Name
1 2048 206847 100M Linux swap ###分区类型已改为swap
Command (m for help): wq
[root@localhost ~]# partprobe ###同步分区表
[root@localhost ~]# mkswap /dev/vdb1
mkswap: /dev/vdb1: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 102396 KiB
no label, UUID=1d9f35f8-681f-4cad-b2ee-77e5d9bf8fed
[root@localhost ~]# swapon -a /dev/vdb1 ###激活当前状态swap分区
[root@localhost ~]# swapon -s ###查看swap分区
Filename Type Size Used Priority
/dev/vdb1 partition 102396 0 -1
[root@localhost ~]# vim /etc/fstab ###设置开机自动激活
[root@localhost ~]# cat /etc/fstab
/dev/vdb1 swap swap defaults 0 0 ###配置文件内添加内容
[root@localhost ~]# vim /etc/fstab ###取消开机自动激活
[root@localhost ~]# swapoff /dev/vdb1 ###取消当前激活
[root@localhost ~]# mkfs.xfs /dev/vdb1 -f
六、磁盘配额(针对设备而不是针对用户的)
控制设备对磁盘的使用限额
1.设置权限
设备权限 > 目录权限(先挂载,再设置挂载目录权限。否则会覆盖)
mount /dev/vdb1 /public
chmod 1777 /public/ ###所有人都可读写执行,但只有文件所有人才可以删除
2.开启
umount /public/
mount /dev/vdb1 /public -o usrquota ###打开配额功能(得在卸载状态)
3.激活
quotaon -uv /dev/vdb1 ### -v显示过程,-u用户
4.编辑
edquota -u 用户名 ##配置某个用户的额度
设备名 已使用大小 警告 限制 目前文件个数 最多可建多少文件
Filesystem blocks soft hard inodes soft hard
/dev/vdb1 10240 0 10240 2 0 0
注:hard代表配额用户所能写入的最高额度,单位是KB
5.配置开机自启动
vim /etc/fstab ##配置开机自动启动
-------> /dev/vdb1 /public xfs defaults,usrquota 0 0
6.测试
1)repquota -a ###显示各用户配额信息
2)dd if=/dev/zero of=file bs=1M count=10 ###dd 输入内容为无限0字节 输入文件名 一块大小1M 一共输入10块
dd if=/dev/zero of=file bs=1M count=11
dd: error writing ‘file’: Disk quota exceeded ## 超过额度后会报错
7.文件大小受容量大小限制
文件个数受超级块大小限制,超级块越小,数量越多,利用率越高,但读取速度越慢(BBS论坛超级块小;门户网站超级块大)
七、磁盘加密
加密层在文件系统层之下:暴力解密后,文件系统层损坏,文件依然不会泻露。保证了安全性
加密前文件名/dev/vdb1
解密后文件名/dev/mapper/名
1.法一:命令方式磁盘加密
1)加密格式化:必须在卸载状态
cryptsetup luksFormat /dev/vdb1 ##大写YES ;密码
##挂载,读写不了
2)解密(一次性)
cryptsetup open /dev/vdb1 名字
3)作文件系统:格式化mkfs.xfs /dev/mapper/名字
挂载: mount /dev/mapper/lee /mnt
4)加密(关锁):必须在卸载状态 umount /mnt
cryptsetup close /dev/mapper/westos
5)开锁:cryptsetup open /dev/vdb1 名字 ###需要密码
操作:
[root@localhost ~]# partprobe ##同步分区表
[root@localhost ~]# cryptsetup luksFormat /dev/vdb3 ##先加锁
WARNING!
========
This will overwrite data on /dev/vdb3 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
[root@localhost ~]# cryptsetup open /dev/vdb3 lee ##开锁
Enter passphrase for /dev/vdb3:
[root@localhost ~]# mkfs.xfs /dev/mapper/lee ###再做文件系统
meta-data=/dev/mapper/lee isize=256 agcount=4, agsize=6272 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=25088, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/mapper/lee /mnt
[root@localhost ~]# touch /mnt/file{1..5}
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3340408 7133492 32% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 628 484304 1% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/vdb1 98988 5288 93700 6% /public
/dev/mapper/lee 96940 5176 91764 6% /mnt
[root@localhost ~]# umount /mnt/
[root@localhost ~]# cryptsetup close lee ##关锁
[root@localhost ~]# cryptsetup open /dev/vdb3 lee ##开锁
Enter passphrase for /dev/vdb3:
[root@localhost ~]# mount /dev/mapper/lee /mnt
2.方法二:脚本磁盘加密
vim /mnt/disk_crypt.sh
chmod +x /mnt/disk_crypt.sh
/mnt/disk_crypt.sh 名字
2. 加密磁盘开机自动挂载
1) vim /etc/crypttab ###此文件记录加密解密过程;配置加密分区与密码文件关联,未生效
westos /dev/vdb1 /root/westoskey
解密后名字 解密设备文件 密码位置
2) vim /root/westoskey ### 建立密码文件;此文件记录密码
-----> 2018lee
chmod 600 /root/westoskey ###为了安全,其他人都不可读写
3)cryptsetup luksAddKey /dev/vdb1 /root/westoskey ###将加密分区与密码文件关联;
4) vim /etc/fstab
/dev/mapper/westos /mnt xfs defaults 0 0
检测:reboot后虚拟机可起,并挂载成功
错误:若没有自动解密,只编辑永久激活文件/etc/fstab/中 /dev/mapper/westos /mnt
reboot后,虚拟机起不了。因为解密后的westos是一次性的,已经找不到
改错:在进系统时,按<e>
删除r后,改为rw rd.break
按<ctrl+z>切换到单用户
chroot /sysroot/ 进入真实的根目录
vim /etc/fstab,取消永久激活行
两次exit退出
错误操作及解决办法:
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# cat /etc/fstab
. . .
/dev/mapper/lee /mnt xfs defaults 0 0
[root@localhost ~]# reboot
/etc/fstab
再输入两次exit
正确操作:
[root@localhost ~]# vim /etc/crypttab
[root@localhost ~]# cat /etc/crypttab
lee /dev/vdb3 /root/leekey
[root@localhost ~]# vim /root/leekey
[root@localhost ~]# cat /root/leekey
2018lee
[root@localhost ~]# chmod 600 /root/leekey
[root@localhost ~]# cryptsetup luksAddKey /dev/vdb3 /root/leekey
Enter any passphrase:
[root@localhost ~]# vim /etc/fstab
3.磁盘加密恢复:
vim /etc/crypttab
vim /etc/fstab
cryptsetup close westos
mkfs.xfs /dev/vdb1 -f
rm -fr /root/westoskey