Linux虚拟机扩容新挂载的磁盘到根目录
2025-08-22 16:03:03,

确认当前根目录容量

[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 ~]# fdisk -l /dev/vdb 
Disk /dev/vdb:1 TiB,1099511627776 字节,2147483648 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
0

逻辑卷(LV)扩展

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

查看文件系统格式

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

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

文件系统扩容

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

最终验证

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