目录
##实验环境的设定
#添加一块硬盘(SATA) --> 10GB SATA ---->机械硬盘
#添加一块硬盘 (NVMe) -->10GB NVMe ---->固态硬盘
###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 ##mmcblk卡
###2.设备查看###
fdisk -l ##查看磁盘分区情况
lsblk ##设备使用情况
blkid ##设备管理方式及设备id
df ##查看正在被系统挂载的设备
df -h ##查看被挂载设备的同时 把它的容量按相应的单位进行显示
df -H ##H和h的容量显示方式不同
cat /proc/partitions ##查看系统识别设备
###3.分区###
#分区方式
分区方式(位数) | 分区表大小 | 支付分区个数 | 支持单个分区大小 |
legacy(MBR) | 32 64byte | 主分区4个 | 2.2TB 所有分区16个 |
UEFI(GPT) | 64 128byte | 理论上无限制 | 8ZiB Windows 128 |
##MBR分区方式
主分区
主分区表记录分区的信息并可以直接使用的分区
扩展分区
作为一个容器记录主分区以外的所有容量
主分区表记录的分区,不可直接使用,只是逻辑分区容器
逻辑分区
扩展分区之上划分的分区叫做逻辑分区
##GPT分区方式
分区表
首先会建立一个EFI的分区
后面建立的所有分区都由EFI来记录
##分区方法
#交互式划分磁盘分区
ot@rhel8_node1 mnt]# fdisk /dev/sdb
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 0x4018d2a4.
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 ##同步分区表
dd if=/dev/zero of=/dev/sdb bs=1M count=1 ##清空磁盘
#非交互式划分磁盘分区
parted /dev/sda mklabel gpt(msdos) ##设定分区的方式gpt(msdos)
parted /dev/sda mkpart primary 1 100 ##设定主分区1大小为100MB
parted /dev/sda rm 1 ##删除建立的主分区1
##3.常用文件系统对比##
文件系统 | FAT16 | NAT32 | NTFS | EXT3 | EXT4 | XFS |
最大卷 | 2GB | 4GB | 256TB | 256TB | 32TB | 1EB |
最大单个文件 | 4GB | 8TB | 16TB | 2TB | 16TB | 8EB |
最大文件个数 | 65536 | 4177920 | 4294967295 | 32000个子目录 | 32000个子目录 | 无限子目录 |
代表系统 | DOS/Win95 | Win98 | Win2000以上 | RHEL5 | RHEL 6 | RHE EL7 |
mkfs.xfs -K /dev/sdb1 ##格式化设备为xfs文件系统(相当于载/dev/sda1上安装设备管理软件)
##-K 不丢弃空数据块
###4.设备挂载###
在系统中有id的设备是可以被系统使用的
挂载命令:
mount -o 挂载参数 device 挂载点
mount /dev/sdb2 /mnt/ ##将/dev/sdb2挂载到/mnt/
umount 设备/挂载点 ##卸载
umount /dev/sdb2
mount ##查看挂载信息
mount -o ro /dev/sdb2 /mnt/ ##只读挂载信息
mount -o remount,rw /mnt/ ##读写挂载信息
”注意:以上设备挂载都是临时挂载“
##设备永久挂载
vim /etc/fstab ##设备策略挂载文件
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
/dev/sdb2 /mnt xfs defaults 0 0
此文件在编写完成后不会马上生效
mount -a ##重新读取/etc/fstab文件
此文件内容编写错误会导致系统启动失败
解决方法:按照提示在操作界面输入超级用户密码
注释错误行
重启系统即可
##设备卸载
在卸载时当出现设备正忙,
fuser -kvm 设备| 挂载点 ##-k 结束进程, -v 现实详细信息 -m 显示进程
fuser -vm /mnt/ ##查看设备上运行的shell
fuser -Kvm /mnt/ ##结束设备上运行的shell
umount /mnt
###5.设备中文件的查找###
##实验素材
touch /mnt/westosfile{1..5}
mkdir /mnt/westos
touch /mnt/westos/westostest{1..3}
useradd linuxrui
ls -lR /mnt/
chmod 600 westosfile1
chmod 660 westosfile2
chmod 444 westosfile3
chmod 440 westosfile4
chmod 000 westosfile5
chgrp westos westosfile1
chgrp linuxrui westosfile2
chown westos westosfile3
chown linuxrui westosfile4
chown linuxrui.linuxrui westosfile5
dd if=/dev/ zero of=/mnt/westosfile1
dd if=/dev/ zero of=/mnt/westosfile2
dd if=/dev/ zero of=/mnt/westosfile3
watch -n 1 ls -Rl /mnt/
find /mnt/ -name westos ##查找/mnt/下名称为westos的目录或文件
find /mnt/ -name westos* ##查找/mnt/下名称为westos的所有目录或文件
find /mnt/ -maxdepth 1 -name westos* ##查找/mnt/下名称为westos且深度为1的所有目录或文件
find /mnt/ -user root ##查找/mnt/属于超级用户的目录或文件
find /mnt/ -user linuxrui -group linuxrui
##查找/mnt/下所有人和所有组都属于linuxrui的目录或文件
find /mnt/ -user linuxrui -not -group linuxrui
##查找/mnt/下所有人属于linuxrui所有组不属于linuxrui的目录或文件
find /mnt/ -user linuxrui -o -group root
##查找/mnt/下所有组属于linuxrui或者所有组是root的目录或文件
find /mnt/ -type d ##查找/mnt/下的目录
find /mnt -cmin -1 ##查找/mnt/下在1分钟以内修改过的文件或目录
find /mnt -cmin +1 ##查找/mnt/下超过1分钟修改的文件或目录
find /mnt -size 20M ##查找/mnt/大小为20M的文件或目录
find /mnt -size -20M ##查找/mnt/小于20M的文件或目录
find /mnt -size +20M ##查找/mnt/大于20M的文件或目录
find /mnt -perm 444 ##查找/mnt/权限为444的文件或目录
find /mnt -perm -444 ##查找/mnt/三个位置权限都为444(并列关系)的文件或目录
find /mnt -perm /444 ##查找/mnt/三个位置权限有一个为4的文件或目录
find /mnt =perm /644 ##查找/mnt/ u位有读的权力,u位有写的权力,g位有读的权力,o位有读的权力的满足这四个权力其中一个的文件或目录
find /mnt =perm -644 ##查找/mnt/ u位有读的权力,u位有写的权力,g位有读的权力,o位有读的权力的满足这四个权力的文件或目录
-a ##表示并且
-o ##表示或者
###6.swap分区###
##swap分区的作用
程序在运行是所有数据是在RAM
当RAM使用量超过了限额
为了使系统更加稳定
我们在硬盘上划分一部分空间来作内存缓冲区swap
当内存使用超过限额,内核会把内存中闲置的数据存放到swap中
当程序需要swap分区中的数据时内核将swap中的数据再交还给内存进程处理
##swap分区的建议:
内存大小 swap分区建议大小 当允许HIBERNATE -->关机时讲书局保存在swap分区里
2GiB以下 内存两倍 内存3倍
2-8GiB 等于物理内存 物理内存2倍
8-64GiB 4GiB 1.5倍物理内存
64GiB 4GiB HIBERNATE不开
#swap管理
swapon -s ##查看swap分区信息
#创建swap分区
fdisk /dev/sdb ##创建分区
udevadm settle ##同步分区表
blkid ##查看设备id
mkswap /dev/sdb1 ##格式化设备为swap格式
swapon -a /dev/sdb1 ##激活设备/dev/sdb1
swapon -s
swapoff /dev/sdb1 ##关闭设备/dev/sdb1
swapon -a /dev/sdb1 -p 1 ##指定设备/dev/sdb1的优先级为1
创建分并设定分区的类型为Linuxswap
mkswap /dev/sdb1 ##格式化设备为swap格式
swapon /dev/sdb1 -p 0-32767 ## -p表示指定swap的优先级
以上操作都为临时操作
如果永久添加swap分区
vim /etc/fstab
/dev/sdb1 swap swap pri=4 0 0
swapon -a
#删除swap
vim /etc/fstab
/dev/sdb1 swap swap pri=4 0 0 ##删除此行
reboot ##重启后划分的swap分区仍然存在
###7.磁盘配额###
#作用:设定用户能写入指定设备的最大限额
#设定方法:
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
#永久开启配额
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数据
#关闭配额:
quotaoff -uv /dev/sda1