Linux虚拟机扩容新挂载的磁盘到根目录

确认当前根目录容量

[root@jesus ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 151M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/klas-root 483G 12G 471G 3% /
tmpfs 16G 32M 16G 1% /tmp
/dev/vda2 1014M 153M 862M 16% /boot
/dev/vda1 599M 6.5M 593M 2% /boot/efi
tmpfs 3.1G 0 3.1G 0% /run/user/0

为新挂载的盘创建分区

1、新盘≤2TB可使用fdisk命令创建分区

[root@jesus ~]# fdisk -l /dev/vdb 
Disk /dev/vdb:1 TiB,1099511627776 字节,2147483648 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

使用fdisk命令创建分区

[root@jesus ~]# fdisk /dev/vdb 
欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xf1ff1376 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):m
帮助:
 DOS (MBR)
 a 开关 可启动 标志
 b 编辑嵌套的 BSD 磁盘标签
 c 开关 dos 兼容性标志
 常规
 d 删除分区
 F 列出未分区的空闲区
 l 列出已知分区类型
 n 添加新分区
 p 打印分区表
 t 更改分区类型
 v 检查分区表
 i 打印某个分区的相关信息
 杂项
 m 打印此菜单
 u 更改 显示/记录 单位
 x 更多功能(仅限专业人员)
 脚本
 I 从 sfdisk 脚本文件加载磁盘布局
 O 将磁盘布局转储为 sfdisk 脚本文件
 保存并退出
 w 将分区表写入磁盘并退出
 q 退出而不保存更改
 新建空磁盘标签
 g 新建一份 GPT 分区表
 G 新建一份空 GPT (IRIX) 分区表
 o 新建一份的空 DOS 分区表
 s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):n
分区类型
 p 主分区 (0 primary, 0 extended, 4 free)
 e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1): 1
第一个扇区 (2048-2147483647, 默认 2048): 
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-2147483647, 默认 2147483647): 
创建了一个新分区 1,类型为“Linux”,大小为 1024 GiB。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@jesus ~]# fdisk -l /dev/vdb 
Disk /dev/vdb:1 TiB,1099511627776 字节,2147483648 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf1ff1376
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/vdb1 2048 2147483647 2147481600 1024G 83 Linux

2、fdisk 新盘>2TB使用parted命令创建分区

[root@jesus ~]# fdisk -l /dev/vdb
Disk /dev/vdb:3 TiB,3298534883328 字节,6442450944 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

使用parted命令创建分区

[root@jesus ~]# parted /dev/vdb
GNU Parted 3.3
使用 /dev/vdb
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) help 
 align-check TYPE N check partition N for TYPE(min|opt) alignment
 help [COMMAND] 打印通用求助信息,或 COMMAND 的帮助
 mklabel,mktable LABEL-TYPE 创建新的磁盘卷标 (分区表)
 mkpart 分区类型 [文件系统类型] 起始点 结束点 创建一个分区
 name 编号 名称 将指定“编号”的分区命名为“名称”
 print [devices|free|list,all|数字] 显示分区表、可用设备、剩余空间、所有分区或特殊分区
 quit 退出程序
 rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
 resizepart NUMBER END 改变 NUMBER 的大小
 rm NUMBER 删除编号为 NUMBER 的分区
 select 设备 选择要编辑的设备
 disk_set 旗标 状态 变更已选设备上的旗标
 disk_toggle [旗标] 切换已选设备上的旗标状态
 set 编号 旗标 状态 改变指定“编号”分区的旗标
 toggle [编号 [旗标]] 切换“编号”分区上的“旗标”状态
 unit 单位 设置缺省的“单位”
 version 显示目前 GNU Parted 的版本与版权信息
(parted) p 
错误: /dev/vdb: 无法辨识的磁盘卷标
型号:Virtio 块设备 (virtblk) 
磁盘 /dev/vdb:3299GB
扇区大小 (逻辑/物理):512B/512B
分区表:unknown
磁盘标志:
(parted) mklabel gpt 
(parted) mkpart 
分区名称? []? vdb1 
文件系统类型? [ext2]? ext4 
起始点? 0 
结束点? 3299GB 
警告: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
忽略/Ignore/放弃/Cancel? Ignore 
(parted) p 
型号:Virtio 块设备 (virtblk)
磁盘 /dev/vdb:3299GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
 1 17.4kB 3299GB 3299GB ext4 vdb1
(parted) quit 
信息: 你可能需要 /etc/fstab。
[root@jesus ~]# fdisk -l /dev/vdb
Disk /dev/vdb:3 TiB,3298534883328 字节,6442450944 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:AA6037F0-3F9E-440D-95AE-D927D38B06A5
设备 起点 末尾 扇区 大小 类型
/dev/vdb1 34 6442450910 6442450877 3T Linux 文件系统

