首页 > 其他分享 >实验7

实验7

时间:2024-02-27 19:38:15浏览次数:18  
标签:00 data sbin dev 实验 mysql root

1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
新添加的硬盘要进行扫描
alias scandisk='
echo - - - > /sys/class/scsi_host/host0/scan;
echo - - - > /sys/class/scsi_host/host1/scan;
echo - - - > /sys/class/scsi_host/host2/scan'


# 创建两个物理卷(PV),假设为 /dev/sdb 和 /dev/sdc,每个 10G
pvcreate /dev/sdb /dev/sdc

# 创建大小为20G、PE为16MB的卷组testvg
vgcreate -s 16M testvg /dev/sdb /dev/sdc

# 在testvg中创建大小为5G的逻辑卷testlv
lvcreate -L 5G -n testlv testvg

# 格式化逻辑卷为ext4文件系统
mkfs.ext4 /dev/testvg/testlv

# 挂载至/users目录
mkdir -p /users
mount /dev/testvg/testlv /users

# 添加开机自动挂载
echo '/dev/testvg/testlv /users ext4 defaults 0 0' >> /etc/fstab
或者
修改/etc/fstab
UUID=c2835ed7-1095-40e6-9364-da6629c3ee53 /users                  ext4     defaults       0 0



注意:uuid用blkid查看就可以了
2、 新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
# 新建用户archlinux,并设置家目录为/users/archlinux
useradd -d /users/archlinux archlinux

# 设置家目录权限
chown -R archlinux:archlinux /users/archlinux

# 切换至archlinux用户并复制/etc/pam.d目录至自己的家目录
su - archlinux
cp -r /etc/pam.d /users/archlinux/
exit # 退出到root用户

、
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
# 扩展逻辑卷至7G
lvextend -L +2G /dev/testvg/testlv

# 调整文件系统大小以适应新的逻辑卷大小
resize2fs /dev/testvg/testlv
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
收缩要先备份 生产环境中数据是最重要的

# 卸载逻辑卷
umount /users

# 查看当前文件系统的使用情况,确认其大小小于3G
df -h /users




# 缩小逻辑卷,这里假设已确认可以安全缩小至3G
lvreduce -L 3G /dev/testvg/testlv

# 调整文件系统大小
resize2fs /dev/testvg/testlv

# 重新挂载逻辑卷
mount /dev/testvg/testlv /users
5、对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
# 创建testlv的快照,这里假设命名为snap_testlv
lvcreate -L 1G -s -n snap_testlv /dev/testvg/testlv

# 挂载快照到一个临时目录,如 /mnt/snapshot
mkdir /mnt/snapshot
mount /dev/testvg/snap_testlv /mnt/snapshot

