目录
fdisk /dev/sdb(进如操作页面) gdisk 也一样(风险大自动转换为gpt)
分区方式
MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
划分分区的单位:
CentOS 5 之前按整柱面划分
CentOS 6 版本后可以按Sector划分 MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应的1--4,/dev/sda3,逻辑分区从5开始,/dev/sda5 就是在4下的扩展分区 sda5的 start开始位置在 sda4里面的\
GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以启动
设备类型:
块设备:block,存取单位“块”,磁盘
字符设备:char,存取单位“字符”,键盘
命令mknod,可以生成块设备文件或者字符设备文件,格式为:
mknod -m 0660 /dev/loop2 b 7 2
- 表示创建loop设备,-m设置设备文件的权限,根据major.h文件的定义,loop设备的主设备号是7,此设备号自定义为2。
lsblk 列出块设备 fdisk -l
- fdisk 管理MBR分区 dos 就是MBR
- gdisk 管理GPT分区
识别SSD和机械硬盘类型
#1表示机械,0表示SSD
[root@centos8 ~]#lsblk -d -o name,rota
NAME ROTA
sda 1
sr0 1
nvme0n1 0
nvme0n2 0
parted 高级分区操作,可以是交互或非交互方式
备份MBR的分区表,并破坏后恢复
备份字节
dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446
名字 备份文件名 字节 64位 跳过源的前446字节查看
hexdump -C /data/dpt.img 查看备份字节比对
hexdump -C -n 512 /dev/sda
scp /data/dpt.img 10.0.0.105: 转移备份字节,方便破坏破坏字节
dd if=/dev/zero of=dev/sda bs=1 count=64 seek=446 名字 备份名 字节 64位 跳过目标的446
hexdump -C -n 512 /dev/sda 查看都是0
#无法启动
[root@centos8 ~]#reboot重启按esc,进入CD光盘模式 Troubleshoot ing 救援模式Rescue a CentOS system
添加IP号 ping一下 把之前穿的文件拉过来
恢复MBR分区表
#dd if=dpt.img of=/dev/sda bs=1 seek=446
#reboot
增加新硬盘,让内核发现
[root@CentOS tsetdir]# echo '- - -' > /sys/class/scsi_host/host
host0/ host1/ host2/
echo '- - -' > /sys/class/scsi_host/host2|0|1/scan 零或者1,2
[root@CentOS tsetdir]#cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 204800 sda1
8 2 16570368 sda2
8 3 2097152 sda3
8 4 1 sda4
8 5 2096128 sda5
11 0 1048575 sr0
mkpart (创建分区)primary(翻译:主)
root@rocky86-1 ~]# parted /dev/sdb print 查看是否分区
[root@rocky86-1 ~]# parted /dev/sdb mklabel msdos 将其分区为mbr
[root@rocky86-1 ~]# parted /dev/sdb mkpart primary 301 500 分区多少
[root@rocky86-1 ~]# parted /dev/sdb print 查看分区
[root@rocky86-1 ~]# parted /dev/sdb rm 1 删除分区后面跟位数
管理分区
- fdisk 管理MBR分区 这两个都是可以互相管的,属于主业副业, fdisk centos8之前不建议管理GPT分区
- gdisk 管理GPT分区
- parted 高级分区操作,两个都可以管 可以是交互或非交互方式
创建分区不同步的境况
适用于加分区
- [root@CentOS ~]#partprobe 执行回车就行 centos6不行,别的都可以 特殊
- [root@CentOS ~]#partx -a /dev/sda
删除分区
- partx -d --nr 6-8 /dev/sda
- fdisk -l /dev/sdb (可以产看分区)
parted 命令
注意:parted的操作都是实时生效的,小心使用
parted /dev/sdb mklabel gpt|msdos
[root@CentOS ~]#hexdump -C -n 512 /dev/sdb
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
[root@CentOS ~]#parted /dev/sdb mklabel msdos
信息: You may need to update /etc/fstab.
[root@CentOS ~]#hexdump -C -n 512 /dev/sdb
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |................|
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 00 00 00 00 00 |................|
*
000001b0 00 00 00 00 00 00 00 00 85 ae 00 00 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@CentOS ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
修改不可逆 创建
[root@CentOS ~]#parted /dev/sdb mklabel gpt
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will
be lost. Do you want to continue?
是/Yes/否/No? y
信息: You may need to update /etc/fstab.
[root@CentOS ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
创建分区
[root@CentOS ~]#parted /dev/sdb mkpart primary 1 200
信息: You may need to update /etc/fstab.
[root@CentOS ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 200MB 199MB primary
删除分区
[root@CentOS ~]#parted /dev/sdb print 查看
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
[root@CentOS ~]# hexdump -C -n 512 /dev/sdb
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001c0 02 00 ee fe ff ff 01 00 00 00 ff ff 7f 02 00 00 |................|
000001d0 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@CentOS ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=64 seek=446 删除内容 最后 55 aa 是分区类型
记录了64+0 的读入
记录了64+0 的写出
64字节(64 B)已复制,0.00108384 秒,59.0 kB/秒
[root@CentOS ~]# hexdump -C -n 512 /dev/sdb
00000000 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@CentOS ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=2 seek=510 删除类型
记录了2+0 的读入
记录了2+0 的写出
2字节(2 B)已复制,0.000585178 秒,3.4 kB/秒
[root@CentOS ~]#parted /dev/sdb print 查看
错误: /dev/sdb: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
[root@CentOS ~]# hexdump -C -n 512 /dev/sdb
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
分区(fdisk)用法 gdisk 也一样
fdisk /dev/sdb(进如操作页面) gdisk 也一样(风险大自动转换为gpt)
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位
w 保存并退出
q 不保存并退出
创建分区
用 fdisk 对这块硬盘分区(当硬盘小于等于2T时,用fdisk,大于2T时,用parted)
fdisk /dev/sdb
按 m 显示菜单(menu):
选择 n (add a new partition,创建新分区)
我们是第一次建立,没有主分区,所以选择p建立主分区
接下来会让你选择分区号,因为主分区只有4个分区,我们选择默认1
后面是开始扇区和结束扇区,开始扇区默认即可,结束扇区输入+分区大小
此时第一个分区已经建立,但还是在内存中并没有写到硬盘sdb中,所以直接输入w
[root@rocky86-1 ~]# cat /proc/partitions 查看内核是否已经识别新的分区
文件系统类型
- ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件 (16TB)、最大1EB的文件系统,以及速度的提升
- xfs:SGI,支持最大8EB的文件系统
创建文件系统
[root@CentOS ~]# lsblk -f 查看文件 是否有裸设备 有需要创建文件系统
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 e999e075-b6d4-49f7-9c3f-dcbba6300e7d /boot
├─sda2 ext4 b9764f6e-e5c2-4484-98e0-6defc3a2cf4d /
├─sda3 ext4 4fa07166-83a2-48b4-8ae3-447dde1e47d6 /home
├─sda4
└─sda5 swap 44a5c850-024f-4dd5-8aa7-90418b23318e [SWAP]
[root@rocky86-1 ~]# mkfs.ext4 /dev/sdb1 创建文件系统 如果里面不干净可以加个 -f 强行创建
[root@rocky86-1 ~]# blkid /dev/sdb1 产看是否创建成功
/dev/sdb1: UUID="0825e3d1-fe45-4533-88b0-b9cb37c04688" BLOCK_SIZE="1024" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="5adf7514-7288-4d46-a9e5-ba065cd11461" BLOCK_SIZE=" 块字节 最少一块
[root@CentOS ~]#du -s /data/ 查看你多少k 以k为单位 有低保再笑也是独占4K
136700 /data/
mkfs.ext4 -d 1K 指定低保多少
CentOS 7,8 同步分区表: partprob
CentOS6 通知内核重新读取硬盘分区表
新增分区用
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
#示例:
[root@centos6 ~]#partx -a /dev/sda
删除分区用
partx -d --nr M-N /dev/DEVICE
#示例:
[root@centos6 ~]#partx -d --nr 6-8 /dev/sda
echo -e 'n\np\n\n\n+2G\nw\n' | fdisk /dev/sdc
#增加了6,7分区
[root@centos6 ~]#fdisk /dev/sda
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
[root@rocky86-1 ~]# tune2fs -l /dev/sdb1 查看文件的相关属性
文件系统检测和修复
文件系统夹故障常发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”
注意:一定不要在挂载状态下执行下面命令修复
fsck: File System Check
注意:FS_TYPE 一定要与分区上已经文件类型相同
fsck.FS_TYPE
fsck -t FS_TYPE
mkfs.ext4 -b 1024 xxx (可以指定块大小)
常用选项:
范例:修改破坏的ext文件系统
-a 自动修复
-r 交互式修复错误
e2fsck:ext系列文件专用的检测修复工具
-y 自动回答为yes
-f 强制修复
-p 自动进行安全的修复文件系统问
xfs_repair:xfs文件系统专用检测修复工具
-f 修复文件,而设备
-n 只检查
-d 允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot
实例 他只能修复文件系统的元数据而已,就是超级块,数据破坏了也没招,修复后能不能找回全看运气
[root@CentOS ~]#df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 920912 0 920912 0% /dev
tmpfs 931496 0 931496 0% /dev/shm
tmpfs 931496 9784 921712 2% /run
tmpfs 931496 0 931496 0% /sys/fs/cgroup
/dev/sda2 16179068 8783288 6550880 58% /
/dev/sda3 1998672 6568 1870864 1% /home
/dev/sda1 194235 190139 0 100% /boot
tmpfs 186300 0 186300 0% /run/user/0
[root@CentOS ~]#dd if=/dev/zero of=/dev/sda3 bs=1M count=1 破坏
记录了1+0 的读入
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.00240131 秒,437 MB/秒
[root@CentOS ~]#ls /home 什么都没有
[root@CentOS ~]#cd /home/
[root@CentOS home]#ls
[root@CentOS home]#cd
修复
[root@CentOS ~]#umount /home
[root@CentOS ~]#df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 920912 0 920912 0% /dev
tmpfs 931496 0 931496 0% /dev/shm
tmpfs 931496 9784 921712 2% /run
tmpfs 931496 0 931496 0% /sys/fs/cgroup
/dev/sda2 16179068 8783288 6550880 58% /
/dev/sda1 194235 190139 0 100% /boot
tmpfs 186300 0 186300 0% /run/user/0
[root@CentOS ~]#e2fsck /dev/sda
sda sda1 sda2 sda3 sda4 sda5
[root@CentOS ~]#e2fsck /dev/sda3 直接-y 就可以不用一次次了
e2fsck 1.42.9 (28-Dec-2013)
ext2fs_open2: Bad magic number in super-block
e2fsck: 超级块无效, trying backup blocks...
超级块没有needs_recovery标志,但是日志中没有数据。
Recovery flag not set in backup 超级块, so running 日志 anyway.
/dev/sda3: 正在修复日志
Resize inode not valid. 重建<y>? 是
[root@CentOS ~]#tune2fs -l /dev/sda3
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 4fa07166-83a2-48b4-8ae3-447dde1e47d6
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 131072
Block count: 524288
Reserved block count: 26214
Free blocks: 498026
Free inodes: 130998
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 255
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu May 25 11:14:58 2023
Last mount time: n/a
Last write time: Mon Oct 16 10:18:03 2023
Mount count: 0
Maximum mount count: -1
Last checked: Mon Oct 16 10:18:03 2023
Check interval: 0 (<none>)
Lifetime writes: 66 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 413c5bd6-69a3-434e-af56-11fc177c1ac5
Journal backup: inode blocks
[root@CentOS ~]#mount /dev/sda
sda sda1 sda2 sda3 sda4 sda5
[root@CentOS ~]#mount /dev/sda3 /home/
[root@CentOS ~]#df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 920912 0 920912 0% /dev
tmpfs 931496 0 931496 0% /dev/shm
tmpfs 931496 9784 921712 2% /run
tmpfs 931496 0 931496 0% /sys/fs/cgroup
/dev/sda2 16179068 8783288 6550880 58% /
/dev/sda1 194235 190139 0 100% /boot
tmpfs 186300 0 186300 0% /run/user/0
/dev/sda3 1998672 6568 1870864 1% /home
事故挂在3
[root@rocky86-1 ~]# blkid (查看uid)
[root@rocky86-1 ~]# mount /dev/sdc1 /mnt (文件挂在)临时挂在
挂在可以叠加,但是只显示最先的,文件可以同时挂在多个地方 挂在用UUID也可以建议用uid
如果有人正在使用的话没法取消挂在
[root@rocky86-1 ~]# umount /mnt (取消挂载)
du /SS/SS(可以查看文件夹大小) -s (可以查看文件夹总大小)
df (查看文件系统大小包括元数据)只能查看处于关在状态下的文件系统大小
[root@rocky86-1 ~]# fuser -v data/mysql/ 可以查看谁在访问挂载
[root@rocky86-1 ~]# ps aux 可以查看进程
[root@rocky86-1 ~]# fuser -km /xxx/xxx (把谁提出终端)
vim /etc/fstab 永久挂在 mount -a 重新加载
如果uid写错可能影响机器起不来,可以在页面注释掉错的,再起来
swap 分区 当内存不足时,可以用硬盘来模拟内存
none 禁用这行 就可以不用硬盘来做模拟内存
需要先进入 vim /etc/fstab 需要注销掉none这行 重启后才能生效,或者进入swapoff /dev/dm-1就禁用了了 在swapon -s 里面提取的/dev/dm-1 (partition)
增加内存 斯奥破文件
[root@rocky86-1 ~]# blkid 查看设配
[root@rocky86-1 ~]# fdisk /dev/sdc 首先进入到设置页面,创建分区,更改分区类型为Linux swap 然后w保存退出 blkid 查看uid是否更改分区成功,然后复制uid到[root@rocky86-1 ~]# vim /etc/fstab 下除了uid不同 其余的都和none一样
[root@rocky86-1 ~]# swapon -s 查看是否加载成功 swapon -a 重新加载一下
创建文件系统 以文件的格式来增加内存
[root@rocky86-1 ~]# dd if=/dev//zero of=/swapfile bs=1M count=1024 创建文件
[root@rocky86-1 ~]# mkswap /swapfile 创建文件系统
[root@rocky86-1 ~]# chmod 600 /swapfile 修改权限[root@rocky86-1 ~]# vim /etc/fstab 进入加上 、swapfile 复制上面none的权限
[root@rocky86-1 ~]# swapon -a 重新加载权限
[root@rocky86-1 ~]# swapon -s 显示分区
逻辑卷
相关工具来自于 lvm2 包
yum -y install lvm2
物理卷---PV(Physical Volume):
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘;它是LVM的基本存储逻辑块,但和基本的物理分区相比,逻辑卷包含LVM相关的管理参数。
卷组--------VG(Volumne Group):
它可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
逻辑卷-----LV(Logical Volume):
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
物理区域--PE(Physical Extent):
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
1增加硬盘 2加载硬盘3给硬盘分区8e
硬盘分区8e
[root@CentOS home]#echo '- - -' > /sys/class/scsi_host/host2/scan
[root@CentOS home]#echo '- - -' > /sys/class/scsi_host/host1/scan
[root@CentOS home]#echo '- - -' > /sys/class/scsi_host/host0/scan
[root@CentOS home]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 15.8G 0 part /
├─sda3 8:3 0 2G 0 part /home
├─sda4 8:4 0 512B 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom
[root@CentOS home]# fdisk /dev/sdc
(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd964eae0
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+500M
分区 1 已设置为 Linux 类型,大小设为 500 MiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd964eae0
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 83 Linux
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / 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 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 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 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd964eae0
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 1026047 512000 8e Linux LVM
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@CentOS home]#hexdump -C /dev/sdc -n 512 8e
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001b0 00 00 00 00 00 00 00 00 e0 ea 64 d9 00 00 00 20 |..........d.... |
000001c0 21 00 8e dd 1e 3f 00 08 00 00 00 a0 0f 00 00 00 |!....?..........|
000001d0 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@rocky86-1 ~]# pvs 查看物理卷 什么没有就什么不显示
[root@CentOS home]#pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 --- 20.00g 20.00g /dev/sdc1 lvm2 --- 500.00m 500.00m
[root@rocky86-1 ~]# pvdislay 详细查看物理卷
[root@rocky86-1 ~]# pvcreate /dev/sd{d1,e} 创建物理卷root@CentOS home]#pvcreate /dev/sdb /dev/sdc1 Device /devsdc1 not found. WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y Wiping dos signature on /dev/sdb. Physical volume "/dev/sdb" successfully created.
[root@rocky86-1 ~]# vgcreate -s 16M testvg0 /dev/sdd1 /dev/sde
vgcreate创建卷组、 -s 指定PE将来空间以及容量扩容的最小单位 默认4M
[root@CentOS home]#vgcreate vg_mysql /dev/sdb /dev/sdc1 Volume group "vg_mysql" successfully created [root@CentOS home]#vgs VG #PV #LV #SN Attr VSize VFree vg_mysql 2 0 0 wz--n- 20.48g 20.48g
[root@rocky86-1 ~]# vgdisplay 查看卷组 详细
lvcreate -L 6G -n lv-mysql testvg0
lvcreate创建逻辑卷分区 -L6(指定大小) -n(起名) 逻辑卷名
[root@CentOS home]# lvcreate -n lv_data -L 600M vg_mysql Logical volume "lv_data" created. [root@CentOS home]#ll /dev/vg_mysql/lv_data lrwxrwxrwx 1 root root 7 10月 16 11:40 /dev/vg_mysql/lv_data -> ../dm-0 都是链接,
[root@rocky86-1 ~]# mkfs.ext4 /dev/testvg0/lv-mysql (创建文件系统)
mkfs.ext4(格式化成ext4)
[root@rocky86-1 ~]# blkid (查看uid)
[root@CentOS home]#mkfs.ext4 /dev/vg_mysql/lv_data mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 38400 inodes, 153600 blocks 7680 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=157286400 5 block groups 32768 blocks per group, 32768 fragments per group 7680 inodes per group Superblock backups stored on blocks: 32768, 98304 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@CentOS home]#blkid /dev/sda1: UUID="e999e075-b6d4-49f7-9c3f-dcbba6300e7d" TYPE="ext4" /dev/sda2: UUID="b9764f6e-e5c2-4484-98e0-6defc3a2cf4d" TYPE="ext4" /dev/sda3: UUID="4fa07166-83a2-48b4-8ae3-447dde1e47d6" TYPE="ext4" /dev/sda5: UUID="44a5c850-024f-4dd5-8aa7-90418b23318e" TYPE="swap" /dev/sr0: UUID="2022-07-26-15-09-17-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/sdb: UUID="yTRZv1-sUkf-a6Io-c2Rl-SZfT-y2Ev-6CJdd6" TYPE="LVM2_member" /dev/sdc1: UUID="C9JIhH-3SmQ-1sn3-1BO7-40da-LBe2-ap09vz" TYPE="LVM2_member" /dev/mapper/vg_mysql-lv_data: UUID="978eb73e-f83a-415d-a856-3a05dad46cc0" TYPE="ext4"
[root@rocky86-1 ~]# vim /etc/fstab (写入永久) mount -a 加载
[root@CentOS home]#mkdir /mysql/data -p [root@CentOS home]#vim /etc/fstab UUID="978eb73e-f83a-415d-a856-3a05dad46cc0" /mysql/data ext4 defaults 0 0 mount -a 加载 [root@CentOS home]#df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 920912 0 920912 0% /dev tmpfs 931496 0 931496 0% /dev/shm tmpfs 931496 9780 921716 2% /run tmpfs 931496 0 931496 0% /sys/fs/cgroup /dev/sda2 16179068 8792620 6541548 58% / /dev/sda1 194235 190139 0 100% /boot tmpfs 186300 0 186300 0% /run/user/0 /dev/sda3 1998672 6568 1870864 1% /home /dev/mapper/vg_mysql-lv_data 588352 912 544432 1% /mysql/data
[root@rocky86-1 ~]# lvextend -l +100%free /dev/testvg0/lv-mysql(扩展逻辑卷就是有空间了)
#针对ext
resize2fs /dev/VG_NAME/LV_NAME
#针对xfs
xfs_growfs 挂载点[root@rocky86-1 ~]# resize2fs /dev/testvg0/lv-mysql
[root@CentOS home]#vgdisplay 扩展之前 --- Volume group --- VG Name vg_mysql System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 20.48 GiB PE Size 4.00 MiB Total PE 5243 Alloc PE / Size 150 / 600.00 MiB Free PE / Size 5093 / 19.89 GiB #剩余空间 VG UUID I87xUD-Je5e-vore-kmzt-WgQQ-3vdY-eQLLk8 [root@CentOS home]#lvextend -l +100%free /dev/mapper/vg_mysql-lv_data 扩展全部 Size of logical volume vg_mysql/lv_data changed from 600.00 MiB (150 extents) to 20.48 GiB (5243 extents). Logical volume vg_mysql/lv_data successfully resized. [root@CentOS home]#df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 900M 0 900M 0% /dev tmpfs 910M 0 910M 0% /dev/shm tmpfs 910M 9.6M 901M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda2 16G 8.4G 6.3G 58% / /dev/sda1 190M 186M 0 100% /boot tmpfs 182M 0 182M 0% /run/user/0 /dev/sda3 2.0G 6.5M 1.8G 1% /home /dev/mapper/vg_mysql-lv_data 575M 912K 532M 1% /mysql/data 内存没有变化 需要同步 [root@CentOS home]#vgdisplay --- Volume group --- VG Name vg_mysql System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 20.48 GiB PE Size 4.00 MiB Total PE 5243 Alloc PE / Size 5243 / 20.48 GiB Free PE / Size 0 / 0 已经清空 VG UUID I87xUD-Je5e-vore-kmzt-WgQQ-3vdY-eQLLk8 [root@CentOS home]# resize2fs /dev/vg_mysql/lv_data exit4 同步命令 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/vg_mysql/lv_data is mounted on /mysql/data; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 3 The filesystem on /dev/vg_mysql/lv_data is now 5368832 blocks long. [root@CentOS home]#df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 900M 0 900M 0% /dev tmpfs 910M 0 910M 0% /dev/shm tmpfs 910M 9.6M 901M 2% /run tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda2 16G 8.4G 6.3G 58% / /dev/sda1 190M 186M 0 100% /boot tmpfs 182M 0 182M 0% /run/user/0 /dev/sda3 2.0G 6.5M 1.8G 1% /home /dev/mapper/vg_mysql-lv_data 21G 3.2M 20G 1% /mysql/data
(扩展文件系统 有空间了给文件系统)不同的文件系统用不同命令 xfs_growfs
lvextend -r -l +100%free /dev/testvg0/lv-mysql # 多个 r 扩展文件空间又扩展文件系统
Hex 代码(输入 L 列出所有代码):8e 已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):p 磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xd964eae0 设备 Boot Start End Blocks Id System /dev/sdc1 2048 1026047 512000 8e Linux LVM /dev/sdc2 1026048 41943039 20458496 8e Linux LVM
[root@CentOS home]#partx -a /dev/sdc 新加不同步, partx: /dev/sdc: error adding partition 1 [root@CentOS home]#lsblk 查看 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 15.8G 0 part / ├─sda3 8:3 0 2G 0 part /home ├─sda4 8:4 0 512B 0 part └─sda5 8:5 0 2G 0 part [SWAP] sdb 8:16 0 20G 0 disk └─vg_mysql-lv_data 253:0 0 20.5G 0 lvm /mysql/data sdc 8:32 0 20G 0 disk ├─sdc1 8:33 0 500M 0 part │ └─vg_mysql-lv_data 253:0 0 20.5G 0 lvm /mysql/data └─sdc2 8:34 0 19.5G 0 part sr0 11:0 1 4.4G 0 rom [root@CentOS home]#pvcreate /dev/sdc2 #创建物理卷 Physical volume "/dev/sdc2" successfully created. [root@CentOS home]#pvs 查看 PV VG Fmt Attr PSize PFree /dev/sdb vg_mysql lvm2 a-- <20.00g 0 /dev/sdc1 vg_mysql lvm2 a-- 496.00m 0 /dev/sdc2 lvm2 --- 19.51g 19.51g [root@CentOS home]#vgextend vg_mysql /dev/sdc2 添加到逻辑卷 Volume group "vg_mysql" successfully extended [root@CentOS home]#pvs PV VG Fmt Attr PSize PFree /dev/sdb vg_mysql lvm2 a-- <20.00g 0 /dev/sdc1 vg_mysql lvm2 a-- 496.00m 0 /dev/sdc2 vg_mysql lvm2 a-- <19.51g <19.51g [root@CentOS home]#lvextend -r -L +1G /dev/vg_mysql/lv_data 扩展分区 Size of logical volume vg_mysql/lv_data changed from 20.48 GiB (5243 extents) to 21.48 GiB (5499 extents). Logical volume vg_mysql/lv_data successfully resized. resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mapper/vg_mysql-lv_data is mounted on /mysql/data; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 3 The filesystem on /dev/mapper/vg_mysql-lv_data is now 5630976 blocks long. [root@CentOS home]#lvdisplay 查看 --- Logical volume --- LV Path /dev/vg_mysql/lv_data LV Name lv_data VG Name vg_mysql LV UUID QvQPc3-MQeK-zUOB-XReI-IrbQ-DOGr-IUea1j LV Write Access read/write LV Creation host, time CentOS, 2023-10-16 11:40:54 +0800 LV Status available # open 1 LV Size 21.48 GiB Current LE 5499 Segments 3 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0
缩减逻辑卷
缩减逻辑卷 (缩减前建议备份)缩减很容易文件丢失 xfs(不支持缩减)
[root@rocky86-1 ~]# umount data/mysql (取消挂载)
e2fsck data/mysql #检查
[root@rocky86-1 ~]# lvreduce -L 8G -r /dev/testvg0/lv-mysql (缩减8G)仅支持ext
[root@rocky86-1 ~]# mount /dev/testvg0/lv-mysql data/mysql/ (重新挂在)
增加逻辑卷
1分区fdisk /dev/sdd t(更改分区类型8e)
2变成物理卷 pvcreate /dev/sdd
3家卷组 vgextend rl /dev/sdd
4连扩容在扩展文件系统 lvestend -r -L +10G /dev/mapper/rl-root
拆除硬盘
1添加硬盘[root@rocky86-1 ~]# pvcreate /dev/sdf
2加入到同一个卷组里[root@rocky86-1 ~]# vgextend testvg0 /dev/sdf
3把不要的一硬盘挪移到别的空间里[root@rocky86-1 ~]# pvmove /dev/sde
4把他从卷组中移走[root@rocky86-1 ~]# vgreduce testvg0 /dev/sde
5把硬盘从物理卷删掉[root@rocky86-1 ~]# pvremove /dev/sde
创建快照
- 快照特点:
- 备份速度快,瞬间完
- 应用场景是测试环境,不能完成代替备份
- 快照后,逻辑卷的修改速度会一定有影响
[root@rocky86-1 ~]# lvcreate -n lv-mysql-snapshot -s -p r -L 1G /dev/testvg0/lv-mysql lvcreate 创建快照(也是逻辑卷) -n lv-mysql-snapshot 快照名 s(快照的意思)
-p r (只读防止修改) -L 1G(容量) /dev/testvg0/lv-mysql(谁的快照)
root@rocky86-1 data]# lvdisplay(可以查看快照信息)
[root@rocky86-1 mysql]# mount /dev/testvg0/lv-mysql-snapshot /mnt (快照绑定目录)
回复快照
1先取消所有挂载 [root@rocky86-1 ~]# umount /mnt
[root@rocky86-1 ~]# umount /data/mysql
2回复快照 [root@rocky86-1 mysql]# lvconvert --merg /dev/testvg0/lv-mysql-snapshot
挂载注意事项
挂载快照,xfs注意要使用-o ro实现只读,防止快照被修改
mkdir -p /mnt/snap
mount -o ro,nouuid /dev/vg0/data-snapshot /mnt/snap为现有逻辑卷创建快照,注意ext4建议使用-p r 实现只读
lvcreate -l 64 -s -n data-snapshot /dev/vg0/data
删除快照
1取消挂载[root@rocky86-1 mysql]# umount /data/mysql
查看逻辑卷[root@rocky86-1 mysql]# lvs
2删除逻辑卷[root@rocky86-1 mysql]# lvremove /dev/testvg0/lv-mysql
查看卷组[root@rocky86-1 mysql]# vgs
3删除卷组[root@rocky86-1 ~]# vgremove testvg0
4删除物理卷[root@rocky86-1 ~]# pvremove /dev/sdd1 /dev/sdf 查看物理卷pvs