linux中级
该文档使用的操作系统为:RockyLinux8.8,安装在VMware虚拟机内
硬盘管理
为虚拟机准备三块硬盘
同样操作,执行两次
计算机容量单位
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
...
计算机使用1024换算,硬盘厂商使用1000换算
硬盘的最小单位是扇区,一个扇区的大小是512字节
识别硬盘 => 分区规划 => 格式化 => 挂载使用
两种分区模式:MBR和GPT
MBR分区(主分区)
最大支持2.2TB以内的硬盘
固定大小64字节,一个分区16,64÷16=4
主分区的读写效率高于逻辑分区
扩展分区不能格式化,空间不能直接存储数据,扩展分区里面的逻辑分区,才能存储数据
能存储数据就是:主分区,逻辑分区
lsblk
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 11.8G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rl-root 253:0 0 17G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
nvme0n3 259:4 0 20G 0 disk
fdisk
对硬盘进行划分的命令:fdisk
输入 | 说明 |
---|---|
n | 创建新的分区 |
p | 查看分区 |
Ctrl+C | 取消 |
w | 保存并退出 |
bash
[root@localhost ~]# fdisk /dev/nvme0n2
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x1f47a342 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):
分区步骤
n 新建分区
p 选择分区类型(最后一个分区要注意)
回车 分区号
回车 第一个扇区
+5G 设置分区容量,之间回车,会把剩下空间,全给它
p 查看,确认
w 保存,退出
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 11.8G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rl-root 253:0 0 17G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
├─nvme0n2p1 259:7 0 3G 0 part
└─nvme0n2p2 259:8 0 6G 0 part
nvme0n3 259:4 0 20G 0 disk
刚刚对 nvme0n2
硬盘做了分区,分了两个区,nume0n2p1
和 nume0n2p2
刷新分区表
partprobe
格式化(二选一)
赋予空间,文件系统的过程
bash
[root@localhost ~]# mkfs.
mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs
.ext4
是 6
系列的,适合单个数据比较小,数量多;
.xfs
是 7
系列的,适合单个数据比较大,数量少
使用ext4文件系统
bash
[root@localhost ~]# ls /dev/nvme0n2*
/dev/nvme0n2 /dev/nvme0n2p1 /dev/nvme0n2p2
[root@localhost ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.45.6 (20-Mar-2020)
创建含有 786432 个块(每块 4k)和 196608 个inode的文件系统
文件系统UUID:5feedc43-6476-498a-bbc4-1382a385b51c
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912
正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成
格式化完成,就可以查看到UUID
,以及TYPE可以看到类型
bash
[root@localhost ~]# blkid /dev/nvme0n2p1
/dev/nvme0n2p1: UUID="5feedc43-6476-498a-bbc4-1382a385b51c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9cb4a00d-01"
如果想再次格式化,继续执行同样的命令,根据提示输入y
bash
[root@localhost ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.45.6 (20-Mar-2020)
/dev/nvme0n2p1 有一个 ext4 文件系统
创建于 Mon Oct 21 18:37:37 2024
Proceed anyway? (y,N) y
......
使用xfs文件系统
bash
[root@localhost ~]# mkfs.xfs /dev/nvme0n2p2
meta-data=/dev/nvme0n2p2 isize=512 agcount=4, agsize=393216 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=1572864, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
blkid
bash
[root@localhost ~]# blkid /dev/nvme0n2p2
/dev/nvme0n2p2: UUID="abbe7b3a-ba8e-4c1c-8605-f2e9e68f5633" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="9cb4a00d-02"
如果想再次格式化,需加 -f
选项
bash
[root@localhost ~]# mkfs.xfs -f /dev/nvme0n2p2
-f
强制格式化
挂载使用
bash
[root@localhost ~]# mkdir mydvd1
[root@localhost ~]# mount /dev/nvme0n2p1 mydvd1/
查看 df -h
bash
[root@localhost ~]# df -h mydvd1/
文件系统 容量 已用 可用 已用% 挂载点
/dev/nvme0n2p1 2.9G 24K 2.8G 1% /root/mydvd1
bash
[root@localhost ~]# mkdir mydvd2
[root@localhost ~]# mount /dev/nvme0n2p2 mydvd2/
[root@localhost ~]# df -h mydvd2/
文件系统 容量 已用 可用 已用% 挂载点
/dev/nvme0n2p2 6.0G 76M 6.0G 2% /root/mydvd2
如果有挂载的硬件存储,就会存储在当前挂载的硬盘内,如果没有指定,就默认和/
根分区放在同一个硬盘。
假设/opt
这个目录,占用了太多的空间,我想用nvme0n2p2
来存/opt
的数据。
步骤
1,先创建一个目录
2,挂载nvme0n2p2
3,把/opt
原来的数据全部移动到挂载目录
4,清空/opt
5,卸载nvme0n2p2
6,把nvme0n2p2
,挂载到/opt
目录
7,设置开机自动挂载
bash
[root@localhost ~]# echo '测试数据,2024年10月21日18:18' > /opt/demo.txt
[root@localhost ~]# cat /opt/demo.txt
测试数据,2024年10月21日18:18
[root@localhost ~]# mv /opt/demo.txt mydvd2
[root@localhost ~]# cat mydvd2/demo.txt
测试数据,2024年10月21日18:18
[root@localhost ~]# rm -rf /opt/*
[root@localhost ~]# umount mydvd2
[root@localhost ~]# mount /dev/nvme0n2p2 /opt/
[root@localhost ~]# cat /opt/demo.txtf
测试数据,2024年10月21日18:18
开机自动挂载 /etc/fstab
设备路径 挂载点目录 文件系统类型 参数 备份标记 检查顺序
/dev/mapper/rl-root / xfs defaults 0 0
bash
[root@localhost ~]# tail -2 /etc/fstab
/dev/nvme0n2p1 /root/mydvd1 ext4 defaults 0 0
/dev/nvme0n2p2 /root/mydvd2 xfs defaults 0 0
验证,执行下面命令,没有报错,就表示成功
[root@localhost ~]# mount-a
[root@localhost ~]# df -h | grep mydvd
/dev/nvme0n2p1 4.9G 24K 4.6G 1% /root/mydvd1
/dev/nvme0n2p2 6.0G 76M 6.0G 2% /root/mydvd2
/etc/fstab文件错误,开机失败,修复
输入root密码
使用vim把写错的行,改正
保存之后,重启
把UUID改为决定路径(方便做镜像)
[root@localhost ~]# df -h /boot/
文件系统 容量 已用 可用 已用% 挂载点
/dev/nvme0n1p1 1014M 220M 795M 22% /boot
[root@localhost ~]# blkid /dev/nvme0n1p1
/dev/nvme0n1p1: UUID="1863454a-df9f-4d60-8d1d-60af5fcb575f" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="05e05c06-01"
通过查询得到 UUID
对应的 绝对路径是 /dev/nvme0n1p1
bash
[root@localhost ~]# cat /etc/fstab
......
/dev/nvme0n1p1 /boot xfs defaults 0 0
MBR分区(逻辑分区)
bash
[root@localhost ~]# fdisk /dev/nvme0n3
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x4f4fca4b 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (1-4, 默认 1):
第一个扇区 (2048-41943039, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +2G
创建了一个新分区 1,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (1个主分区,0个扩展分区,3空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (2-4, 默认 2):
第一个扇区 (4196352-41943039, 默认 4196352):
上个扇区,+sectors 或 +size{K,M,G,T,P} (4196352-41943039, 默认 41943039): +2G
创建了一个新分区 2,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (2个主分区,0个扩展分区,2空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
分区号 (3,4, 默认 3):
第一个扇区 (8390656-41943039, 默认 8390656):
上个扇区,+sectors 或 +size{K,M,G,T,P} (8390656-41943039, 默认 41943039): +2G
创建了一个新分区 3,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (3个主分区,0个扩展分区,1空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 e):e <--------------------
已选择分区 4
第一个扇区 (12584960-41943039, 默认 12584960):
上个扇区,+sectors 或 +size{K,M,G,T,P} (12584960-41943039, 默认 41943039):
创建了一个新分区 4,类型为"Extended",大小为 14 GiB。
命令(输入 m 获取帮助):n
所有主分区都在使用中。
添加逻辑分区 5
第一个扇区 (12587008-41943039, 默认 12587008):
上个扇区,+sectors 或 +size{K,M,G,T,P} (12587008-41943039, 默认 41943039): +2G <---------
创建了一个新分区 5,类型为"Linux",大小为 2 GiB。
命令(输入 m 获取帮助):n
所有主分区都在使用中。
添加逻辑分区 6
第一个扇区 (16783360-41943039, 默认 16783360):
上个扇区,+sectors 或 +size{K,M,G,T,P} (16783360-41943039, 默认 41943039):
创建了一个新分区 6,类型为"Linux",大小为 12 GiB。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
......
nvme0n3 259:6 0 20G 0 disk
├─nvme0n3p1 259:9 0 2G 0 part
├─nvme0n3p2 259:10 0 2G 0 part
├─nvme0n3p3 259:11 0 2G 0 part
├─nvme0n3p4 259:12 0 1K 0 part
├─nvme0n3p5 259:13 0 2G 0 part
└─nvme0n3p6 259:14 0 12G 0 part
查看分区类型 parted /dev/** print
bash
[root@localhost ~]# parted /dev/nvme0n3 print
Model: NVMe Device (nvme)
Disk /dev/nvme0n3: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
1 1049kB 2149MB 2147MB primary
2 2149MB 4296MB 2147MB primary
3 4296MB 6443MB 2147MB primary
4 6443MB 21.5GB 15.0GB extended
5 6445MB 8592MB 2147MB logical
6 8593MB 21.5GB 12.9GB logical
GPT分区
最大支持128分区,最大支持18EB的容量
虚拟机还原快照,准备硬盘资源
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 11.8G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rl-root 253:0 0 17G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
使用命令fdisk
分区,进入之后输入g
,就是GPT
分区模式
bash
[root@localhost ~]# fdisk /dev/nvme0n2
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xf6a23c8c 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):g
已创建新的 GPT 磁盘标签(GUID: C0452C94-7A10-1F43-97A2-117515378953)。
命令(输入 m 获取帮助):n
分区号 (1-128, 默认 1):
第一个扇区 (2048-41943006, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943006, 默认 41943006): +3G
创建了一个新分区 1,类型为"Linux filesystem",大小为 3 GiB。
命令(输入 m 获取帮助):n
分区号 (2-128, 默认 2):
第一个扇区 (6293504-41943006, 默认 6293504):
上个扇区,+sectors 或 +size{K,M,G,T,P} (6293504-41943006, 默认 41943006): +4G
创建了一个新分区 2,类型为"Linux filesystem",大小为 4 GiB。
命令(输入 m 获取帮助):n
分区号 (3-128, 默认 3):
第一个扇区 (14682112-41943006, 默认 14682112):
上个扇区,+sectors 或 +size{K,M,G,T,P} (14682112-41943006, 默认 41943006):
创建了一个新分区 3,类型为"Linux filesystem",大小为 13 GiB。
命令(输入 m 获取帮助):p
Disk /dev/nvme0n2:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:C0452C94-7A10-1F43-97A2-117515378953
设备 起点 末尾 扇区 大小 类型
/dev/nvme0n2p1 2048 6293503 6291456 3G Linux 文件系统
/dev/nvme0n2p2 6293504 14682111 8388608 4G Linux 文件系统
/dev/nvme0n2p3 14682112 41943006 27260895 13G Linux 文件系统
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
格式化
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
......
nvme0n2 259:3 0 20G 0 disk
├─nvme0n2p1 259:4 0 3G 0 part
├─nvme0n2p2 259:5 0 4G 0 part
└─nvme0n2p3 259:6 0 13G 0 part
bash
[root@localhost ~]# mkfs.xfs /dev/nvme0n2p1
meta-data=/dev/nvme0n2p1 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=786432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
开机自动挂载
bash
[root@localhost ~]# mkdir mydvd1
[root@localhost ~]# tail -1 /etc/fstab
/dev/nvme0n2p1 /root/mydvd1 xfs defaults 0 0
交换空间(虚拟内存)
缓解物理内存的压力,由硬盘提供一部分空间给内存使用
创建 mkswap
bash
[root@localhost ~]# mkswap /dev/nvme0n2p2
正在设置交换空间版本 1,大小 = 4 GiB (4294963200 个字节)
无标签,UUID=b8065dfb-55ca-44e0-8be3-6d6fb917cf29
查看类型 blkid
bash
[root@localhost ~]# blkid /dev/nvme0n2p2
/dev/nvme0n2p2: UUID="b8065dfb-55ca-44e0-8be3-6d6fb917cf29" TYPE="swap" PARTUUID="d60bdcb2-db3a-9644-afe7-4fd826371196"
启用 swapon
bash
[root@localhost ~]# swapon /dev/nvme0n2p2
查看交换空间 swapon
bash
[root@localhost ~]# swapon
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 2G 0B -2
/dev/nvme0n2p2 partition 4G 0B -3
swapon:查看交换空间组成员信息
swapon -a
查看内存大小 free -h
bash
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 3.5Gi 250Mi 3.1Gi 8.0Mi 221Mi 3.1Gi
Swap: 6.0Gi 0B 6.0Gi
停用 swapoff
bash
[root@localhost ~]# swapoff /dev/nvme0n2p2
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 3.5Gi 247Mi 3.1Gi 8.0Mi 221Mi 3.1Gi
Swap: 2.0Gi 0B 2.0Gi
[root@localhost ~]# swapon /dev/nvme0n2p2
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 3.5Gi 250Mi 3.1Gi 8.0Mi 221Mi 3.1Gi
Swap: 6.0Gi 0B 6.0Gi
开机自动挂载
bash
[root@localhost ~]# tail -1 /etc/fstab
/dev/nvme0n2p2 swap swap defaults 0 0
使用parted命令进行分区(fdisk更好用)
bash
[root@localhost ~]# parted /dev/nvme0n3
......
(parted) mktable gpt
(parted) mkpart
起始点? 0
结束点? 5G
忽略/Ignore/放弃/Cancel? Ignore
(parted) mkpart
分区名称? []?
文件系统类型? [ext2]?
起始点? 5G
结束点? 100%
(parted) quit
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
......
nvme0n3 259:7 0 20G 0 disk
├─nvme0n3p1 259:10 0 4.7G 0 part
└─nvme0n3p2 259:11 0 15.4G 0 part
格式化
挂载
逻辑卷管理
还原镜像,准备一块80G硬盘(MBR分区,3个10G主分区,2个20G逻辑分区)
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 11.8G 0 rom
nvme0n1 259:0 0 20G 0 disk
└─ ......
nvme0n2 259:3 0 80G 0 disk
├─nvme0n2p1 259:4 0 10G 0 part
├─nvme0n2p2 259:5 0 10G 0 part
├─nvme0n2p3 259:6 0 10G 0 part
├─nvme0n2p4 259:7 0 1K 0 part
├─nvme0n2p5 259:8 0 20G 0 part
└─nvme0n2p6 259:9 0 20G 0 part
新建逻辑卷
逻辑卷:可以把分散的空间整合到一起
逻辑卷制作流程:将众多的物理卷(PV),组建成卷组(VG),再从卷组中划分出逻辑卷(LV)
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 Scan | pvs | vgs | lvs |
创建 Create | pvcreate | vgcreate | lvcreate |
显示 Display | pvdisplay | bgdisplay | lvdisplay |
删除 Remove | pvremove | vgremove | lvremove |
扩展 Extend | / | vgextend | lvextend |
命令参考帮助
man vgcreate // 查看帮助信息
/example 例子
按 q 退出
创建卷组
单位 PE(扩展单元) 4M
先创建物理卷,再创建逻辑卷,但是可以直接使用 vgcreate
既创建物理卷,也创建逻辑卷,类似git的-am
选项
vgcreate systemvg /dev/nvme0n2p[1-2]
卷组名 硬件设备路径
bash
[root@localhost ~]# vgcreate systemvg /dev/nvme0n2p[1-2]
Physical volume "/dev/nvme0n2p1" successfully created.
Physical volume "/dev/nvme0n2p2" successfully created.
Volume group "systemvg" successfully created
查看
pvs // 查看所有物理卷信息
vgs // 查看系统卷组信息
bash
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rl lvm2 a-- <19.00g 0
/dev/nvme0n2p1 systemvg lvm2 a-- <10.00g <10.00g
/dev/nvme0n2p2 systemvg lvm2 a-- <10.00g <10.00g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <19.00g 0
systemvg 2 0 0 wz--n- 19.99g 19.99g
创建逻辑卷
bash
[root@localhost ~]# lvcreate -L 15G -n vo systemvg
Logical volume "vo" created.
-L
指定逻辑卷大小
-l
PE的数量
-n
逻辑卷名称
lvcreate -l 15 -n myvo systemvg
格式化
bash
[root@localhost ~]# ls /dev/dm-*
/dev/dm-0 /dev/dm-1 /dev/dm-2
[root@localhost ~]# ls -l /dev/systemvg/vo
lrwxrwxrwx. 1 root root 7 10月 22 16:02 /dev/systemvg/vo -> ../dm-2
格式化为xfs
文件系统类型
bash
[root@localhost ~]# mkfs.xfs /dev/systemvg/vo
查看文件系统类型
bash
[root@localhost ~]# blkid /dev/systemvg/vo
/dev/systemvg/vo: UUID="b24b772a-5c48-4e4d-ad68-2b3f7689b0f2" BLOCK_SIZE="512" TYPE="xfs"
开机自动挂载
bash
[root@localhost ~]# mkdir myvg
[root@localhost ~]# tail -1 /etc/fstab
/dev/systemvg/vo /root/myvg xfs defaults 0 0
[root@localhost ~]# mount -a
bash
[root@localhost ~]# df -h myvg/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/systemvg-vo 15G 140M 15G 1% /root/myvg
逻辑卷扩展 lvextend
前提是卷组有剩余空间,如果卷组不够大,需要先准备硬盘空间,加入卷组
bash
[root@localhost ~]# lvextend -L 16G /dev/systemvg/vo
Size of logical volume systemvg/vo changed from 15.00 GiB (3840 extents) to 16.00 GiB (4096 extents).
Logical volume systemvg/vo successfully resized.
-L 16G
扩展到16G
-L +1G
在原基础上加1G
格式扩展的文件系统 xfs_growfs
ext4:resize2f
xfs:xfs_growfs
bash
[root@localhost ~]# xfs_growfs /dev/systemvg/vo
bash
[root@localhost ~]# df -h | grep vo
/dev/mapper/systemvg-vo 16G 147M 16G 1% /root/myvg
扩展卷组 vgextend
将其余分区加入systemvg卷组
bash
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
......
nvme0n2 259:3 0 80G 0 disk
├─nvme0n2p1 259:4 0 10G 0 part
│ └─systemvg-vo 253:2 0 16G 0 lvm /root/myvg
├─nvme0n2p2 259:5 0 10G 0 part
│ └─systemvg-vo 253:2 0 16G 0 lvm /root/myvg
├─nvme0n2p3 259:6 0 10G 0 part
├─nvme0n2p4 259:7 0 1K 0 part
├─nvme0n2p5 259:8 0 20G 0 part
└─nvme0n2p6 259:9 0 20G 0 part
[root@localhost ~]# vgextend systemvg /dev/nvme0n2p{3,5,6}
Physical volume "/dev/nvme0n2p3" successfully created.
Physical volume "/dev/nvme0n2p5" successfully created.
Physical volume "/dev/nvme0n2p6" successfully created.
Volume group "systemvg" successfully extended
bash
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <19.00g 0
systemvg 5 1 0 wz--n- 69.98g 53.98g
扩展逻辑卷
bash
[root@localhost ~]# lvextend -L 25G /dev/systemvg/vo
Size of logical volume systemvg/vo changed from 16.00 GiB (4096 extents) to 25.00 GiB (6400 extents).
Logical volume systemvg/vo successfully resized.
[root@localhost ~]# xfs_growfs /dev/systemvg/vo
......
data blocks changed from 4194304 to 6553600
[root@localhost ~]# df -h | grep vo
/dev/mapper/systemvg-vo 25G 211M 25G 1% /root/myvg
修改逻辑卷PE的大小
此题曾经出现在红帽考试
卷组的单位,PE,默认大小是4M,但是可以改
vgchange -s 1M systemvg
如果现有的逻辑卷,可以整除,就可以改
vgdisplay systemvg
bash
[root@localhost ~]# vgdisplay systemvg
--- Volume group ---
VG Name systemvg
System ID
Format lvm2
Metadata Areas 5
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 5
Act PV 5
VG Size 69.98 GiB
PE Size 4.00 MiB
Total PE 17915
Alloc PE / Size 6400 / 25.00 GiB
Free PE / Size 11515 / 44.98 GiB
VG UUID rdE9UM-298J-5nQ3-a3ws-jJlZ-Qjfc-GqiuC0
bash
[root@localhost ~]# vgchange -s 1M systemvg
Volume group "systemvg" successfully changed
[root@localhost ~]# vgdisplay systemvg
......
PE Size 1.00 MiB
......
创建逻辑卷时 lvcreate -l
来指定PE的个数
删除逻辑卷 lvremove
1,卸载
2,删除
bash
[root@localhost ~]# df -h myvg/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/systemvg-vo 25G 211M 25G 1% /root/myvg
[root@localhost ~]# umount myvg/
[root@localhost ~]# lvremove /dev/mapper/systemvg-vo
Do you really want to remove active logical volume systemvg/vo? [y/n]: y
Logical volume "vo" successfully removed.
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rl -wi-ao---- <17.00g
swap rl -wi-ao---- 2.00g
lvremove
命令加上 -y
选项,就会直接删除,不再需要交互式输入y
删除开机自启文件
bash
[root@localhost ~]# vim /etc/fstab
删除卷组 vgremove
bash
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <19.00g 0
systemvg 5 0 0 wz--n- 69.98g 69.98g
[root@localhost ~]# vgremove systemvg
Volume group "systemvg" successfully removed
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- <19.00g 0
删除物理卷 pvremove
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 11.8G 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rl-root 253:0 0 17G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 80G 0 disk
├─nvme0n2p1 259:4 0 10G 0 part
├─nvme0n2p2 259:5 0 10G 0 part
├─nvme0n2p3 259:6 0 10G 0 part
├─nvme0n2p4 259:7 0 1K 0 part
├─nvme0n2p5 259:8 0 20G 0 part
└─nvme0n2p6 259:9 0 20G 0 part
[root@localhost ~]# pvremove /dev/nvme0n2p{1,2,3,5,6}
Labels on physical volume "/dev/nvme0n2p1" successfully wiped.
Labels on physical volume "/dev/nvme0n2p2" successfully wiped.
Labels on physical volume "/dev/nvme0n2p3" successfully wiped.
Labels on physical volume "/dev/nvme0n2p5" successfully wiped.
Labels on physical volume "/dev/nvme0n2p6" successfully wiped.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rl lvm2 a-- <19.00g 0
[root@localhost ~]#
进程管理
进程:内存中正在运行的代码,占用CPU与内存的资源
PID:标识进程
bash
[root@localhost ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─irqbalance───{irqbalance}
├─polkitd───7*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd─┬─sshd───sshd───bash───pstree
│ └─sshd───sshd───sftp-server
├─systemd───(sd-pam)
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───3*[{vmtoolsd}]
systemd 上帝进程,PID 为1
查看进程
pstree
-p
:列出对应的进程PID
-a
:显示完整的命令
pstree -ap admin // 显示用户admin的进程
bash
[root@localhost ~]# useradd yunos // 新开一个窗口登录
[root@localhost ~]# echo 123456 | passwd --stdin yunos
更改用户 yunos 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# pstree -pa yunos
sshd,2145
└─bash,2147
└─vim,2213 demo.txt
sshd,2159
└─sftp-server,2181
systemd,2135 --user
└─(sd-pam),2138
ps aux
列出正在运行的所有进程,显示非常详细的进程信息
bash
[root@localhost ~]# ps aux
......
root 5723 0.0 0.0 47848 3700 pts/0 R+ 10:54 0:00 ps aux
用户,进程ID,%CPU,%内存,虚拟内存,固定内存,终端,状态,起始时间,CPU时间,程序指令
ps -elf
bash
[root@localhost ~]# ps -elf
0 R root 5741 3707 0 80 0 - 11962 - 11:01 pts/0 00:00:00 ps -elf
列出正在运行的所有进程,显示进程的父进程信息
PPID为进程的父进程PID
动态查看进程 top
-d 1
每隔一秒刷新
-P 按CPU排序
-M 按进程排序
查看进程 过滤进程名字
pgrep a
查找名字带a的进程,输出进程PID
-x
严格匹配
pgrep -l a
-l
输出更完整的信息,输出进程PID,以及进程名字
pgrep -u yunos
输出用户 yunos
的进程PID
pgrep -lu yunos
输出用户 yunos
的进程PID和进程名字
pstree -p yunos
bash
[root@localhost ~]# pgrep -lu yunos
5782 systemd
5786 (sd-pam)
5793 sshd
5796 sshd
5797 bash
5806 sftp-server
[root@localhost ~]# pstree -p yunos
sshd(5793)───bash(5797)
sshd(5796)───sftp-server(5806)
systemd(5782)───(sd-pam)(5786)
睡觉 sleep
sleep 5 让当前的程序暂停5秒钟
进程前后台切换
Ctrl + Z
把当前运行的进程,暂停,放入后台
jobs
jobs
:查看后台进程
bg 1
bg
运行后台进程,bg 1
运行后台编号为1的进程,进程编号,通过jobs
命令查询
fg 1
fg 1
把后台编号为1的进程放回前台运行
Ctrl + C
结束运行
bash
[root@localhost ~]# sleep 3000
^Z
[1]+ 已停止 sleep 3000
[root@localhost ~]# jobs
[1]+ 已停止 sleep 3000
[root@localhost ~]# bg 1
[1]+ sleep 3000 &
[root@localhost ~]# jobs
[1]+ 运行中 sleep 3000 &
[root@localhost ~]# fg 1
sleep 3000
^C
[root@localhost ~]#
正在运行放入后台 &
bash
[root@localhost ~]# sleep 3000 &
[1] 5872
[root@localhost ~]# jobs
[1]+ 运行中 sleep 3000 &
[root@localhost ~]# fg 1
sleep 3000
^C
[root@localhost ~]#
杀死进程
Ctrl + C 结束当前命令程序
kill -9 PID
kill -9 %后台任务编号
killall -9 进程名
pkill -9 查找条件 // 包含就算,容易误杀
-9
选项是强制的意思,(比如电脑关机,不加-9
就是点关机,系统完成一些结束操作,就关机,加-9
就好比拔电源)
bash
[root@localhost ~]# sleep 3000&
[1] 6154
[root@localhost ~]# jobs
[1]+ 运行中 sleep 3000 &
[root@localhost ~]# killall -9 sleep
[1]+ 已杀死 sleep 3000
[root@localhost ~]# sleep 3000&
[1] 6157
[root@localhost ~]# jobs
[1]+ 运行中 sleep 3000 &
[root@localhost ~]# killall sleep
[1]+ 已终止 sleep 3000
sudo提权
/etc/sudoers
使用vim编辑这个文件,没有语法检查,建议使用visudo
编辑
让普通用户以root
身份执行某些程序
查看当前用户的sudo提权 sudo -l
[yunos@localhost ~]$ sudo -l
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] yunos 的密码:
对不起,用户 yunos 不能在 localhost 上运行 sudo。
为用户设置提权
visudo
bash
yunos ALL=(root) /usr/bin/mkdir,/usr/bin/cat
#用户名 主机名=变成的身份 可以执行的命令
ALL 表示所有的主机名
可以执行的命令,用逗号分隔,也可以写ALL,表示全部的命令
bash
yunos ALL=(root) NOPASSWD:/usr/bin/mkdir,/usr/bin/cat
#用户名 主机名=变成的身份 免密:可以执行的命令
NOPASSWD:
使用sudo提权的时候,用户不需要再输入密码
%yunos ALL=(root) NOPASSWD:/usr/bin/mkdir,/usr/bin/cat
#用户名 主机名=变成的身份 免密:可以执行的命令
%
最前面加% 表示授权的是一个组
bash
[yunos@localhost ~]$ sudo -l
匹配 %2$s 上 %1$s 的默认条目:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2
QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用户 yunos 可以在 localhost 上运行以下命令:
(root) NOPASSWD: /usr/bin/mkdir, /usr/bin/cat
RAID磁盘阵列
RAID0
条带模式
至少2个盘,将文件分成两份,并行写入硬盘,可提高效率
如果是5块盘,数据就会分成5份
RAID0只是效率高,没有数据的冗余,随便坏一块,数据就损坏了
工作中,用来存放缓存数据,
RAID1
镜像模式
一个文档复制成多份,分别写入不同磁盘
多份拷贝,提高可靠性,效率无提升
RAID5
高性价比模式
相当于RAID0和RAID1的则中方案
至少需要一块磁盘来存校验数据
至少需3块盘
RAID6
至少需要4块盘,至少需要二块磁盘来存校验数据
金融行业
RAID0+1(RAID01)
现做RAID0 ,再做RAID1
RAID1+0(RAID10)
现做RAID1,再做RAID0
总结
对比项 | RAID0 | RAID1 | RAID10 | RAID5 | RAID6 |
---|---|---|---|---|---|
磁盘数 | ≥2 | ≥2 | ≥4 | ≥3 | ≥4 |
存储利用率 | 100% | ≤50% | ≤50% | n-1/n | n-2/n |
校验盘 | 无 | 无 | 无 | 1 | 2 |
容错性 | 无 | 有 | 有 | 有 | 有 |
IO性能 | 高 | 低 | 中 | 较高 | 较高 |
修改网卡命名规则
不同类型,不同品牌的网卡,命名规则可能不相同,改为统一的命名规则,eth0、eeh1、......
网卡的内核引导文件:/boot/grub2/grub.cfg
/etc/default/grub
bash
[root@RockyLinux ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
修改后
bash
[root@RockyLinux ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap rhgb quiet net.ifnames=0 biosdevname =0"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
添加的内容
net.ifnames=0 biosdevname =0
根据修改的文件,重新生成内核引导文件/boot/grub2/grub.cfg
bash
[root@RockyLinux ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
重启生效
reboot
IP地址的配置
三种方式:nmcli、nmtli、修改网卡配置文件
nmcli
nmcli connection show
nmcli connection delete
添加新的网络命名
nmcli connection add type ethernet ifname eth0 con-name eth0
nmcli connection 添加 类型 以太网设备 设备名 eth0 外号名 eth0
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
配置IP地址
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.126.10/24 autoconnect yes
nmcli connection 修改 外号 ipv4.方法 手工配置 ipv4.地址 192.168.126.10/24 每次开机自动启用以上的所有参数
ipv4.网关
激活
nmcli connection up eth0
查看网关
route -n
nmtui
bash
[root@RockyLinux ~]# nmtui
通过上下键移动,回车确认,红色代表选中
*
表示已连接,通过回车切换
添加临时ip
ip address add 192.168.126.15/24 dev eth0
简写:ip a a 192.168.126.15/24 dev eth0
查看临时ip
ip a s
删除临时ip
ip a d 192.168.126.15/24 dev eth0
远程管理
linux远程管理linux
SSH协议
需要安装的软件
bash
[root@RockyLinux ~]# rpm -qa | grep openssh
openssh-clients-8.0p1-17.el8_7.x86_64
openssh-8.0p1-17.el8_7.x86_64
openssh-server-8.0p1-17.el8_7.x86_64
安装
yum -y install openssh*
[root@RockyLinux ~]# rpm -qa | grep openssh
openssh-clients-8.0p1-17.el8_7.x86_64
openssh-cavs-8.0p1-17.el8_7.x86_64
openssh-8.0p1-17.el8_7.x86_64
openssh-server-8.0p1-17.el8_7.x86_64
openssh-askpass-8.0p1-17.el8_7.x86_64
openssh-ldap-8.0p1-17.el8_7.x86_64
openssh-keycat-8.0p1-17.el8_7.x86_64
如果没有安装,是可以远程管理别人,安装了openssh
是可以被别人远程管理,如果不想被远程管理,可以卸载这些包,或者把这个进程杀了
pgrep -l sshd
远程的命令
ssh root@192.168.126.11
回答:yes
密码:*****
ssh 192.168.126.11 // 如果不写用户名,默认以当前登入系统的用户为准
bash
[root@RockyLinux ~]# ssh root@192.168.126.11
The authenticity of host '192.168.126.11 (192.168.126.11)' can't be established.
ECDSA key fingerprint is SHA256:0/8hGvIvOZHJ2tEBKLpikWWIPwxBWYlJB4BOD67s4/A.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.126.11' (ECDSA) to the list of known hosts.
root@192.168.126.11's password:
Last login: Thu Oct 24 08:48:58 2024 from 192.168.126.1
[root@yunos ~]#
退出
exit
或者
Ctrl + D
bash
[root@yunos ~]# exit
注销
Connection to 192.168.126.11 closed.
/root/.ssh/known_hosts
记录曾经远程管理过的机器
bash
[root@RockyLinux ~]# cat /root/.ssh/known_hosts
192.168.126.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMzmAAFF5QeWl30yzPUrjWxMDq4N9OZnPANJQQFo/uVCEQQ+MO9KAcPUKnl0QOnOMUlBlE6BuszBDqvXskjQicY=
传递数据 scp
scp 本机文件 root@192.168.126.11:/root // 传递文件到对方机器root目录下
scp -r 目录 root@192.168.126.11:/opt // 将本机目录传递到对方机器opt目录下
-r
目录
scp root@192.168.126.11:/etc/fstab /root // 把对方机器/etc/fstab,拿到本机root目录下
scp -r root@192.168.126.10:/root/demo /opt // 把对方机器/root/demo目录,拿到本机opt目录下
免密远程
bash
[root@yunos opt]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 存放位置
Enter passphrase (empty for no passphrase): 是否加密
Enter same passphrase again: 确认不加密?
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xNXtTfFCMhQR6VoSfK2Vsn8fdP8xNzaIvEW5T5vmKbo root@yunos
The key's randomart image is:
+---[RSA 3072]----+
| ..oBB.o.|
| . .o =+= o|
| o + *oo.|
| . . =o.oo|
| S .+o.+ o|
| .o +.O+|
| o +.%|
| . . =+|
| Eo +o |
+----[SHA256]-----+
[root@yunos opt]#
[root@RockyLinux ~]# ls /root/.ssh/
id_rsa id_rsa.pub known_hosts
id_rsa 私钥
id_rsa.pub 公钥
known_hosts 记录曾经远程管理过的机器
authorized_keys 别人传递给我的公钥
传递公钥
ssh-copy-id root@192.168.126.11
bash
[root@RockyLinux ~]# ssh-copy-id root@192.168.126.11
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.126.11's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@192.168.126.11'"
and check to make sure that only the key(s) you wanted were added.
[root@yunos opt]# ls /root/.ssh/
authorized_keys known_hosts
authorized_keys 里面一行代表一个公钥
windows远程管理linux
MobaXtem
WindTerm
DNS服务器
将域名解析为对应的IP地址
寻找DNS服务器
1.使用dhcp服务器自动获取
2.手工指定,配置文件在:/etc/resolv.conf
ping -c 192.168.126.11
-c
指定ping的次数
日志管理
常见的日志文件
日志文件 | 主要用途 |
---|---|
/var/log/messages | 记录内核消息,各种服务公共消息 |
/var/log/dmesg | 记录系统启动过程的各种消息 |
/var/log/cron | 记录cron计划相关的消息 |
/var/log/maillog | 记录邮件收发相关消息 |
/var/log/secure | 记录与访问限制相关的安全消息 |
/var/log/lastlog | 记录最近的用户登录事件 |
/var/log/wtmp | 记录成功的用户登录/注销事件 |
/var/log/btmp | 记录失败的用户登录事件 |
/var/run/utmp | 记录当前登录的每个用户的相关信息 |
tail -f 时时更新显示,会占用前台
查看当前用户登录的信息
users who w
bash
[root@RockyLinux ~]# users
root
[root@RockyLinux ~]# who
root pts/1 2024-10-24 08:49 (192.168.126.1)
[root@RockyLinux ~]# w
16:07:09 up 4:44, 1 user, load average: 0.01, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 192.168.126.1 08:49 5.00s 0.13s 0.00s w
last lastb
bash
[root@RockyLinux ~]# last // 成功输入对密码的
root pts/0 192.168.126.12 Thu Oct 24 15:58 - 15:59 (00:00)
wtmp begins Thu Oct 17 12:28:31 2024
[root@RockyLinux ~]# lastb // 输错密码的
root ssh:notty 192.168.126.1 Thu Oct 24 08:48 - 08:48 (00:00)
btmp begins Thu Oct 24 08:48:35 2024
日志消息优先级
0 | EMERG | 紧急 | 会导致系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决问题 |
2 | CRIT | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 不会影响系统但值得注意 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试信息等 |
SELinux
SELinux运行模式 | ||
---|---|---|
enforcing | 强制 | 1 |
permissive | 宽松 | 0 |
disabled | 彻底禁用 | 修改配置文件,重启 |
切换运行模式
临时修改:setenforce 0 或 1
固定配置:/etc/selinux/config
查看当前运行模式:getenforce
破解root密码
进入救援模式
通过上下键,选择第一个,再按 e
键
把光标移动到ro,o的下面,按Delete键,把o改成w,是可读可写的意思
空格 输入 rd.break
Ctrl + X 进入救援模式
chroot /sysroot
切换至硬盘操作系统环境
改密码 echo 123456 | passwd --stdin root
reboot -f
加上 -f
选项是强制重启的意思
如果SElinux是强制模式
在设置完密码。还需要执行
sh-4.4# touch /.autorelabel
让SElinux失忆
设置救援模式的密码
grub2-setpassword
存放救援模式密码的地方
/boot/grub2/user.cfg