强制内核重读分区表

[root@jesus ~]# partprobe 

将分区格式化为ext4格式

[root@jesus ~]# mkfs.ext4 /dev/vdb1
mke2fs 1.45.6 (20-Mar-2020)
丢弃设备块: 完成 
创建含有 805306352 个块(每块 4k)和 201326592 个inode的文件系统
文件系统UUID:f7fbdcf1-2e46-4d7e-93ef-2129f2eb2591
超级块的备份存储于下列块: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000, 550731776, 644972544
正在分配组表: 完成 
正在写入inode表: 完成 
创建日志(262144 个块)完成
写入超级块和文件系统账户统计信息: 已完成 

查看卷组名

可以看到卷组名为klas

[root@jesus ~]# vgdisplay 
 --- Volume group ---
 VG Name klas
 System ID 
 Format lvm2
 Metadata Areas 1
 Metadata Sequence No 3
 VG Access read/write
 VG Status resizable
 MAX LV 0
 Cur LV 2
 Open LV 1
 Max PV 0
 Cur PV 1
 Act PV 1
 VG Size 498.41 GiB
 PE Size 4.00 MiB
 Total PE 127593
 Alloc PE / Size 127592 / <498.41 GiB
 Free PE / Size 1 / 4.00 MiB
 VG UUID hru1pG-Ndo3-5A5I-2lLn-XJaJ-kXet-lBy6Te

物理卷(PV)创建

[root@jesus ~]# pvcreate /dev/vdb1
WARNING: ext4 signature detected on /dev/vdb1 at offset 1080. Wipe it? [y/n]: y
 Wiping ext4 signature on /dev/vdb1.
 Physical volume "/dev/vdb1" successfully created.

卷组(VG)扩展

[root@jesus ~]# vgextend klas /dev/vdb1 
 Volume group "klas" successfully extended

查看根分区

[root@jesus ~]# lvdisplay 
 --- Logical volume ---
 LV Path /dev/klas/swap
 LV Name swap
 VG Name klas
 LV UUID gIk5bI-gv8L-zzyv-3NS1-7hOY-NLb2-3Tg2ms
 LV Write Access read/write
 LV Creation host, time localhost, 2025-03-01 13:14:09 +0800
 LV Status available
 # open 0
 LV Size 15.92 GiB
 Current LE 4076
 Segments 1
 Allocation inherit
 Read ahead sectors auto
 - currently set to 8192
 Block device 252:1
 
 --- Logical volume ---
 LV Path /dev/klas/root
 LV Name root
 VG Name klas
 LV UUID CsXa7j-GO45-Y9AU-jMj6-Kjif-fod5-zWbCxN
 LV Write Access read/write
 LV Creation host, time localhost, 2025-03-01 13:14:10 +0800
 LV Status available
 # open 1
 LV Size 482.48 GiB
 Current LE 123516
 Segments 1
 Allocation inherit
 Read ahead sectors auto
 - currently set to 8192
 Block device 252:0

逻辑卷(LV)扩展

[root@jesus ~]# lvextend /dev/klas/root /dev/vdb1 
 Size of logical volume klas/root changed from 482.48 GiB (123516 extents) to 3.47 TiB (909947 extents).
 Logical volume klas/root successfully resized.

查看文件系统格式

如果是xfs,使用xfs_growf命令,如果是ext2/ext3/ext4,使用resize2fs命令,可以看到此处是xfs格式

[root@jesus ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Mar 1 05:14:31 2025
#
# 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.
#
/dev/mapper/klas-root / xfs defaults 0 0
UUID=5a5507a0-0266-427e-af25-6e6c3e94a9ee /boot xfs defaults 0 0
UUID=7B28-C2ED /boot/efi vfat umask=0077,shortname=winnt 0 2

文件系统扩容

[root@jesus ~]# xfs_growfs /dev/klas/root 
meta-data=/dev/mapper/klas-root isize=512 agcount=4, agsize=31620096 blks
 = sectsz=512 attr=2, projid32bit=1
 = crc=1 finobt=1, sparse=1, rmapbt=0
 = reflink=1
data = bsize=4096 blocks=126480384, imaxpct=25
 = sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=61758, version=2
 = sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 126480384 to 931785728

最终验证

[root@jesus ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 192K 16G 1% /dev/shm
tmpfs 16G 151M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/klas-root 3.5T 34G 3.5T 1% /
tmpfs 16G 32M 16G 1% /tmp
/dev/vda2 1014M 153M 862M 16% /boot
/dev/vda1 599M 6.5M 593M 2% /boot/efi
tmpfs 3.1G 0 3.1G 0% /run/user/0
作者:dashery原文地址:https://www.cnblogs.com/ydswin/p/18765651

%s 个评论

要回复文章请先登录注册