# 复制部分或全部数据进行备份验证
cp -r /mnt/snapshot/* /path/to/backup/

没有这个这个目录就是创建一个目录
#mkdir -p /path/to/backup


# 卸载快照
umount /mnt/snapshot

1、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

在Linux中,要创建一个满足条件的文件系统并设置自动挂载,可以按照以下步骤操作:

1. 首先,确保你有一个未使用的分区(如 `/dev/sdb1`)可用于创建新的文件系统。这里假设你有一个这样的分区。

2. 创建一个2GB大小、块大小为2048字节、预留1%可用空间的ext4文件系统,并设置卷标为TEST:

```bash
mkfs.ext4 -m 1 -b 2048 -L TEST /dev/sdb1
```

3. 创建挂载点目录并挂载新创建的文件系统:

```bash
mkdir -p /test
mount /dev/sdb1 /test
```

4. 在`/etc/fstab`中添加一行,使得系统在开机时自动挂载此分区,并启用acl挂载选项:

```bash
echo '/dev/sdb1 /test ext4 defaults,acl 0 0' >> /etc/fstab
```

请确保将 `/dev/sdb1` 替换成你实际要用的磁盘分区,同时,上述操作需要root权限执行。在真实环境下,你需要预先规划好磁盘分区,并确保所选分区有足够的空间来创建一个2GB的文件系统。

2、写一个脚本,完成如下功能:

(1) 列出当前系统识别到的所有磁盘设备

# 列出所有磁盘设备  
lsblk -d 

lsblk -d > disks.txt

(2) 如磁盘数量为1,则显示其空间使用信息否则,则显示最后一个磁盘上的空间使用信息

如果你想以不同的方式重写提供的命令,以便获取最后一个非循环(loop)和非内存(ram)设备的磁盘空间使用情况,这里有几个选项。这些命令都使用了不同的命令组合和工具来达到相同的目的。

方法一:使用awk替代grep和tail
bash
last_disk=$(lsblk -dno NAME | awk '/^[^ ]+[^ ]+$/ {print; exit}')  
df -h "/dev/$last_disk"
这个命令使用awk来查找最后一行,该行只包含一个字段(即磁盘名),并且该字段不包含空格。当找到这样的行时,awk会打印它并退出。




方法二:使用tail和rev结合
bash
last_disk=$(lsblk -dno NAME | grep -vE '^loop|^ram' | tail -n1 | rev | cut -d' ' -f1 | rev)  
df -h "/dev/$last_disk"
这个命令与先前提供的方法三类似,但是使用了grep来过滤掉循环和内存设备。


解释
这个命令的目的是列出系统中所有的磁盘设备,排除掉循环设备(通常以loop开头)和RAM设备(通常以ram开头),然后获取最后一个磁盘设备的名称,并显示该设备的磁盘空间使用情况。

命令的详细解释如下:

lsblk -dno NAME:lsblk命令用于列出所有可用的块设备。选项-d表示仅显示物理设备(不包括分区、挂载点等),-n表示不解析主机名(使输出更快),-o NAME表示仅输出设备名称。

grep -vE '^loop|^ram':grep命令用于过滤输出。选项-v表示反向匹配,即不匹配指定模式的行;-E表示使用扩展正则表达式。这个命令过滤掉所有以loop或ram开头的行。

tail -n1:tail命令用于输出文件的最后几行。选项-n1表示只输出最后一行。

rev:rev命令用于将输入的行逐字符反转。

cut -d' ' -f1:cut命令用于按列切割文本。选项-d' '设置空格为分隔符,-f1表示只输出第一列。

再次使用rev:由于之前使用了rev命令,这里需要再次使用rev将设备名称恢复为原始顺序。

df -h "/dev/$last_disk":df命令用于显示磁盘空间使用情况。选项-h表示以人类可读的格式(如KB、MB、GB)显示。"/dev/$last_disk"是df命令的参数,表示要显示空间使用情况的磁盘设备路径。这里使用了之前命令的输出结果$last_disk作为变量。

注意:在实际使用时,请确保命令中的空格和引号都是正确的,因为错误的空格或引号可能导致命令无法正确执行。另外,这个命令假设系统中只有一个以loop或ram开头的设备,如果有多个这样的设备,grep命令会过滤掉所有这些设备。如果系统中没有这样的设备,grep命令会输出所有设备,然后tail -n1会取最后一个设备。









方法三:使用head替代tail
bash
last_disk=$(lsblk -dno NAME | grep -vE '^loop|^ram' | head -n -1 | tail -n 1)  
df -h "/dev/$last_disk"
这个命令使用head来排除第一行(通常是系统的总线或其他信息),然后使用tail来获取最后一行。

方法四:使用perl
bash
last_disk=$(lsblk -dno NAME | perl -lane '$F = split / +/, $F[0]; print $F[0] and last if $F[0] !~ /loop|ram/;' | tail -n 1)  
df -h "/dev/$last_disk"
这个命令使用perl来处理lsblk的输出。它分割每行的第一个字段,并检查该字段是否不包含"loop"或"ram"。如果找到这样的行,它就打印出来并退出。

在所有这些方法中,请确保你使用的系统上有这些工具(如awk、grep、tail、head、rev、perl等)。大多数Linux发行版都预装了这些工具,但如果你在一个受限的环境中工作,某些工具可能不可用。

1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录


2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录


备份MBR的分区表,并破坏后恢复
#备份MBR分区表
[root@centos8 ~]#dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446
[root@centos8 ~]#scp /data/dpt.img 10.0.0.102:
#破坏MBR分区表
[root@centos8 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
#无法启动
[root@centos8 ~]#reboot
#用光盘启动,进入rescue mode,选第3项skip to shell
#配置网络
#ifconfig ens160 10.0.0.8/24
#ip a a 10.0.0.8/24 dev ens160
#scp 10.0.0.102:/root/dpt.img .
#恢复MBR分区表
#dd if=dpt.img of=/dev/sda bs=1 seek=446
#reboot




具体操作细节
[11:47:20 root@localhost ~][#dd if=/dev/nvme0n1 of=/data/dpt.img bs=1 count=64 skip=446
64+0 records in
64+0 records out
64 bytes copied, 0.000214136 s, 299 kB/s
[11:48:46 root@localhost ~][#scp /data/dpt.img 10.0.0.132
[11:49:30 root@localhost ~][#dd if=/dev/zero of=/dev/nvme0n1 bs=1 count=64 seek=446
64+0 records in
64+0 records out
64 bytes copied, 0.000162518 s, 394 kB/s
[11:50:28 root@localhost ~][#reboot
[11:50:42 root@localhost ~][#Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(rocky(root)) at 19:50:42.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 10.0.0.133:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Activate the web console with: systemctl enable --now cockpit.socket

Last login: Fri Feb 23 06:59:22 2024 from 10.0.0.1
[root@localhost ~]# dd if=/dev/nvme0n1 of=mbr bs=1 count=64 skip=446
64+0 records in
64+0 records out
64 bytes copied, 0.000164651 s, 389 kB/s
[root@localhost ~]# ll mbr
-rw-r--r--. 1 root root 64 Feb 26 12:07 mbr
[root@localhost ~]# hexdump -C mbr
00000000  80 04 01 04 83 fe c2 ff  00 08 00 00 00 00 20 00  |.............. .|
00000010  00 fe c2 ff 8e fe c2 ff  00 08 20 00 00 f8 df 18  |.......... .....|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000040
[root@localhost ~]# dd if=/dev/zero of=/dev/nvme0n1 bs=1 count=64 seek=446
64+0 records in
64+0 records out
64 bytes copied, 0.000216824 s, 295 kB/s
[root@localhost ~]# hexdump -C -n 512 /dev/nvme0n1
00000000  eb 63 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.c..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
00000050  00 00 00 00 00 00 00 00  00 00 00 80 01 00 00 00  |................|
00000060  00 00 00 00 ff fa 90 90  f6 c2 80 74 05 f6 c2 70  |...........t...p|
00000070  74 02 b2 80 ea 79 7c 00  00 31 c0 8e d8 8e d0 bc  |t....y|..1......|
00000080  00 20 fb a0 64 7c 3c ff  74 02 88 c2 52 be 80 7d  |. ..d|<.t...R..}|
00000090  e8 17 01 be 05 7c b4 41  bb aa 55 cd 13 5a 52 72  |.....|.A..U..ZRr|
000000a0  3d 81 fb 55 aa 75 37 83  e1 01 74 32 31 c0 89 44  |=..U.u7...t21..D|
000000b0  04 40 88 44 ff 89 44 02  c7 04 10 00 66 8b 1e 5c  |[email protected]..\|
000000c0  7c 66 89 5c 08 66 8b 1e  60 7c 66 89 5c 0c c7 44  ||f.\.f..`|f.\..D|
000000d0  06 00 70 b4 42 cd 13 72  05 bb 00 70 eb 76 b4 08  |..p.B..r...p.v..|
000000e0  cd 13 73 0d 5a 84 d2 0f  83 d8 00 be 8b 7d e9 82  |..s.Z........}..|
000000f0  00 66 0f b6 c6 88 64 ff  40 66 89 44 04 0f b6 d1  |[email protected]....|
00000100  c1 e2 02 88 e8 88 f4 40  89 44 08 0f b6 c2 c0 e8  |[email protected]......|
00000110  02 66 89 04 66 a1 60 7c  66 09 c0 75 4e 66 a1 5c  |.f..f.`|f..uNf.\|
00000120  7c 66 31 d2 66 f7 34 88  d1 31 d2 66 f7 74 04 3b  ||f1.f.4..1.f.t.;|
00000130  44 08 7d 37 fe c1 88 c5  30 c0 c1 e8 02 08 c1 88  |D.}7....0.......|
00000140  d0 5a 88 c6 bb 00 70 8e  c3 31 db b8 01 02 cd 13  |.Z....p..1......|
00000150  72 1e 8c c3 60 1e b9 00  01 8e db 31 f6 bf 00 80  |r...`......1....|
00000160  8e c6 fc f3 a5 1f 61 ff  26 5a 7c be 86 7d eb 03  |......a.&Z|..}..|
00000170  be 95 7d e8 34 00 be 9a  7d e8 2e 00 cd 18 eb fe  |..}.4...}.......|
00000180  47 52 55 42 20 00 47 65  6f 6d 00 48 61 72 64 20  |GRUB .Geom.Hard |
00000190  44 69 73 6b 00 52 65 61  64 00 20 45 72 72 6f 72  |Disk.Read. Error|
000001a0  0d 0a 00 bb 01 00 b4 0e  cd 10 ac 3c 00 75 f4 c3  |...........<.u..|
000001b0  00 00 00 00 00 00 00 00  fa b6 3e 2a 00 00 00 00  |..........>*....|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
[root@localhost ~]# hexdump -C -n 512 /dev/nvme0n1 -v
00000000  eb 63 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.c..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
00000050  00 00 00 00 00 00 00 00  00 00 00 80 01 00 00 00  |................|
00000060  00 00 00 00 ff fa 90 90  f6 c2 80 74 05 f6 c2 70  |...........t...p|
00000070  74 02 b2 80 ea 79 7c 00  00 31 c0 8e d8 8e d0 bc  |t....y|..1......|
00000080  00 20 fb a0 64 7c 3c ff  74 02 88 c2 52 be 80 7d  |. ..d|<.t...R..}|
00000090  e8 17 01 be 05 7c b4 41  bb aa 55 cd 13 5a 52 72  |.....|.A..U..ZRr|
000000a0  3d 81 fb 55 aa 75 37 83  e1 01 74 32 31 c0 89 44  |=..U.u7...t21..D|
000000b0  04 40 88 44 ff 89 44 02  c7 04 10 00 66 8b 1e 5c  |[email protected]..\|
000000c0  7c 66 89 5c 08 66 8b 1e  60 7c 66 89 5c 0c c7 44  ||f.\.f..`|f.\..D|
000000d0  06 00 70 b4 42 cd 13 72  05 bb 00 70 eb 76 b4 08  |..p.B..r...p.v..|
000000e0  cd 13 73 0d 5a 84 d2 0f  83 d8 00 be 8b 7d e9 82  |..s.Z........}..|
000000f0  00 66 0f b6 c6 88 64 ff  40 66 89 44 04 0f b6 d1  |[email protected]....|
00000100  c1 e2 02 88 e8 88 f4 40  89 44 08 0f b6 c2 c0 e8  |[email protected]......|
00000110  02 66 89 04 66 a1 60 7c  66 09 c0 75 4e 66 a1 5c  |.f..f.`|f..uNf.\|
00000120  7c 66 31 d2 66 f7 34 88  d1 31 d2 66 f7 74 04 3b  ||f1.f.4..1.f.t.;|
00000130  44 08 7d 37 fe c1 88 c5  30 c0 c1 e8 02 08 c1 88  |D.}7....0.......|
00000140  d0 5a 88 c6 bb 00 70 8e  c3 31 db b8 01 02 cd 13  |.Z....p..1......|
00000150  72 1e 8c c3 60 1e b9 00  01 8e db 31 f6 bf 00 80  |r...`......1....|
00000160  8e c6 fc f3 a5 1f 61 ff  26 5a 7c be 86 7d eb 03  |......a.&Z|..}..|
00000170  be 95 7d e8 34 00 be 9a  7d e8 2e 00 cd 18 eb fe  |..}.4...}.......|
00000180  47 52 55 42 20 00 47 65  6f 6d 00 48 61 72 64 20  |GRUB .Geom.Hard |
00000190  44 69 73 6b 00 52 65 61  64 00 20 45 72 72 6f 72  |Disk.Read. Error|
000001a0  0d 0a 00 bb 01 00 b4 0e  cd 10 ac 3c 00 75 f4 c3  |...........<.u..|
000001b0  00 00 00 00 00 00 00 00  fa b6 3e 2a 00 00 00 00  |..........>*....|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
[root@localhost ~]# ls
anaconda-ks.cfg  mbr
[root@localhost ~]# scp mbr 10.0.0.132:
The authenticity of host '10.0.0.132 (10.0.0.132)' can't be established.
ED25519 key fingerprint is SHA256:09pUIne7s/8+FxKEZIDDYxcnm6Ecpe3Tn+Xjk6RBf4Q.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: y
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added '10.0.0.132' (ED25519) to the list of known hosts.
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
mbr                                                        100%   64   162.5KB/s   00:00    


下一步就是重启了

如图


image-20240226201417293

GRUB loading

welcome to GRUB!

error : ../../grub-core/kern/disk.c:258:no such partition

entering rescue mode...

image-20240227085525506

尼玛,终于进去了,这个位置要注意,选择重新启动时,看到系统启动进步条,只有0.5秒的时间,快速按下esc按键,只按一次,按多次是没有用的,按多次等于自动取消了,等于没按,我试了好久。后面又转换思路,用u盘启动也可以,u盘自己提前做好启动盘 ,注意u盘的镜像包要和自己的系统版本对上,所以,万事都要备份的

如下图

image-20240227090148277

配置命令

#用光盘启动,进入rescue mode,选第3项skip to shell

#配置网络
#ifconfig ens160 10.0.0.8/24
#ip a a 10.0.0.8/24 dev ens160
#scp 10.0.0.102:/root/dpt.img     #这里的dpt.img 就是你的文件 注意不能错,不然无法执行命令
.
#恢复MBR分区表
#dd if=dpt.img of=/dev/sda bs=1 seek=446
#reboot

image-20240227090921488

结果

image-20240227091207831

恢复成功

增加新硬盘-让内核发现新硬盘
echo '- - -' > /sys/class/scsi_host/host0|1|2/scan

alias scandisk='
echo - - - > /sys/class/scsi_host/host0/scan;
echo - - - > /sys/class/scsi_host/host1/scan;
echo - - - > /sys/class/scsi_host/host2/scan'

效果

我增加了一个20gb的磁盘,我不想重启,所以用这个命令让他扫描新磁盘

其中如果命令不对,可以直接用tab键查看



[17:18:11 root@centos8[ ~]#echo '- - -' > /sys/class/scsi_host/host0/scan
[17:18:26 root@centos8[ ~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    4G  0 part [SWAP]
sr0     11:0    1    7G  0 rom  
[17:18:39 root@centos8[ ~]#echo '- - -' > /sys/class/scsi_host/host1/scan
[17:18:50 root@centos8[ ~]#echo '- 
[17:18:57 root@centos8[ ~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    4G  0 part [SWAP]
sr0     11:0    1    7G  0 rom  
[17:18:59 root@centos8[ ~]#echo '- - -' > /sys/class/scsi_host/host2/scan
[17:19:10 root@centos8[ ~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    4G  0 part [SWAP]
sdb      8:16   0   20G  0 disk 
sr0     11:0    1    7G  0 rom  
[17:19:14 root@centos8[ ~]#

增加新硬盘,然后分区
命令
echo '- - -' > /sys/class/scsi_host/host2/scan
lsblk

fdisk /dev/sdc








效果:
17:43:47 root@centos8[ ~]#echo '- - -' > /sys/class/scsi_host/host2/scan
[17:43:55 root@centos8[ ~]#lsblk
NAME   MAJ:MIN RM    SIZE RO TYPE MOUNTPOINT
sda      8:0    0    200G  0 disk 
├─sda1   8:1    0      1G  0 part /boot
├─sda2   8:2    0    100G  0 part /
├─sda3   8:3    0     50G  0 part /data
├─sda4   8:4    0      1K  0 part 
└─sda5   8:5    0      4G  0 part [SWAP]
sdb      8:16   0     20G  0 disk 
├─sdb1   8:17   0      1G  0 part 
├─sdb2   8:18   0    512B  0 part 
├─sdb3   8:19   0     19G  0 part 
└─sdb4   8:20   0 1023.5K  0 part 
sdc      8:32   0     50G  0 disk 
sr0     11:0    1      7G  0 rom  
[17:43:59 root@centos8[ ~]#fdisk /dev/sdc

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 0x84eeafd8.

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


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-104857599, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): +1G

Created a new partition 1 of type 'Linux' and of size 1 GiB.

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2): 2
First sector (2099200-104857599, default 2099200): 
Last sector, +sectors or +size{K,M,G,T,P} (2099200-104857599, default 104857599): 

Created a new partition 2 of type 'Extended' and of size 49 GiB.

Command (m for help): p
Disk /dev/sdc: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x84eeafd8

Device     Boot   Start       End   Sectors Size Id Type
/dev/sdc1          2048   2099199   2097152   1G 83 Linux
/dev/sdc2       2099200 104857599 102758400  49G  5 Extended

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5
First sector (2101248-104857599, default 2101248): p
Value out of range.
First sector (2101248-104857599, default 2101248): w
Value out of range.
First sector (2101248-104857599, default 2101248): 
Last sector, +sectors or +size{K,M,G,T,P} (2101248-104857599, default 104857599): 

Created a new partition 5 of type 'Linux' and of size 49 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[17:45:43 root@centos8[ ~]#lsblk
NAME   MAJ:MIN RM    SIZE RO TYPE MOUNTPOINT
sda      8:0    0    200G  0 disk 
├─sda1   8:1    0      1G  0 part /boot
├─sda2   8:2    0    100G  0 part /
├─sda3   8:3    0     50G  0 part /data
├─sda4   8:4    0      1K  0 part 
└─sda5   8:5    0      4G  0 part [SWAP]
sdb      8:16   0     20G  0 disk 
├─sdb1   8:17   0      1G  0 part 
├─sdb2   8:18   0    512B  0 part 
├─sdb3   8:19   0     19G  0 part 
└─sdb4   8:20   0 1023.5K  0 part 
sdc      8:32   0     50G  0 disk 
├─sdc1   8:33   0      1G  0 part 
├─sdc2   8:34   0      1K  0 part 
└─sdc5   8:37   0     49G  0 part 
sr0     11:0    1      7G  0 rom  



增加完分区之后,要同步一下

centos7/8同步分区
命令
partprobe

[17:47:58 root@centos8[ ~]#partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[17:48:05 root@centos8[ ~]#
管理文件系统
mkfs.ext4|sfs


tune2fs管理ext



xfs_info查看xfs文件系统





fsck.xfs|ext4------文件系统修复和检测
实例
[18:21:50 root@centos8[ ~]#fsck.ext4 /dev/sdb3
e2fsck 1.44.6 (5-Mar-2019)
/dev/sdb3: clean, 11/1245184 files, 122210/4980219 blocks

#clean状态就是没有问题

linux的文件系统损坏会导致linux不正常关机,出错的时候如果系统告诉你是哪一块硬盘的分区有问题,比如是/dev/hda2,接着用如下的命令去对付它:

 -y /dev/hda2
结束后使用reboot命令重启系统这样就好了!

如果不知道时哪个地方出了问题,可以直接:

fsck
在随后的多个确认对话框中输入:y

结束后同样使用reboot命令重启系统这样就好了!

挂载

同一个设备可以同时挂载到多个挂载点
一个挂载点不能同时挂载多个设备



挂载规则:
一个挂载点同一时间只能挂载一个设备
一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
一个设备可以同时挂载到多个挂载点
通常挂载点一般是已存在空的目录

范例

实例
mount -t auto /dev/cdrom /mnt/cdrom
mount: mount point /mnt/cdrom does not exist           /mnt/cdrom目录不存在,需要先创建。

cd /mnt
-bash: cd: /mnt: No such file or directory

mkdir -p /mnt/cdrom    创建/mnt/cdrom目录
ls
bin   dev  home    lib         media  mnt  proc  sbin     srv  tmp  var
boot  etc  initrd  lost+found  misc   opt  root  selinux  sys  usr

mount -t auto /dev/cdrom /mnt/cdrom     挂载cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only     挂载成功

ll /mnt/cdrom    查看cdrom里面内容
total 859
dr-xr-xr-x  4 root root   2048 Sep  4  2005 CentOS
-r--r--r--  2 root root   8859 Mar 19  2005 centosdocs-man.css
-r--r--r--  9 root root  18009 Mar  1  2005 GPL
dr-xr-xr-x  2 root root 241664 May  7 02:32 headers
dr-xr-xr-x  4 root root   2048 May  7 02:23 images
dr-xr-xr-x  2 root root   4096 May  7 02:23 isolinux
dr-xr-xr-x  2 root root  18432 May  2 18:50 NOTES
-r--r--r--  2 root root   5443 May  7 01:49 RELEASE-NOTES-en.html
dr-xr-xr-x  2 root root   2048 May  7 02:34 repodata
-r--r--r--  9 root root   1795 Mar  1  2005 rpm-GPG-KEY
-r--r--r--  2 root root   1795 Mar  1  2005 RPM-GPG-KEY-centos4
-r--r--r--  1 root root 571730 May  7 01:39 yumgroups.xml


增加硬盘--分区--管理创建文件系统--挂载--

具体流程

fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。

语法
fdisk(选项)(参数)
选项
-b<分区大小>:指定每个分区的大小;
-l:列出指定的外围设备的分区表状况;
-s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
-u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
-v:显示版本信息。
参数
设备文件:指定要进行分区或者显示分区的硬盘设备文件。

实例
首先选择要进行操作的磁盘:

[root@localhost ~]# fdisk /dev/sdb
输入m列出可以执行的命令:

command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
输入p列出磁盘目前的分区情况:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           1        8001   8e  Linux LVM
/dev/sdb2               2          26      200812+  83  Linux
输入d然后选择分区,删除现有分区:

Command (m for help): d
Partition number (1-4): 1

Command (m for help): d
Selected partition 2
查看分区情况,确认分区已经删除:

Command (m for help): print

Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help):
输入n建立新的磁盘分区,首先建立两个主磁盘分区:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p    //建立主分区
Partition number (1-4): 1  //分区号
First cylinder (1-391, default 1):  //分区起始位置
Using default value 1
last cylinder or +size or +sizeM or +sizeK (1-391, default 391): 100  //分区结束位置,单位为扇区

Command (m for help): n  //再建立一个分区
Command action
   e   extended
   p   primary partition (1-4)
p 
Partition number (1-4): 2  //分区号为2
First cylinder (101-391, default 101):
Using default value 101
Last cylinder or +size or +sizeM or +sizeK (101-391, default 391): +200M  //分区结束位置,单位为M
确认分区建立成功:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  83  Linux
/dev/sdb2             101         125      200812+  83  Linux
再建立一个逻辑分区:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e  //选择扩展分区
Partition number (1-4): 3
First cylinder (126-391, default 126):
Using default value 126
Last cylinder or +size or +sizeM or +sizeK (126-391, default 391):
Using default value 391
确认扩展分区建立成功:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  83  Linux
/dev/sdb2             101         125      200812+  83  Linux
/dev/sdb3             126         391     2136645    5  Extended
在扩展分区上建立两个逻辑分区:

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l //选择逻辑分区
First cylinder (126-391, default 126):
Using default value 126
Last cylinder or +size or +sizeM or +sizeK (126-391, default 391): +400M    

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (176-391, default 176):
Using default value 176
Last cylinder or +size or +sizeM or +sizeK (176-391, default 391):
Using default value 391
确认逻辑分区建立成功:

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes
255 heads, 63 sectors/track, 391 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  83  Linux
/dev/sdb2             101         125      200812+  83  Linux
/dev/sdb3             126         391     2136645    5  Extended
/dev/sdb5             126         175      401593+  83  Linux
/dev/sdb6             176         391     1734988+  83  Linux

Command (m for help):
从上面的结果我们可以看到,在硬盘sdb我们建立了2个主分区(sdb1,sdb2),1个扩展分区(sdb3),2个逻辑分区(sdb5,sdb6)

注意:主分区和扩展分区的磁盘号位1-4,也就是说最多有4个主分区或者扩展分区,逻辑分区开始的磁盘号为5,因此在这个实验中试没有sdb4的。

最后对分区操作进行保存:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
建立好分区之后我们还需要对分区进行格式化才能在系统中使用磁盘。

在sdb1上建立ext2分区:

[root@localhost ~]# mkfs.ext2 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
100576 inodes, 200804 blocks
10040 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=209715200
7 block groups
32768 blocks per group, 32768 fragments per group
14368 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840

Writing inode tables: done                           
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
在sdb6上建立ext3分区:

[root@localhost ~]# mkfs.ext3 /dev/sdb6
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
217280 inodes, 433747 blocks
21687 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=444596224
14 block groups
32768 blocks per group, 32768 fragments per group
15520 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#
建立两个目录/oracle和/web,将新建好的两个分区挂载到系统:

[root@localhost ~]# mkdir /oracle
[root@localhost ~]# mkdir /web
[root@localhost ~]# mount /dev/sdb1 /oracle
[root@localhost ~]# mount /dev/sdb6 /web
查看分区挂载情况:

[root@localhost ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                      6.7G  2.8G  3.6G  44% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 125M     0  125M   0% /dev/shm
/dev/sdb1             773M  808K  733M   1% /oracle
/dev/sdb6             1.7G   35M  1.6G   3% /web
如果需要每次开机自动挂载则需要修改/etc/fstab文件,加入两行配置:

[root@localhost ~]# vim /etc/fstab

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
/dev/sdb1               /oracle                 ext2    defaults        0 0
/dev/sdb6               /web                    ext3    defaults        0 0




如何想实现永久挂载?

命令

vim /etc/fstab


打开是这个样子的
# 
# /etc/fstab
# Created by anaconda on Sat Jan 13 04:36:12 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=26f3bfe7-485b-4f12-91dc-b0966af358e1 /                       xfs     defaults        0 0
UUID=637e2d09-6947-4148-abcc-dc2a09d5396b /boot                   ext4    defaults        1 2
UUID=03c085ec-ad1f-4aef-a46b-ad3dce49b3cb /data                   xfs     defaults        0 0
UUID=acdbc962-14c9-4c26-94f3-bdc02e389aa5 swap                    swap    defaults        0 0 
UUID=cd24b93f-a61d-47c6-9a82-c1ee080d877e /data/mysql             ext4    defaults        0 0




不知道uuid的可以用blkid查看
[18:58:38 root@centos8[ ~]#blkid
/dev/sda1: UUID="637e2d09-6947-4148-abcc-dc2a09d5396b" TYPE="ext4" PARTUUID="c2bd30a3-01"
/dev/sda2: UUID="26f3bfe7-485b-4f12-91dc-b0966af358e1" TYPE="xfs" PARTUUID="c2bd30a3-02"
/dev/sda3: UUID="03c085ec-ad1f-4aef-a46b-ad3dce49b3cb" TYPE="xfs" PARTUUID="c2bd30a3-03"
/dev/sda5: UUID="acdbc962-14c9-4c26-94f3-bdc02e389aa5" TYPE="swap" PARTUUID="c2bd30a3-05"
/dev/sdb1: UUID="119d2a8f-05b5-4d85-98ef-0abaf287c858" TYPE="ext4" PARTUUID="580f44d0-ec12-934c-a276-526ce895efda"
/dev/sdb3: UUID="cd24b93f-a61d-47c6-9a82-c1ee080d877e" TYPE="ext4" PARTUUID="c36db401-e8f9-e042-bd1f-3badfd39ab5a"
/dev/sdc1: UUID="a32027e3-8003-4b1e-86d8-6710d23ec53f" TYPE="xfs" PARTUUID="84eeafd8-01"
/dev/sdc5: UUID="050ae4c0-a9f6-4ba5-9fc8-592dcfb65e9d" TYPE="ext4" PARTUUID="84eeafd8-05"
/dev/sr0: UUID="2020-01-03-21-42-40-00" LABEL="CentOS-8-1-1911-x86_64-dvd" TYPE="iso9660" PTUUID="087a73cc" PTTYPE="dos"
/dev/sdb4: PARTUUID="55c7b824-2f81-e643-a625-3b9b0de83e0d"



如何还不知道自己的分区类型的可以用下面这条命令查看

lsblk -f   可以查看系统的分区类型
范例
[18:36:53 root@centos8[ ~]#lsblk -f
NAME   FSTYPE  LABEL                      UUID                                 MOUNTPOINT
sda                                                                            
├─sda1 ext4                               637e2d09-6947-4148-abcc-dc2a09d5396b /boot
├─sda2 xfs                                26f3bfe7-485b-4f12-91dc-b0966af358e1 /
├─sda3 xfs                                03c085ec-ad1f-4aef-a46b-ad3dce49b3cb /data
├─sda4                                                                         
└─sda5 swap                               acdbc962-14c9-4c26-94f3-bdc02e389aa5 [SWAP]
sdb                                                                            
├─sdb1 ext4                               119d2a8f-05b5-4d85-98ef-0abaf287c858 /data/mysql
├─sdb2                                                                         
├─sdb3 ext4                               cd24b93f-a61d-47c6-9a82-c1ee080d877e 
└─sdb4                                                                         
sdc                                                                            
├─sdc1 xfs                                a32027e3-8003-4b1e-86d8-6710d23ec53f 
├─sdc2                                                                         
└─sdc5 ext4                               050ae4c0-a9f6-4ba5-9fc8-592dcfb65e9d 
sr0    iso9660 CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00       


最后保存退出
使用amount -a命令的作用是重新加载/etc/fstab中的所有内容,也就是自动挂载其中定义的所有文件系统。












注意

du和df 的区别

du查看文件夹大小
df查看系统大小
磁盘使用过程
分区   fdisk 
创建文件系统 mkfs.ext4|xfs
挂载    mount  /dev/sdb1 /mountpoint
如何禁用swap分区
1. vim /etc/fstab

# 
# /etc/fstab
# Created by anaconda on Sat Jan 13 04:36:12 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=26f3bfe7-485b-4f12-91dc-b0966af358e1 /                       xfs     defaults        0 0
UUID=637e2d09-6947-4148-abcc-dc2a09d5396b /boot                   ext4    defaults        1 2
UUID=03c085ec-ad1f-4aef-a46b-ad3dce49b3cb /data                   xfs     defaults        0 0
#UUID=acdbc962-14c9-4c26-94f3-bdc02e389aa5 swap                    swap    defaults        0 0
~                                                                                                     


2.直接把swap哪行,开头用#注释掉就可以了
保存退出,用swapoff -a 禁用 

注意:swapoff -a  可以临时禁用 但如果想永久禁用就必须修改文件/etc/fstab



实现逻辑卷
lvcreate 用于创建LVM的逻辑卷

lvdisplay 显示逻辑卷属性

lvextend 扩展逻辑卷空间

lvreduce 收缩逻辑卷空间

lvremove 删除指定LVM逻辑卷

lvresize 调整逻辑卷空间大小

lvscan 扫描逻辑卷
vgchange 修改卷组属性

vgconvert 转换卷组元数据格式

vgcreate 用于创建LVM卷组

vgdisplay 显示LVM卷组的信息

vgextend 向卷组中添加物理卷

vgreduce 从卷组中删除物理卷

vgremove 用于用户删除LVM卷组

vgrename 使用vgrename命令可以重命名卷组的名称

vgscan 扫描并显示系统中的卷组
pv 显示当前在命令行执行的命令的进度信息,管道查看器

pvchange 修改物理卷属性

pvck 检测物理卷的LVM元数据的一致性

pvcreate 将物理硬盘分区初始化为物理卷

pvdisplay 显示物理卷的属性

pvremove 删除一个存在的物理卷

pvs 输出物理卷信息报表

pvscan 扫描系统中所有硬盘的物理卷列表

pwck 用来验证系统认证文件内容和格式的完整性

lvcreate

lvcreate命令用于创建LVM的逻辑卷。逻辑卷是创建在卷组之上的。逻辑卷对应的设备文件保存在卷组目录下,例如:在卷组"vg1000"上创建一个逻辑卷"lvol0",则此逻辑卷对应的设备文件为"/dev/vg1000/lvol0"。

语法
lvcreate(选项)(参数)
选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。
参数
逻辑卷:指定要创建的逻辑卷名称。

实例
使用lvcreate命令在卷组"vg1000"上创建一个200MB的逻辑卷。在命令行中输入下面的命令:

[root@localhost ~]# lvcreate -L 200M vg1000    #创建大小为200M的逻辑卷
输出信息如下:

Logical volume "lvol0" created
说明:创建成功后,新的逻辑卷"lvol0",将通过设备文件/dev/vg1000/lvol0进行访问。


vgcreate

vgcreate命令磁盘管理
vgcreate命令用于创建LVM卷组。卷组(Volume Group)将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。

语法
vgcreate(选项)(参数)
选项
-l:卷组上允许创建的最大逻辑卷数;
-p:卷组中允许添加的最大物理卷数;
-s:卷组上的物理卷的PE大小。
参数
卷组名:要创建的卷组名称;
物理卷列表:要加入到卷组中的物理卷列表。
实例
使用vgcreate命令创建卷组 "vg1000",并且将物理卷/dev/sdb1和/dev/sdb2添加到卷组中。在命令行中输入下面的命令:

[root@localhost ~]# vgcreate vg1000 /dev/sdb1 /dev/sdb2  #创建卷组"vg1000"
输出信息如下:

Volume group "vg1000" successfully created


pvcreate

pvcreate命令
pvcreate命令用于将物理硬盘分区初始化为物理卷,以便LVM使用。

语法
pvcreate(选项)(参数)
选项
-f:强制创建物理卷,不需要用户确认;
-u:指定设备的UUID;
-y:所有的问题都回答“yes”;
-Z:是否利用前4个扇区。
参数
物理卷:指定要创建的物理卷对应的设备文件名。

实例
查看磁盘信息:

[root@localhost ~]# fdisk -l
Disk /dev/hda: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        1288    10241437+  83  Linux
/dev/hda3            1289        1925     5116702+  83  Linux
/dev/hda4            1926        5005    24740100    5  Extended
/dev/hda5            1926        2052     1020096   82  Linux swap / Solaris
/dev/hda6            2053        2235     1469916   8e  Linux LVM
/dev/hda7            2236        2418     1469916   8e  Linux LVM
/dev/hda8            2419        2601     1469916   8e  Linux LVM
/dev/hda9            2602        2784     1469916   8e  Linux LVM
检查有无 PV 在系统上,然后将/dev/hda6到/dev/hda9建立成为PV格式

[root@localhost ~]# pvscan
No matching physical volumes found    #找不到任何的 PV 存在!
将6-9分区转成pv,注意大括号的用途:

[root@localhost ~]# pvcreate /dev/hda{6,7,8,9}
  Physical volume "/dev/hda6" successfully created
  Physical volume "/dev/hda7" successfully created
  Physical volume "/dev/hda8" successfully created
  Physical volume "/dev/hda9" successfully created
这就分別表示每个 PV 的信息与系统所有 PV 的信息:

[root@localhost ~]# pvscan
  PV /dev/hda6         lvm2 [1.40 GB]
  PV /dev/hda7         lvm2 [1.40 GB]
  PV /dev/hda8         lvm2 [1.40 GB]
  PV /dev/hda9         lvm2 [1.40 GB]
  Total: 4 [5.61 GB] / in use: 0 [0   ] / in no VG: 4 [5.61 GB]
更详细的列示出系统上面每个 PV 信息:

[root@localhost ~]# pvdisplay
  "/dev/hda6" is a new physical volume of "1.40 GB"
  --- NEW Physical volume ---
  PV Name               /dev/hda6  #实际的 partition 分区名称
  VG Name                          #因为尚未分配出去,所以空白!
  PV Size               1.40 GB    #就是容量说明
  Allocatable           NO         #是否已被分配,结果是 NO
  PE Size (KByte)       0          #在此 PV 內的 PE 大小
  Total PE              0          #共分割出几个 PE
  free PE               0          #沒被 LV 用掉的 PE
  Allocated PE          0          #尚可分配出去的 PE 数量
  PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
....(底下省略)....
删除物理卷:

[root@localhost ~]# pvremove /dev/sdb2
Labels on physical volume "/dev/sdb2" successfully wiped
修改物理卷属性:

[root@localhost ~]# pvchange -x n /dev/sdb1    #禁止分配指定物理卷上的PE
Physical volume "/dev/sdb1" changed  
1 physical volume changed / 0 physical volumes not changed 


lvremove命令





lvremove命令用于删除指定LVM逻辑卷。如果逻辑卷已经使用mount命令加载,则不能使用lvremove命令删除。必须使用umount命令卸载后,逻辑卷方可被删除。

语法
lvremove(选项)(参数)
选项
-f:强制删除。
参数
逻辑卷:指定要删除的逻辑卷。

实例
使用lvremove命令删除指定的逻辑卷。在命令行中输入下面的命令:

[root@localhost ~]# lvremove /dev/vg1000/lvol0    #删除逻辑卷"lvol0"
输出信息如下:

Do you really want to remove active logical 
volume "lvol0"? [y/n]: y    #确认删除
  Logical volume "lvol0" successfully removed


lvreduce命令

lvreduce命令用于减少LVM逻辑卷占用的空间大小。使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。

语法
lvreduce(选项)(参数)
选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。
参数
逻辑卷:指定要操作的逻辑卷对应的设备文件。

实例
使用lvreduce命令减少指定的逻辑卷的空间大小。在命令行中输入下面的命令:

[root@localhost ~]# lvreduce -L -50M /dev/vg1000/lvol0     #将逻辑卷的空间大小减少50M
输出信息如下:

......省略部分输出内容......  
Do you really want to reduce lvol0? [y/n]: y  #确认操作  
  Reducing logical volume lvol0 to 252.00 MB  
  Logical volume lvol0 successfully resized

vgconvert命令

vgconvert命令用于转换指定LVM卷组的元数据格式,通常将“LVM1”格式的卷组转换为“LVM2”格式。转换卷组元数据前必须保证卷组处于非活动状态,否则无法完成转换操作。

语法
vgconvert(选项)(参数)
选项
-M:要转换的卷组格式。
参数
卷组:指定要转换格式的卷组。

实例
转换卷组元数据格式前,使用vgchange命令将卷组设置为非活动状态。在命令行中输入下面的命令:

[root@localhost lvm]# vgchange -an vg1000    #设置卷组状态为非活动状态
0 logical volume(s) in volume group "vg1000" now active 
使用vgconvert命令将卷组"vg1000"从"LVM1"格式转换为"LVM2"格式。在命令行中输入下面的命令:

[root@localhost lvm]# vgconvert -M2 vg1000    #转换卷组为"LVM2"格式
Volume group vg1000 successfully converted
使用vgchange命令将卷组设置为活动状态。在命令行中输入下面的命令:

[root@localhost lvm]# vgchange -ay vg1000     #设置卷组状态为活动状态
0 logical volume(s) in volume group "vg1000" now active

lvextend命令

lvextend命令用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。

语法
lvextend(选项)(参数)
选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。
参数
逻辑卷:指定要扩展空间的逻辑卷。

实例
使用lvextend命令为逻辑卷/dev/vg1000/lvol0增加100M空间。在命令行中输入下面的命令:

[root@localhost ~]# lvextend -L +100M /dev/vg1000/lvol0    #为了解决增加100M空间
输出信息如下:

Extending logical volume lvol0 to 300.00 MB  
Logical volume lvol0 successfully resized

范例

命令解释

这段对话记录了在 CentOS 8 系统上使用 `parted` 命令将 `/dev/sdb` 分区并转换为 LVM 物理卷(PV),然后创建卷组(VG)和逻辑卷(LV),最后格式化逻辑卷、挂载到 `/data/mysql` 目录的过程。具体步骤如下:

1. 使用 `parted` 创建一个新的 Linux LVM 类型分区 `/dev/sdb1`,大小为5GB。
2. 安装 LVM 工具(如果尚未安装)。
3. 将 `/dev/sdb1` 和后来出现的 `/dev/sdc` 转换为物理卷 (`pvcreate`)。
4. 创建名为 `testvg0` 的卷组 (`vgcreate`),并将两个物理卷加入其中。
5. 在卷组 `testvg0` 中创建一个名为 `lv-mysql` 的逻辑卷 (`lvcreate`),大小为6GB。
6. 格式化新创建的逻辑卷为 ext4 文件系统 (`mkfs.ext4`)。
7. 创建目录 `/data/mysql` 并挂载该逻辑卷到该目录下。






















1. 列出了所有逻辑卷(LVs),确认了`lv-mysql`的大小已从6GB扩展到了11GB。

2. 使用 `df -h` 查看文件系统挂载情况,确认 `/dev/mapper/testvg0-lv--mysql` 已经被挂载到 `/data/mysql` 目录下,并且显示其大小为5.9GB,这可能是因为文件系统尚未同步新分配的空间。

3. 执行了在线调整文件系统大小的操作,使用 `resize2fs /dev/testvg0/lv-mysql` 命令将文件系统大小扩大至与逻辑卷新的大小相匹配。之后再次运行 `df -h`,现在显示 `/dev/mapper/testvg0-lv--mysql` 的大小已经更新为11GB。

4. 卸载了 `/data/mysql` 文件系统,然后使用 `lvreduce -L 8G -r /dev/testvg0/lv-mysql` 命令缩小逻辑卷大小并同时调整文件系统大小。这个命令会先执行 `fsck` 检查文件系统完整性,然后通过 `resize2fs` 减小文件系统大小,最后缩小逻辑卷的大小。

5. 再次挂载 `/dev/mapper/testvg0-lv--mysql` 到 `/data/mysql`,并通过 `df -h` 验证挂载成功且大小减小到了8GB。

6. 最后,再次列出所有逻辑卷以确认 `lv-mysql` 的大小已经变更为8GB。

注解:alias scandisk='
echo - - - > /sys/class/scsi_host/host0/scan;
echo - - - > /sys/class/scsi_host/host1/scan;
echo - - - > /sys/class/scsi_host/host2/scan'

创建lvm逻辑卷


[root@centos8 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    4G  0 part 
sdb      8:16   0   50G  0 disk 
sr0     11:0    1    7G  0 rom  
[root@centos8 ~]# 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 0x20b5cf5e.

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): 
First sector (2048-104857599, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): +5G

Created a new partition 1 of type 'Linux' and of size 5 GiB.

Command (m for help): T
T: unknown command

Command (m for help): t

Selected partition 1
Hex code (type L to list all codes): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden or  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi ea  Rufus alignment
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs        
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ee  GPT            
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f4  SpeedStor      
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      f2  DOS secondary  
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fb  VMware VMFS    
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fc  VMware VMKCORE 
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fd  Linux raid auto
1c  Hidden W95 FAT3 75  PC/IX           bc  Acronis FAT32 L fe  LANstep        
1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot    ff  BBT            
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): p
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x20b5cf5e

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 10487807 10485760   5G 8e Linux LVM

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@centos8 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    4G  0 part 
sdb      8:16   0   50G  0 disk 
└─sdb1   8:17   0    5G  0 part 
sr0     11:0    1    7G  0 rom  
[root@centos8 ~]# pvs

[root@centos8 ~]# pvdisplay
[root@centos8 ~]# scandisk
[root@centos8 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  100G  0 part /
├─sda3   8:3    0   50G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    4G  0 part 
sdb      8:16   0   50G  0 disk 
└─sdb1   8:17   0    5G  0 part 
sdc      8:32   0   10G  0 disk 
sr0     11:0    1    7G  0 rom  
[root@centos8 ~]# pvcreate /dev/sd{b1,c}
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc" successfully created.
[root@centos8 ~]# pvs
  PV         VG Fmt  Attr PSize  PFree 
  /dev/sdb1     lvm2 ---   5.00g  5.00g
  /dev/sdc      lvm2 ---  10.00g 10.00g
[root@centos8 ~]# vgcreate -s 16 testvg0 /dev/sdb1 /dev/sdc
  Volume group "testvg0" successfully created
[root@centos8 ~]# vgdisplay
  --- Volume group ---
  VG Name               testvg0
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <14.97 GiB
  PE Size               16.00 MiB
  Total PE              958
  Alloc PE / Size       0 / 0   
  Free  PE / Size       958 / <14.97 GiB
  VG UUID               lelByc-vV0p-npMx-yNcm-qDRo-kM1I-OfRSPN
   
[root@centos8 ~]# pvs
  PV         VG      Fmt  Attr PSize PFree
  /dev/sdb1  testvg0 lvm2 a--  4.98g 4.98g
  /dev/sdc   testvg0 lvm2 a--  9.98g 9.98g
[root@centos8 ~]# lvs


[root@centos8 ~]# lvcreate -L 6G -n lv-mysql testvg0
  Logical volume "lv-mysql" created.
[root@centos8 ~]# lvs
  LV       VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-mysql testvg0 -wi-a----- 6.00g                                                    
[root@centos8 ~]# ll /dev/testvg0/lv-mysql
lrwxrwxrwx. 1 root root 7 Feb 27 20:21 /dev/testvg0/lv-mysql -> ../dm-0
[root@centos8 ~]# ll /dev/dm*
brw-rw----. 1 root disk  253, 0 Feb 27 20:21 /dev/dm-0
crw-rw----+ 1 root audio  14, 9 Feb 27 20:00 /dev/dmmidi
[root@centos8 ~]# mkfs/ext4 /dev/testvg0/lv-mysql
-bash: mkfs/ext4: No such file or directory
[root@centos8 ~]# mkfs.ext4 /dev/testvg0/lv-mysql
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 1572864 4k blocks and 393216 inodes
Filesystem UUID: 41af83c2-2a5e-4942-ae59-722fb16c739e
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

[root@centos8 ~]# blkid
/dev/sda1: UUID="637e2d09-6947-4148-abcc-dc2a09d5396b" TYPE="ext4" PARTUUID="c2bd30a3-01"
/dev/sda2: UUID="26f3bfe7-485b-4f12-91dc-b0966af358e1" TYPE="xfs" PARTUUID="c2bd30a3-02"
/dev/sda3: UUID="03c085ec-ad1f-4aef-a46b-ad3dce49b3cb" TYPE="xfs" PARTUUID="c2bd30a3-03"
/dev/sda5: UUID="acdbc962-14c9-4c26-94f3-bdc02e389aa5" TYPE="swap" PARTUUID="c2bd30a3-05"
/dev/sr0: UUID="2020-01-03-21-42-40-00" LABEL="CentOS-8-1-1911-x86_64-dvd" TYPE="iso9660" PTUUID="087a73cc" PTTYPE="dos"
/dev/sdb1: UUID="qEe6ta-NloJ-6DVw-dCYK-PXed-uYiy-W8Dvxy" TYPE="LVM2_member" PARTUUID="20b5cf5e-01"
/dev/mapper/testvg0-lv--mysql: UUID="41af83c2-2a5e-4942-ae59-722fb16c739e" TYPE="ext4"
/dev/sdc: UUID="AspCSK-myTf-ngWS-YRhh-kEOd-SceQ-OaARa5" TYPE="LVM2_member"
[root@centos8 ~]# mkdir /data/mysql
[root@centos8 ~]# mount -a
[root@centos8 ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       967M     0  967M   0% /dev
tmpfs                          983M     0  983M   0% /dev/shm
tmpfs                          983M  9.4M  974M   1% /run
tmpfs                          983M     0  983M   0% /sys/fs/cgroup
/dev/sda2                      100G  4.7G   96G   5% /
/dev/sda3                       50G  390M   50G   1% /data
/dev/sda1                      976M  123M  787M  14% /boot
tmpfs                          197M  1.2M  196M   1% /run/user/42
tmpfs                          197M  4.0K  197M   1% /run/user/0
/dev/mapper/testvg0-lv--mysql  5.9G   24M  5.6G   1% /data/mysql
[root@centos8 ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree 
  testvg0   2   1   0 wz--n- <14.97g <8.97g


  
[root@centos8 ~]# lvextend -L  +5G /dev/testvg0/lv-mysql
  Size of logical volume testvg0/lv-mysql changed from 6.00 GiB (384 extents) to 11.00 GiB (704 extents).
  Logical volume testvg0/lv-mysql successfully resized.

[root@centos8 ~]# lvs
  LV       VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-mysql testvg0 -wi-ao---- 11.00g                                                    
[root@centos8 ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       967M     0  967M   0% /dev
tmpfs                          983M     0  983M   0% /dev/shm
tmpfs                          983M  9.4M  974M   1% /run
tmpfs                          983M     0  983M   0% /sys/fs/cgroup
/dev/sda2                      100G  4.7G   96G   5% /
/dev/sda3                       50G  390M   50G   1% /data
/dev/sda1                      976M  123M  787M  14% /boot
tmpfs                          197M  1.2M  196M   1% /run/user/42
tmpfs                          197M  4.0K  197M   1% /run/user/0
/dev/mapper/testvg0-lv--mysql  5.9G   24M  5.6G   1% /data/mysql
[root@centos8 ~]# resize2fs /dev/testvg0/lv-mysql
resize2fs 1.44.6 (5-Mar-2019)
Filesystem at /dev/testvg0/lv-mysql is mounted on /data/mysql; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/testvg0/lv-mysql is now 2883584 (4k) blocks long.

[root@centos8 ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       967M     0  967M   0% /dev
tmpfs                          983M     0  983M   0% /dev/shm
tmpfs                          983M  9.4M  974M   1% /run
tmpfs                          983M     0  983M   0% /sys/fs/cgroup
/dev/sda2                      100G  4.7G   96G   5% /
/dev/sda3                       50G  390M   50G   1% /data
/dev/sda1                      976M  123M  787M  14% /boot
tmpfs                          197M  1.2M  196M   1% /run/user/42
tmpfs                          197M  4.0K  197M   1% /run/user/0
/dev/mapper/testvg0-lv--mysql   11G   30M   11G   1% /data/mysql
[root@centos8 ~]# umount /data/mysql
[root@centos8 ~]# lvreduce -L 8G -r /dev/testvg0/lv-mysql 
fsck from util-linux 2.32.1
/dev/mapper/testvg0-lv--mysql: 11/720896 files (0.0% non-contiguous), 69312/2883584 blocks
resize2fs 1.44.6 (5-Mar-2019)
Resizing the filesystem on /dev/mapper/testvg0-lv--mysql to 2097152 (4k) blocks.
The filesystem on /dev/mapper/testvg0-lv--mysql is now 2097152 (4k) blocks long.

  Size of logical volume testvg0/lv-mysql changed from 11.00 GiB (704 extents) to 8.00 GiB (512 extents).
  Logical volume testvg0/lv-mysql successfully resized.
[root@centos8 ~]# mount /dev/testvg0/lv-mysql
[root@centos8 ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       967M     0  967M   0% /dev
tmpfs                          983M     0  983M   0% /dev/shm
tmpfs                          983M  9.4M  974M   1% /run
tmpfs                          983M     0  983M   0% /sys/fs/cgroup
/dev/sda2                      100G  4.7G   96G   5% /
/dev/sda3                       50G  390M   50G   1% /data
/dev/sda1                      976M  123M  787M  14% /boot
tmpfs                          197M  1.2M  196M   1% /run/user/42
tmpfs                          197M  4.0K  197M   1% /run/user/0
/dev/mapper/testvg0-lv--mysql  7.9G   27M  7.5G   1% /data/mysql
[root@centos8 ~]# lvs
  LV       VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-mysql testvg0 -wi-ao---- 8.00g                                 
  
  
  
  
  
  
  
  
  
[root@centos8 ~]# history
    1  vim /etc/fstab
    2  free -m
    3  swapoff -a
    4  free -m
    5  reboot
    6  free -m
    7  vim /etc/fstab
    8  alias scandisk='
echo - - - > /sys/class/scsi_host/host0/scan;
echo - - - > /sys/class/scsi_host/host1/scan;
echo - - - > /sys/class/scsi_host/host2/scan'
    9  scandisk
   10  lsblk
   11  fdisk /dev/sdb
   12  lsblk
   13  pvs
   14  pvsdisplay
   15  yum install pvsdisplay
   16  pvdisplay
   17  scandisk
   18  lsblk
   19  pvcreate /dev/sd{b1,c}
   20  pvs
   21  vgcreate -s 16 testvg0 /dev/sdb1 /dev/sdc
   22  vgdisplay
   23  pvs
   24  lvs
   25  lvcreate -L 6G -n mysql
   26  lvcreate -L 6G -n lv-mysql testvg0
   27  lvs
   28  ll /dev/testvg0/lv-mysql
   29  ll /dev/dm*
   30  mkfs/ext4 /dev/testvg0/lv-mysql
   31  mkfs.ext4 /dev/testvg0/lv-mysql
   32  blkid
   33  mkdir /data/mysql
   34  mount -a
   35  df -h
   36  vgs
   37  lvextend -L  100%free /dev/testvg0/lv-mysql
   38  lvextend -L  +100%free /dev/testvg0/lv-mysql
   39  lvextend -L  +5G /dev/testvg0/lv-mysql
   40  LVS
   41  lvs
   42  df -h
   43  resize2fs /dev/testvg0/lv-mysql
   44  df -h
   45  umount /data/mysql
   46  lvreduce -L 8G -r /dev/testvg0/lv-mysql 
   47  mount /dev/testvg0/lv-mysql
   48  df -h
   49  lvs
   50  history

范例 :如果某个磁盘需要把他卸下来,但不能把数据给卸下来。数据仍然需要保存在系统上,怎麽办?
[root@centos8 ~]# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0  200G  0 disk 
├─sda1                8:1    0    1G  0 part /boot
├─sda2                8:2    0  100G  0 part /
├─sda3                8:3    0   50G  0 part /data
├─sda4                8:4    0    1K  0 part 
└─sda5                8:5    0    4G  0 part 
sdb                   8:16   0   50G  0 disk 
├─sdb1                8:17   0    5G  0 part 
└─sdb2                8:18   0   45G  0 part 
sdc                   8:32   0   10G  0 disk 
└─testvg0-lv--mysql 253:0    0    8G  0 lvm  /data/mysql
sdd                   8:48   0   10G  0 disk 
sr0                  11:0    1    7G  0 rom  
[root@centos8 ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created.
[root@centos8 ~]# vgextend testvg0 /dev/sdd
  Volume group "testvg0" successfully extended
[root@centos8 ~]# vgdisplay
  --- Volume group ---
  VG Name               testvg0
  System ID             
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               <69.94 GiB
  PE Size               16.00 MiB
  Total PE              4476
  Alloc PE / Size       512 / 8.00 GiB
  Free  PE / Size       3964 / <61.94 GiB
  VG UUID               lelByc-vV0p-npMx-yNcm-qDRo-kM1I-OfRSPN
   
[root@centos8 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sdb1  testvg0 lvm2 a--   4.98g  4.98g
  /dev/sdb2  testvg0 lvm2 a--  44.98g 44.98g
  /dev/sdc   testvg0 lvm2 a--   9.98g  1.98g
  /dev/sdd   testvg0 lvm2 a--   9.98g  9.98g
[root@centos8 ~]# pvmove /dev/sdc 
  /dev/sdc: Moved: 0.59%
  /dev/sdc: Moved: 100.00%
[root@centos8 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sdb1  testvg0 lvm2 a--   4.98g  4.98g
  /dev/sdb2  testvg0 lvm2 a--  44.98g 36.98g
  /dev/sdc   testvg0 lvm2 a--   9.98g  9.98g
  /dev/sdd   testvg0 lvm2 a--   9.98g  9.98g
[root@centos8 ~]# pvremove /dev/sdc
  PV /dev/sdc is used by VG testvg0 so please use vgreduce first.
  (If you are certain you need pvremove, then confirm by using --force twice.)
  /dev/sdc: physical volume label not removed.
[root@centos8 ~]# vgreduce testvg0 /dev/sdc
  Removed "/dev/sdc" from volume group "testvg0"

[root@centos8 ~]# pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped.
[root@centos8 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sdb1  testvg0 lvm2 a--   4.98g  4.98g
  /dev/sdb2  testvg0 lvm2 a--  44.98g 36.98g
  /dev/sdd   testvg0 lvm2 a--   9.98g  9.98g




命令解释
在上述命令序列中,您执行了以下操作:

1. 使用 `lsblk` 查看当前磁盘分区和挂载点信息。
2. 在 `/dev/sdd` 上创建物理卷(PV):`pvcreate /dev/sdd`。
3. 将新的物理卷 `/dev/sdd` 添加到名为 `testvg0` 的现有卷组(VG)中:`vgextend testvg0 /dev/sdd`。
4. 显示 `testvg0` 卷组的详细信息,确认卷组已扩展成功。
5. 移动 `/dev/sdc` 上的部分或全部逻辑卷到其他 PV 中以释放 `/dev/sdc`,使用 `pvmove /dev/sdc`。
6. 再次查看所有物理卷的状态,确认数据已从 `/dev/sdc` 移动到其他 PV。
7. 由于 `/dev/sdc` 还是属于 `testvg0` 卷组的一部分,所以在尝试删除它之前需要先从卷组中移除,执行 `vgreduce testvg0 /dev/sdc` 成功将 `/dev/sdc` 从卷组中移除。

8. 正确地执行了 `pvremove /dev/sdc` 删除 `/dev/sdc` 上的物理卷标签,并成功将其从 LVM 系统中移除。

最终结果是卷组 `testvg0` 包含 `/dev/sdb1`、`/dev/sdb2` 和 `/dev/sdd` 三个物理卷,而 `/dev/sdc` 已经被成功移除并清除了其物理卷标签。




逻辑卷快照
[root@centos8 ~]# cp /etc/passwd /data/mysql/f1.txt
[root@centos8 ~]# cp /etc/passwd /data/mysql/f2.txt
[root@centos8 ~]# cp /etc/passwd /data/mysql/f3.txt
[root@centos8 ~]# ls /data/mysql
f1.txt  f2.txt  f3.txt  lost+found
[root@centos8 ~]# lvs
  LV       VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv-mysql testvg0 -wi-ao---- 8.00g                                                    
[root@centos8 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree 
  testvg0   3   1   0 wz--n- 59.95g 51.95g
[root@centos8 ~]# lvcreate -n lv-mysql-snapshot -s -p r -L 1G /dev/testvg0/lv-mysql
  Logical volume "lv-mysql-snapshot" created.
[root@centos8 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/testvg0/lv-mysql
  LV Name                lv-mysql
  VG Name                testvg0
  LV UUID                n718sb-mfRH-I242-e5uQ-GvGh-dctU-6bSruc
  LV Write Access        read/write
  LV Creation host, time centos8.magedu.org, 2024-02-27 20:21:42 +0800
  LV snapshot status     source of
                         lv-mysql-snapshot [active]
  LV Status              available
  # open                 1
  LV Size                8.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/testvg0/lv-mysql-snapshot
  LV Name                lv-mysql-snapshot
  VG Name                testvg0
  LV UUID                KzfLNX-FimE-9U4J-JdV3-0u47-jk49-0BLVM5
  LV Write Access        read only
  LV Creation host, time centos8.magedu.org, 2024-02-27 21:06:20 +0800
  LV snapshot status     active destination for lv-mysql
  LV Status              available
  # open                 0
  LV Size                8.00 GiB
  Current LE             512
  COW-table size         1.00 GiB
  COW-table LE           64
  Allocated to snapshot  0.01%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
   
[root@centos8 ~]# ll /dev/testvg0/lv-mysql*
lrwxrwxrwx. 1 root root 7 Feb 27 21:06 /dev/testvg0/lv-mysql -> ../dm-0
lrwxrwxrwx. 1 root root 7 Feb 27 21:06 /dev/testvg0/lv-mysql-snapshot -> ../dm-3
[root@centos8 ~]# ls /mnt
hgfs
[root@centos8 ~]# mount /dev/testvg0/lv-mysql-snapshot /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@centos8 ~]# ls /mnt
f1.txt  f2.txt  f3.txt  lost+found
[root@centos8 ~]# vim /data/mysql/f1.txt
[root@centos8 ~]# vim /data/mysql/f1.txt
[root@centos8 ~]# vim /data/mysql/f1.txt
[root@centos8 ~]# vim /data/mysql/f2.txt
[root@centos8 ~]# vim /data/mysql/f2.txt
[root@centos8 ~]# vim /data/mysql/f2.txt
[root@centos8 ~]# vim /data/mysql/f2.txt
[root@centos8 ~]# cat /data/mysql/f2.txt
[root@centos8 ~]# cat /data/mysql/f3.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
geoclue:x:997:995:User for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
unbound:x:996:991:Unbound DNS resolver:/etc/unbound:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
gluster:x:995:990:GlusterFS daemons:/run/gluster:/sbin/nologin
chrony:x:994:989::/var/lib/chrony:/sbin/nologin
libstoragemgmt:x:993:987:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
pipewire:x:992:986:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
saslauth:x:991:76:Saslauthd user:/run/saslauthd:/sbin/nologin
setroubleshoot:x:990:985::/var/lib/setroubleshoot:/sbin/nologin
dnsmasq:x:984:984:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
clevis:x:983:982:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
cockpit-ws:x:982:980:User for cockpit-ws:/nonexisting:/sbin/nologin
sssd:x:981:979:User for sssd:/:/sbin/nologin
colord:x:980:978:User for colord:/var/lib/colord:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:979:977::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
nian:x:1000:1000:nian:/home/nian:/bin/bash
[root@centos8 ~]# vim /data/mysql/f3.txt

[1]+  Stopped                 vim /data/mysql/f3.txt
[root@centos8 ~]# cat /data/mysql/f3.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@centos8 ~]# ll /mnt/f3.txt
-rw-r--r--. 1 root root 2424 Feb 27 21:04 /mnt/f3.txt
[root@centos8 ~]# cat /mnt/f3.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
geoclue:x:997:995:User for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
unbound:x:996:991:Unbound DNS resolver:/etc/unbound:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
gluster:x:995:990:GlusterFS daemons:/run/gluster:/sbin/nologin
chrony:x:994:989::/var/lib/chrony:/sbin/nologin
libstoragemgmt:x:993:987:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
pipewire:x:992:986:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
saslauth:x:991:76:Saslauthd user:/run/saslauthd:/sbin/nologin
setroubleshoot:x:990:985::/var/lib/setroubleshoot:/sbin/nologin
dnsmasq:x:984:984:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
clevis:x:983:982:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
cockpit-ws:x:982:980:User for cockpit-ws:/nonexisting:/sbin/nologin
sssd:x:981:979:User for sssd:/:/sbin/nologin
colord:x:980:978:User for colord:/var/lib/colord:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:979:977::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
nian:x:1000:1000:nian:/home/nian:/bin/bash
[root@centos8 ~]# rm -f /data/mysql/f2.txt
[root@centos8 ~]# ls /data/mysql
f1.txt  f3.txt  lost+found
[root@centos8 ~]# ls /mnt
f1.txt  f2.txt  f3.txt  lost+found
[root@centos8 ~]# cp /etc/fstab /data/mysql/f4.txt
[root@centos8 ~]# ls /data/mysql/
f1.txt  f3.txt  f4.txt  lost+found
[root@centos8 ~]# ls /mnt
f1.txt  f2.txt  f3.txt  lost+found

[root@centos8 ~]# umount /mnt
[root@centos8 ~]# df
Filesystem                    1K-blocks    Used Available Use% Mounted on
devtmpfs                         989252       0    989252   0% /dev
tmpfs                           1006124       0   1006124   0% /dev/shm
tmpfs                           1006124    9576    996548   1% /run
tmpfs                           1006124       0   1006124   0% /sys/fs/cgroup
/dev/sda2                     104806400 4873676  99932724   5% /
/dev/sda3                      52403200  398576  52004624   1% /data
/dev/sda1                        999320  124984    805524  14% /boot
tmpfs                            201224    1180    200044   1% /run/user/42
tmpfs                            201224       4    201220   1% /run/user/0
/dev/mapper/testvg0-lv--mysql   8191416   27660   7766080   1% /data/mysql
[root@centos8 ~]# umount /data/mysql/
umount: /data/mysql/: target is busy.
[root@centos8 ~]# umount /data/mysql/
umount: /data/mysql/: target is busy.
[root@centos8 ~]# umount /data/mysql/
umount: /data/mysql/: target is busy.
[root@centos8 ~]# lsof /data/mysql
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
vim     3474 root    6u   REG  253,0    12288   13 /data/mysql/.f3.txt.swp
[root@centos8 ~]# umount -f /data/mysql/
umount: /data/mysql: target is busy.
[root@centos8 ~]# lsof /data/mysql
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
vim     3474 root    6u   REG  253,0    12288   13 /data/mysql/.f3.txt.swp
[root@centos8 ~]# kill -9 3474
[root@centos8 ~]# lsof /data/mysql
[1]+  Killed                  vim /data/mysql/f3.txt
[root@centos8 ~]# umount /data/mysql/
[root@centos8 ~]# lvconvert --merge /dev/testvg0/lv-mysql-snapshot
  Merging of volume testvg0/lv-mysql-snapshot started.
  testvg0/lv-mysql: Merged: 100.00%
[root@centos8 ~]# ls /data/mysql -l
total 0
[root@centos8 ~]# mount /dev/testvg0/lv-mysql /data/mysql
[root@centos8 ~]# ls /data/mysql -l
total 28
-rw-r--r--. 1 root root  2424 Feb 27 21:04 f1.txt
-rw-r--r--. 1 root root  2424 Feb 27 21:04 f2.txt
-rw-r--r--. 1 root root  2424 Feb 27 21:04 f3.txt
drwx------. 2 root root 16384 Feb 27 20:23 lost+found




















命令解释
将 /etc/passwd 文件分别复制为 /data/mysql/ 目录下的 f1.txt, f2.txt, 和 f3.txt。
显示当前的逻辑卷信息,确认 lv-mysql 的大小为8GB,且查看了卷组 testvg0 的状态。
创建了一个名为 lv-mysql-snapshot 的快照逻辑卷,基于 /dev/testvg0/lv-mysql,并且大小为 1GB。
挂载快照逻辑卷到 /mnt 目录下,由于快照是只读的,所以挂载时显示警告“device write-protected, mounted read-only”。
使用 Vim 打开了 /data/mysql/f1.txt, /data/mysql/f2.txt 和 /data/mysql/f3.txt 文件进行编辑(虽然这个过程中没有明确的修改记录)。
分别查看了 /data/mysql/f2.txt 和 /data/mysql/f3.txt 文件内容,并在 /mnt 下查看了与之对应的快照文件 /mnt/f3.txt,内容一致。
删除了 /data/mysql/f2.txt 文件,但该文件在 /mnt 中的快照仍存在。
复制 /etc/fstab 文件至 /data/mysql/ 并重命名为 f4.txt。
尝试卸载 /data/mysql/,但因为有 Vim 进程打开了位于该目录下的 .f3.txt.swp 交换文件,导致目标处于忙碌状态而无法卸载。



解决办法:

需要先关闭正在使用 /data/mysql/ 目录下文件的所有进程,例如这里就是通过 kill 命令终止 PID 为 3474 的 Vim 进程:kill 3474。然后再尝试卸载 /data/mysql/ 目录。

使用 kill -9 3474 命令强制终止了 PID 为 3474 的 Vim 进程,这个进程之前打开了 /data/mysql/f3.txt 文件,导致无法卸载 /data/mysql/ 目录。现在该进程已结束,您可以成功卸载 /data/mysql/。

执行 lvconvert --merge /dev/testvg0/lv-mysql-snapshot 命令将快照卷 lv-mysql-snapshot 合并回原始逻辑卷 lv-mysql。这意味着所有对 lv-mysql 的更改(自创建快照以来的更改)都将应用到原始卷上,并且快照卷在合并完成后将被删除。

卸载 /data/mysql/ 后重新挂载逻辑卷 /dev/testvg0/lv-mysql 到 /data/mysql/ 目录下。

最后,通过 ls /data/mysql -l 查看 /data/mysql/ 目录下的文件列表,显示 f1.txt、f2.txt 和 f3.txt 文件以及 lost+found 目录均存在,说明在快照合并过程中,原始数据得到了保留,没有丢失。这里需要注意的是,在执行快照合并操作前,尽管您删除了 /data/mysql/f2.txt 文件,但由于我们基于快照还原了原始卷,因此 f2.txt 文件仍然存在于 /data/mysql/ 目录下。



问题

如何uuid不小心写错了,或者少复制了一位,导致系统无法启动,怎么办?

image-20240227110858667

image-20240227111423891

可以先把错误的给他注释掉 就加个#号就可以了

保存退出,重启,这个时候你在修改里面的配置,uuid复制正确就可以了

整体思路:大问题---小问题--解决

image-20240227111546025

标签:00,data,sbin,dev,实验,mysql,root
From: https://www.cnblogs.com/nwq1101/p/18037639

相关文章

  • 第2单 - 实验 debug 命令
         编写命令 以汇编方式向内存中写入数据 A命令 向0010:0000 地址写入汇编  U命令查看刚录入的命令 查看内存中的汇编语言 U命令   修改CS,IP,到新录入的程序   T命令 执行  2.    3. Dff......
  • 实验5
    1、查找/var目录下属主为root,且属组为mail的所有文件[02:58:25root@localhost~][#find/var-userroot-groupmail/var/spool/mail2、查找/var目录下不属于root、lp、gdm的所有文件find/var\(!-userroot-o!-userlp-o!-usergdm\)-typeffind/var-not......
  • 实验4
    练习1.当用户docker对/testdir目录无执行权限时,意味着无法做哪些操作?无法进入该目录,即不能使用cd/testdir命令切换到该目录。如果试图访问/testdir下的文件或子目录,即使这些文件有合适的权限,由于用户不能搜索目录内容,所以也无法直接通过相对路径来访问。2.当用户mongodb对/......
  • 实验室与排课管理系统
    适用于校园与科研单位主要技术栈Java8Maven3.6.3MySQL5.7Python3.8SpringBoot框架Vue2  项目地址:https://github.com/BennettMa23 说明手册默认用户,可在系统的用户管理自行增加管理员:用户名:admin密码:admin老师:用户名:teacher密码:admin学生......
  • 实验3
    (1)如何创建/testdir/dir1/x,/testdir/dir1/y,/testdir/dir1/x/a,/testdir/dir1/x/b,/testdir/dir1/y/a,/testdir/dir1/y/bmkdir-p/testdir/dir1/{x,y}/{a,b}touch/testdir/dir1/{x,y}/{a,b}(2)如何创建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/test......
  • 实验2
    如何设置Ubuntu的远程连接root1.切换成rootsudo-i1.5设置个root密码passwd2.进入nano/etc/ssh/sshd_confignano/etc/ssh/sshd_config3.修改这个位置PermitRootloginyes4.保存ctrl+x5.确定y6.回车enter7.效果结果:Ubuntu2004和Ubuntu2204都成......
  • 实验1
    vmnet1192.168.10.0vmnet810.0.0.0安装rocky9、centos6/7/8,Ubuntu1804/20.04/22.04用虚拟机安装1.安装**CentOS1.1针对CentOS7/6/8创建虚拟机环境2.安装包Ubuntu1804/2004/22043.安装rocky密码自己......
  • spark实验七 SparkMLlib
    1.数据导入从文件中导入数据,并转化为DataFrame。2.进行主成分分析(PCA)对6个连续型的数值型变量进行主成分分析。PCA(主成分分析)是通过正交变换把一组相关变量的观测值转化成一组线性无关的变量值,即主成分的一种方法。PCA通过使用主成分把特征向量投影到低维空间,实现对特征......
  • spark实验六SparkStreaming
    1.安装FlumeFlume是Cloudera提供的一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。Flume的核心是把数据从数据源收集过来,再送到目的地。请到Flume官网下载Flume1.7.0安装文件,下载地址如......
  • mpsoc嵌入式vitis开发—EMIO LED实验
    前言vitis版本:Vitis2023.2由于Vitis版本更新,很多API发生变化,学习原子哥的教程时很多代码对于不上,所以自己重新写一遍,并记录下自己踩过的坑,方便以后查看。这里直接给出代码,其他的流程参考原子哥的《2_DFZU2EG_4EVMPSoC之嵌入式Vitis开发指南_V1.0.pdf》代码采用CodeGeeX-AM......