配置环境:先为虚拟机添加一块硬盘
在真机中建立一块10G的动态硬盘,添加到虚拟机B上
一.设备识别
外部存储设备接入系统后,都是以文件的形式存在
文件名词解释:
SATA/SAS/USB /dev/sda,/dev/sdb ##s=SATA,d=DISK a=第几块
IDE /dev/hd0,/dev/hd1 ##h=hard
VIRTTO_BLOCK /dev/vda,/dev/vdb ##v=virtio,vda就表示第一块虚拟硬盘
M2 (SSD) /dev/nvme0,/dev/nvme1 ##nvme=m2
SD/MMC/EMMC dev/nmcblk0,/dev/nmblck1 ##nmclk=mmc卡
光驱 /dev/cdrom,/dev/sr0,/dev/sr1
当前设备查看
fdisk -l 查看磁盘分区情况
lsblk 设备使用情况,可以看到当前硬盘有几个分区
blkid 设备管理方式及设备id
df 查看正在被系统挂载的设备
cat /proc/partitions 查看系统识别设备
二.设备挂载
1 临时挂载
在系统中有设备ID的存储设备时可以被系统使用的,使用前需要先将其挂载到系统目录中才可以被读取
mount -o 挂载参数 device 挂载点
umount 设备|挂载点 ##卸载时,输入设备名称或者挂载点位置都可以卸载调
mount ##查看挂载信息(例如设备的权限查看)
mount -o rw /dev/vda1 /westos ##挂载的设备有读写权限
mount -o remount,ro /westos ## 转换挂载参数,由读写变为只读
重新挂载boot分区到其他目录下
在卸载时当出现设备正忙
fuser -kvm 设备|挂载点
## -k 结束进程 -v详细信息 -m 显示进程
注:在shell中以mount命令进行的挂载都是临时挂载,系统重启后会不会自动挂载。
2 设备永久挂载
编写设备挂载策略文件,可以实现设备的永久挂载
vim /etc/fstab
##编辑设备挂载策略文件
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
UUID=14b62de7-c160-4f82-9cb3-2187437c52ee / xfs defaults 0 0
/dev/vdb /erqian xfs defaults 0 0
此文件在编写完成后不会马上生效
mount -a
重新获取fstab 文件后生效
此文件内容编写错误会导致系统启动失败,启动时根据提示输入密码,修改fstab文件为正确的后即可重启成功
三. 设备中文件的查找
find命令:
find | ||
-name | 名称 | |
-user | 用户 | |
-group | 用户组 | |
-type | f d s b l | |
-perm | 111 /111 -111 | |
-exec | ||
-maxdepth 1 | 最深目录 | |
-mindepth 1 | 最浅目录 | |
-cmin | 1 -1 +1 | |
-size | + - 1M | |
-o | or | |
-a | and | |
-not |
用法:
在这里插入代码片
find /mnt/ -name passwd*
##在指定目录中查找以passwd开头的文件
find /mnt/ -maxdepth 4 -mindepth 2 -name passwd*
##在指定目录中查找以passwd开头的文件,查找深度最深为4,最浅为2
find /mnt/ -user westos
##查找拥有者为westos的文件
find /mnt/ -not -user westos
##查找拥有者不为为westos的文件
find /mnt/ -user westos -o -group root
##查找拥有者为westos的文件或者拥有组为root
find /mnt/ -user westos -a -group root
##查找拥有者为westos的文件并且拥有组为root
find /mnt/ -type d
##查找目录
find /mnt/ -perm 644
##权限为644
find /mnt/ -perm -444
## 目标文件里面含有444就可以
find /mnt/ -perm /744
## 目标文件任意ugo有744就可以
find /mnt/ -perm /744 -type f -exec chmod ugo-x {} \;
##查找目标文件任意ugo有744后,删除x权限 , {}表示find命令查找结果 \ 是为了转译";"
四 .存储设备的分区
分区方式 | 位数 | 分区表大小 | 支持分区个数 | 支持单个分区大小 |
legacy | (mbr) 32 | 64byte | 主分区4个,所有分区16个 | 2.2TB |
UEFI | (gpt) 64 | 128byte | 理论上无限制 | 8ZiB |
MBR分区方式:
**主分区:**主分区表记录分区信息并可以直接使用的分区
**扩展分区:**主分区表记录的分区,不可直接使用,只是逻辑分区容器
**逻辑分区:**扩展分区之上划分的分区叫做逻辑分区
MBR分区方式
分区方法
1)交互式新建分区:
[root@westoslinux Desktop]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xb0239b02.
Command (m for help): n ##新建
| m | 获得帮助
|-- |--
| d | 删除
| l | 列出所有分区类型
| n | 新建
| p | 显示分区表
| t | 更改分区类型
| w | 保存更改
| q | 退出
| g | 设定分区方式为GPT
| O | 所设定分区方式为MBR
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): ##分区表位置
First sector (2048-20971519, default 2048): ##分区起始位置,一般为默认,否则跳过的区间会被浪费
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +100M ##分区结束位置
Created a new partition 1 of type 'Linux' and of size 100 MiB.
Command (m for help): wq ##退出并保存
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@westoslinux Desktop]#
2)分区格式化
udevadm settle
##同步分区表
mkfs.xfs -K /dev/vdb1 ##
格式化 -K 不丢弃数据块分区后的设备不能被直接使用,格式化相当于安装设备管理软件
3)挂载分区
mount /dev/vdb1 /mnt/
vim /etc/fstab
##编辑配置文件长久挂载
2.parted
parted是一个预装的操作硬盘分区的程序,支持多种分区表类型,可以使用单条命令来新建分区
parted /dev/vdb mklabel msdos 设定分区表类型
parted /dev/vdb mkpart primary 1 100 ##新建第二块分区时要从101开始
parted /dev/vdb rm 2 ##删除第二块分区
分区后的设备不能被直接使用,因为文件类型错误,此时要格式化设备(系统默认文件系统为xfs)
mkfs.xfs /dev/vdb1 #格式化设备为xfs文件系统,格式化之后即可正常挂载
mkfs.xfs /dev/vdb1 -f #若设备上有内容,则需要强制格式化磁盘,但磁盘上的文件都会丢失
删除第二块分区:
常用的文件系统对比
文件系统 | FAT16 | FAT32 | NTFS | EXT3 | EXT4 | XFS |
最大卷 | 2GB | 4GB | 256TB | 32TB | 1EB | 16EB |
最大单个文件 | 4GB | 8TB | 16TB | 2TB | 16TB | 8EB |
最大文件个数 | 65536 | 4177920 | 4294967295 | 32000个子目录 | 无限字母录 | 无限字母录 |
代表系统 | DOS,Win95 | Win98 | Win2000以后 | RHEL5 | RHEL6 | RHEL7~ |
设备删除
dd if=/dev/zero of=/dev/vdb bs=1M count=1
##mbr转换成gpt
rhel8.0中可以直接使用fdisk /dev/vdb
g #g表示把/dev/vdb设备的分区调整为gpt
六 swap 分区
作用:程序在运行时所有数据是在RAM。当RAM超过了限额,为了使系统更加稳定,我们在硬盘上划分一部分空间来作内存缓冲区swap。当内存使用超过限额,内核会把内存中闲置的数据存放到swap中。当程序需要swap分区中的数据时,内核将swap分区中的数据再交还给内存进程处理。
swap分区大小建议:
内存大小 swap分区建议大小 当允许HIBERNATE
2GiB以下 内存两倍 内存3倍
2-8GiB 等于物理内存 物理内存2倍
8-64GiB 4GiB 1.5倍内存
64GiB以上 4GiB HIBERNATE不开
swap管理
swapon -s
查看swap分区信息
fdisk /dev/vdb
新建swap分区,新建分区后转换为SWAP模式
udevadm settle
mkswap /dev/vdb2
#格式化设备为swap分区
swapon -a /dev/vdb2 -p 1
#指定优先级(范围位:0-32767),临时挂载操作
vim /etc/fstab
##编辑挂载策略文件,设置永久挂载
删除swap
swapoff /dev/vdb1
fdisk /dev/vdb
##用d进行删除分区
udevadm settle
##删除分区后,更新分区表
七 磁盘配额
通过设定当前磁盘可以被使用的最大份额,限制指定用户能写入的最大磁盘额度。
设定方法:
1)fdisk /dev/vdb ##新建分区
mkfs.xfs /dev/vdb1 ## 格式化分区
- mkdir /pub ##新建共享目录
chmod 777 /pub
mount /dev/vdb1 /westosdir/ -o usrquota 挂载设备并激活配额参数
quotaon -uv /dev/vdb1 激活配额
edquota -u westos 设定westos用户配额,设定最大为10M,
设备 | 用户已创建数据 | 软限制kb | 最大限制/kb | 用户已创建文件个数 | 软限制 | 硬限制 |
Filesystem | blocks | soft | hard | inodes | soft | hard |
/dev/vdb1 | 0 | 0 | 10240 | 0 | 0 | 0 |
~
vim /etc/fstab ##编辑挂载策略文件,永久开启配额
测试:
su - westos
cd /westosdir
dd if=/dev/zero of=/westos/westosfile bs=1M count =20 失败,只能写入10M数据
关闭配额后没有限制:
quotaoff -uv /dev/vdb1
##关闭配额参数usrquota
vim /etc/fstab