Linux系统中的设备管理
1. 设备识别
##设备接入系统后都是以文件的形式存在
设备文件名称:SATA/SAS/USB(/dev/sda)
IDE(/dev/hd0)
M2(/dev/nvme0)
SD/MMC/EMMC(/dev/mmcblk0)
VIRTIO-BLOCK(/dev/vda)
设备的查看命令
cat /proc/partitions #查看系统识别设备
fdisk -l #查看磁盘分区情况
lsblk #设备使用情况
blkid #设备管理方式及设备ID
df #查看正在被系统挂载的设备
2. 设备挂载
##在系统中能被系统挂载的设备必须有设备ID的设备,没有ID是不可以挂载的。
挂载命令:
mount 挂载参数 device 挂载点 #挂载
umount 设备/挂载点 #卸载
mount #查看挂载信息
注意:在卸载时出现设备正忙时
fuser -kvm 设备/挂载点 #K表示结束进程 V表示显示详细信息 m表示显示进程
mount -o rw /dev/nvme0n1p1 /westos
mount -o remount,ro /westos ##转换挂载参数由读写变为只读
注意:以上挂载都是临时的
怎样永久设定挂载呢?
首先编辑vim /etc/fstab #设备挂载策略文件
然后插入:设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
最后执行 mount -a ##重新读取/etc/fstab文件,立即生效
注意:此文件内容编写错误会导致系统启动失败,按照提示在操作界面输入超级用户密码 ,注释错误行 ,重启系统即可。
3. 设备中文件的查找
find
-name #文件名
-user #用户
-group #用户组
-type #类型
-perm #权限
-exec
-maxdepth #最大深度
-mindepth #最小深度
-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命令查找结果 #\是为了转译“;”
4.分区
分区方式:传统分区方式(MBR)和UEFI(GPT)
位数 分区表大小 支持分区个数 支持单个分区大小
(MBR) 32 64bit 主分区4个,所有分区16个 2.2TB
(GPT) 64 128bit 理论上无限制,windows下128个 8ZB
MBR分区方式:1.主分区:主分区表记录分区的信息并可以直接使用的分区。
2.扩展分区:主分区表记录的分区,不可直接使用,只是逻辑分区容器
3.逻辑分区:扩展分区之上划分的分区叫做逻辑分区。
#分区方法#
fdisk /dev/sda
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 ##退出
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表示退出不保存。
partprobe ##同步分区表
partx -d /dev/sda ##清理分区表
partx -a /dev/sda ##重新加载分区表
mkfs.xfs /dev/sda1 ##格式化设备为xfs文件系统(相当与在/dev/sda1上安装设备管理软件)
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
5.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分区信息
> 创建swap分区
创建分区并设定分区的类型为Linuxswap
mkswap /dev/sda1 ##格式化设备位swap格式
swapon /dev/sda1 -p 0-32767 ## -p表示指定swap的优先级 以上操作都位临时操作
> 如何永久添加swap分区
vim /etc/fstab
/dev/sda1 swap swap pri=4 0 0
swapon -a
> 删除swap
vim /etc/fstab
/dev/sda1 swap swap pri=4 0 0 ##删除此行
swapoff /dev/sda1
6.磁盘配额
作用: 设定用户能写入指定设备的最大额度。
> 设定方法:
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
> 关闭配额:
quotaoff -uv /dev/sda1
vim /etc/fstab ##去掉配额参数usrquota
7.逻辑卷
pv ##物理卷 被处理过的物理分区
pe ##物理扩展 设定存储最小单元
vg ##物理卷组 捆绑pv到一个组中
lv ##逻辑卷 分配最终的使用设备
> lvm设备建立
> 建立物理分区并设定分区type为lvm
> pvcreate /dev/sda2 ##创建pv
> vgcreate westosvg -s 2M /dev/sda2 ##创建vg -s设定pe大小位2M
> lvcreate -L 100M -n westoslv westosvg ##创建lvm -L指定大小 -n指定名称
> mkfs.xfs /dev/mapper/westosvg-westoslv ##格式化
> mount /dev/westosvg/westoslv /weixindata/ ##挂载
> lvm拉伸
> 1.当vg中的容量充足 lvextend -L 200M /dev/mapper/westosvg-westoslv ##拉伸设备
> xfs_growfs /weixindata/ ##拉伸文件系统,在rhel7中可以用设备 或挂载点 ##在rhel8中只能用挂载点
> resize2fs /dev/mapper/westosvg-westoslv ##当文件系统为ext时使用此命令
2.当vg中的容量不足
划分分区
pvcreate /dev/sda3
vgextend westosvg /dev/sda3
lvextend -L 2500M /dev/westosvg/westoslv
xfs_growfs /weixindata/
> lvm缩减
xfs文件系统不支持缩减ext文件系统可以
mkfs.ext4 /dev/westosvg/westoslv
> ext4文件系统拉伸:
resize2fs /dev/mapper/westosvg-westoslv
缩减步骤:
umount /weixindata
e2fsck -f /dev/westosvg/westoslv
resize2fs /dev/westosvg/westoslv 1500M
lvreduce -L 1500M /dev/westosvg/westoslv
mount /dev/westosvg/westoslv /weixindata/
vgreduce westosvg /dev/sda3
pvremove /dev/sda3
lvm删除:
umount /dev/mapper/westosvg-westoslv
lvremove /dev/westosvg/westoslv
vgremove westosvg
pvremove /dev/sda2