实验环境:
virt-manager 添加一个5G的硬盘
一.设备识别
设备接入系统后都是以文件的形式存在
1.设备文件名称:
SATA/SAS/USB /dev/sda,/dev/sdb ##s= SATA硬盘, d=DISK a=第几快
IDE /dev/hd0,/dev/hd1 ##h= hard
VIRTIO-BLOCK /dev/vda,/dev/vdb ##v=virtio
M2(SSD) /dev/nvme0,/dev/nvme1 ##nvme=m2
SD/MMC/EMMC(卡) /dev/mmcblk0,/dev/mmcblk1 ##mmcblk=mmc卡
光驱 /dev/cdrom,/dev/sr0,/dev/sr1
2.设备查看
fdisk -l ##查看磁盘分区情况
lsblk ##设备使用情况
blkid ##设备管理方式及设备id
df ##查看正在被系统挂载的设备
df -h #统计设备大小,2的n次方为单位
df -H #统计设备大小,10的n次方为单位
cat /proc/partitions ##查看系统识别设备
二.设备挂载
在系统中有设备id的设备是可以被系统使用的
1.设备临时挂载
umount 设备 挂载点 #卸载
mount ##查看挂载信息
mount -o rw /dev/vda1 /westos #读写形式挂载
mount -o remount,ro /westos ##转换挂载参数由读写变为只读
在卸载时当出现设备正忙:
fuser -kvm 设备 挂载点 #-k 结束进程 -v 现实详细信息 -m 显示进程
2.设备永久挂载
vim /etc/fstab ##设备挂载策略文件
/dev/sr0 /westos iso9660 defaults 0 0
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
此文件在编写完成后不会马上生效
mount -a ##重新读取/etc/fstab文件
此文件内容编写错误会导致系统启动失败
按照提示在操作界面输入超级用户密码
注释错误行
重启系统即可
三.设备中文件的查找
find
-name 名称
-user 用户
-group 组
-type f d s b l 文件类型
-perm 222 /222 -222 权限
-exec 执行
-maxdepth 1 最大深度
-mindepth 1 最小深度
-cmin 1 -1 +1 文件生成时间
-size +|-| 1M 文件大小
-o
-a
-not 除了
find /etc/ -name passwd
find /etc/ -maxdepth 1 -name passwd
find /etc/ -maxdepth 2 -name passwd
find /etc/ -maxdepth 2 -mindepth 2 -name passwd
find /mnt -user westos
find /mnt -not -user westos
find /mnt -user westos -o -user lee
find /mnt -user westos -a -group lee
find /mnt -type d
find /mnt -perm 111 #文件权限为111
find /mnt -perm -111 #文件权限u位有1 G位有1 o位有1
find /mnt -perm /111 #文件案权限u或G或O 含有1
find /mnt -perm /111 -type f -exec chmod ugo-x {} \; #{} 表示find命令查找结果
#\是为了转译“;”
1.名称
2.查找深度设置
find /mnt/ -maxdepth 1 -name "westos*" ##最大深度是1
find /mnt/ -maxdepth 4 -name "westos*" ##最大深度是4
find /mnt/ -mindepth 2 -name "westos*" ##最小深度是2
find /mnt/ -maxdepth 2 -mindepth 2 -name "westos*" ##最大最小都是2 即只要深度是2 的
3.类型
find /mnt/ -type d###目录
find /mnt/ -type f###文件
4.用户和组
find /mnt/ -user westos
find /mnt/ -user westos -o -user root ##o是或者的意思
find /mnt/ -user lee -a -group root ##用户是lee并且是root组, -a且,可以不要
find /mnt/ -user lee -not -group root ##lee用户并且不是root组
5.按照文件大小
dd if=/dev/zero of=/mnt/westosfile1.1 bs=1M count=10
if:输入文件,input file
of:输出文件,output file
bs:一块大小
count:块的数量
创建了一个10M的文件
find /mnt/ -size 10M ##大小是10M的文件
find /mnt/ -size -10M ##10M以下的文件
find /mnt/ -size +10M ##10M以上的文件
6.按照文件修改的时间
find /mnt/ -cmin +10 ##修改了超过十分钟的文件
-10 ##低于十分钟
10 ##等于十分钟
7.按照文件的权限
find /mnt -perm 444 ##查找路径下权限为444的文件
find /mnt -perm -444 ##文件权限 u位有r g位有r o位有r,缺一不可,wx随意
find /mnt -perm /444 ##文件权限的u位或g位或o位有r,有一个r就行,wx随意
8.查找并且执行
find /mnt -name westos\* -exec rm -fr {} \;
查找到的文件结果全部放入后边的{} \ 表示转意字符 和分号差不多
四.分区
分区方式: 位数 分区表大小 支持分区个数 支持单个分区大小
legacy (MBR) 32 64byte 主分区4个 2.2TB 所有分区16个
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
UEFI (GPT) 64 128byte 理论上无限制 8ZiB windows 128
1.MBR分区方式:
主分区
主分区表记录分区的信息并可以直接使用的分区
扩展分区
主分区表记录的分区,不可直接使用,只是逻辑分区容器
逻辑分区
扩展分区之上划分的分区叫做逻辑分区
分区方法一fdisk
建立分区
#fdisk /dev/vdb
Command (m for help): m ##获得帮助
d ##删除
l ##列出所有分区类型
n ##新建
p ##显示分区表
t ##更改分区类型
w ##保存更改
q ##退出
g ##设定分区方式为GPT
o ##设定分区方式为mbr
Command (m for help):n #新建
Partition type
p primary (0 primary, 0 extended, 4 free) ##主分区
e extended (container for logical partitions) ##扩展分区
Select (default p): p ##建立主分区
Partition number (1-4, default 1):1 ##分区表位置
First sector (2048-20971519, default 2048): ##分区起始位置推荐使用默认
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +100M ##分区结束位置
Command (m for help):wq ##退出保存,如果直接q表示退出不保存
添加分区属性
#udevadm settle ##同步分区表
#mkfs.xfs -K /dev/vdb1 ##格式化设备为xfs文件系统(相当与在/dev/vda1上安装设备管理软件)
##-K 不丢弃空数据块
#mount /dev/vdb1 /mnt/westos ##mount命令挂在为临时挂在,如果需要永久挂在需要编写/etc/fstab
#mount -a #刷新挂载
分区分区方法二parted
parted /dev/vdb mklabel msdos
parted /dev/vdb mkpart primary 1 100 #建立分区
parted /dev/vdb rm 2 #删除几号设备
2.常用文件系统对比
文件系统 FAT16 FAT32 NTFS EXT3 EXT4 XFS
最大卷 2GB 4GB 256TB 32TB 1EB 16EB
最大单个文件 4GB 8TB 16TB 2TB 16TB 8EB
最大文件个数 65536 4177920 42949 67295 32000个子目录 无限子目录
代表系统 DOS/Win95 Win98 Win2000以后 RHEL5 RHEL6 RHEL7~
#man 5 fs
3.分区删除
# vim /etc/fstab 把配置文件改回来
#umount /mnt 取消挂载
1.fdisk /dev/vdb 用d删除
2.dd if=/dev/zero of=/dev/vdb bs=1M count=1 把空文件导入分区文件
4.mbr分区方式转换成GPT
parted /dev/sda
(parted) mklabel
New disk label type? gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost.
Do you want to continue?
Yes/No? yes
(parted) quit
在RHEL8中可以直接使用fdisk /dev/vdb
g ##g表示把/dev/vdb设备的分区方式调整为GPT
五.swap分区
1.作用:
程序在运行时所有数据是在RAM
当RAM使用量超过了限额
为了使系统更加稳定
我们在硬盘上划分一部分空间来作内存缓冲区swap
当内存使用超过限额,内核会把内存中闲置的数据存放到swap中
当程序需要swap分区中的数据时内核将swap分区中的数据在交还给内存进程处理
2.swap分区大小建议:
内存大小 swap分区建议大小 当允许HIBERNATE
2GiB以下 内存两倍 内存3倍
2-8GiB 等于物理内存 物理内存2倍
8-64GiB 4GiB 1.5倍物理内存
64GiB以上 4GiB HIBERNATE不开
3.swap管理
swapon -s ##查看swap分区信息
创建swap分区
创建分区并设定分区的类型为Linuxswap
#fdisk /dev/vdb
t
l
82
#mkswap /dev/vdb1 ##格式化设备位swap格式
#swapon /dev/vdb1 -p 0-32767 ## -p表示指定swap的优先级
以上操作都位临时操作,如果永久添加swap分区
#vim /etc/fstab
/dev/vdb1 swap swap pri=4 0 0
#swapon -a #刷新
#blkid
删除swap
#vim /etc/fstab
/dev/vda1 swap swap pri=4 0 0 ##删除此行
#swapoff /dev/sda1
六.磁盘配额
1.作用:
设定用户能写入指定设备的最大额度
2.设定方法:
mount /dev/sda1 /pub/ -o usrquota ##挂载设备并激活配额参数
quotaon -uv /dev/sda1 ##激活配额
edquota -u lee ##设定用户lee配额
Disk quotas for user lee (uid 1001):
设备 用户已经创建数据 软限 硬限 户已经创文件个数 软限 硬限
Filesystem blocks soft hard inodes soft hard
/dev/sda1 20480 0 20480 1 0 0
3.永久开启配额
vim /etc/fstab
/dev/sda1 /pub xfs defaults,usrquota 0 0
测试:
su - lee
cd /pub
dd if=/dev/zero of=/pub/leefile bs=1M count=22 ##截取数据失败只能写入20M数据
4.关闭配额:
quotaoff -uv /dev/sda1 #关闭磁盘配额(-u 表示显示激活状态 -v 表示显示过程)
vim /etc/fstab ##去掉配额参数usrquota
实验:
fdisk /dev/vdb设置/dev/vdb分区,新建一个大小为100M的/dev/vdb1设备
格式化设备为xfs文件系统,挂载设备到/westos目录,挂载完成后修改目录权限
切换用户切换目录到/westos,dd创建文件直到设备空间被占满,这显然是不合理的
切换回超级用户,卸载/dev/vdb1重新挂载并激活配额参数usrquota,mount查看挂载信息可以看到挂载到/dev/vdb1的配额参数被激活
为westos用户设定磁盘配额为20M(默认单位为K),此时普通用户上传文文件大小受限制,用户westos只能写入大小为20M的数据。
以上操作都为临时操作,要永久为指定用户设定磁盘配额需要编写挂载策略文件/etc/fstab.
此文件编写后不会立即生效,需要mount -a重新读取设备挂载策略文件,接着为用户设定磁盘配额,完成操作后普通用户上传数据大小受限制。
quotaoff -uv 设备 关闭磁盘配额(-u 表示显示激活状态 -v 表示显示过程),之后,普通用户上传数据大小不受限制