介绍
这里列举了两种方式用于给你的虚拟机 Linux 系统扩展根分区系统,根系统分区一般都是采用 LVM (逻辑卷管理)的方式对磁盘进行管理,你可以依此轻松将多个物理卷加入到虚拟卷组中,划给挂载点目录使用。
此基础上对虚拟机原有硬盘进行了扩容,如从 20G 扩展到 40G 的情况下对根目录大小进行调整,两种方式都可以进行分区扩容,本质差别不大。
新建分区的方式:
可以在原有硬盘基础上新建分区,也可以新增硬盘创建新分区,最终加入到虚拟卷中。
修改分区范围的方式:
在扩容原有硬盘的基础上,删除 linux 分区,并新建分区,保持起始 offset 是一致的就可以达到原分区无感知扩大。
新建分区的方式
这里使用 debian 的系统举例,其根目录挂载分区为:/dev/mapper/debian--vg-root
查看硬盘占用情况
lsblk通过新增的硬盘或者已有的硬盘新建分区
fdisk /dev/sdb
...
得到 /dev/sdb1 分区通过刚刚创建的分区 /dev/sdb1 分区,初始化为物理卷
pvcreate /dev/sdb1选项:
-f:强制创建物理卷,不需要用户确认;
-u:指定设备的 UUID;
-y:所有的问题都回答“yes”;
-Z:是否利用前 4 个扇区。
查看卷组
vgs得到默认卷组名:debian-vg
将刚刚的物理卷加入组中
vgextend debian-vg /dev/sdb1把空闲卷组的容量分配给指定分区
lvextend -l +100%FREE /dev/mapper/debian--vg-rootlvextend 是可以动态调整分区的,-l 是按百分比分配,+表示增加;-L 是安装指定容量分配,+表示增加,-表示减少,不带符号表示将分区调整至指定大小;
另有可选的用法:
lvextend –L +20G /dev/mapper/debian--vg-root #root 分区增加 20G
lvextend –L -2G /dev/mapper/debian--vg-root #root 分区减少 2G
lvextend –L 20G /dev/mapper/debian--vg-root #root 分区设置为 20G
重置大小,使得改变立马生效
resize2fs /dev/mapper/debian--vg-root如果需要将加入的卷移除
vgreduce debian-vg /dev/sdb1若出现卷已经被使用
Physical volume "/dev/sdb1" still in use
则必须先将数据转移到卷之外的卷组其他位置,你可以挂载新的分区卷到卷组中,或者原有卷组中还有空间。
pvremove /dev/sdb1修改分区范围方式
这里使用 centos 举例,根分区挂载的是 /dev/mapper/cl-root
直接删除原本分区,新建分区,起始位置保持一致即可。(不要进行格式化分区数据就不会丢失)
fdisk /dev/sda
删除(d)并重建分区(n) /dev/sda3(这步之后若不行,记得重启才生效)
调整 pv 大小
[root@localhost ~]# pvresize /dev/sda3
  Physical volume "/dev/sda3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize   PFree 
  /dev/sda2  cl lvm2 a--  <19.00g     0 
  /dev/sda3  cl lvm2 a--  <40.00g 20.00g
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   60G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
├─sda2        8:2    0   19G  0 part 
│ ├─cl-root 253:0    0   37G  0 lvm  /
│ └─cl-swap 253:1    0    2G  0 lvm  [SWAP]
└─sda3        8:3    0   40G  0 part 
  └─cl-root 253:0    0   37G  0 lvm  /
sdb           8:16   0   40G  0 disk 
└─sdb1        8:17   0   40G  0 part /mnt/hd1
sr0          11:0    1  680M  0 rom  
[root@localhost ~]# lvextend -l +100%FREE /dev/mapper/cl-root
  Size of logical volume cl/root changed from 36.99 GiB (9470 extents) to 56.99 GiB (14590 extents).
  Logical volume cl/root successfully resized.
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   60G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
├─sda2        8:2    0   19G  0 part 
│ ├─cl-root 253:0    0   57G  0 lvm  /
│ └─cl-swap 253:1    0    2G  0 lvm  [SWAP]
└─sda3        8:3    0   40G  0 part 
  └─cl-root 253:0    0   57G  0 lvm  /
sdb           8:16   0   40G  0 disk 
└─sdb1        8:17   0   40G  0 part /mnt/hd1
sr0          11:0    1  680M  0 rom  重载硬盘大小
[root@localhost ~]# resize2fs /dev/mapper/cl-root 
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/cl-root 时
找不到有效的文件系统超级块.
[root@localhost ~]# xfs_growfs /dev/mapper/cl-root
meta-data=/dev/mapper/cl-root    isize=512    agcount=9, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=9567232, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 9567232 to 14940160
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
devtmpfs             1.4G     0  1.4G    0% /dev
tmpfs                1.4G     0  1.4G    0% /dev/shm
tmpfs                1.4G  9.4M  1.4G    1% /run
tmpfs                1.4G     0  1.4G    0% /sys/fs/cgroup
/dev/mapper/cl-root   57G   35G   23G   62% /
/dev/sda1           1014M  223M  792M   22% /boot
/dev/sdb1             40G   11G   28G   28% /mnt/hd1
tmpfs                283M     0  283M    0% /run/user/0参考相关
https://developpaper.com/linux-lvm-logical-volume-management/
https://blog.csdn.net/ichen820/article/details/122105218




Comments