前情提要

家里的PVE主机硬盘容量太小了,已经不够使用了,并且是SATA硬盘,没办法把SATA控制器直通到虚拟机中。因此,买了一个PCIE 1x转M2的转接器,然后再买了一个M2硬盘。现在需要迁移系统,把系统从旧硬盘迁移到新硬盘上。

注意事项

  • 在执行以下操作前,请务必备份数据。

  • 检查并确认每个步骤无误后,再执行下一步操作。

步骤

硬盘克隆

克隆这一步比较简单,安装好新的硬盘后,找一个U盘安装PE系统,下载傲梅分区助手。随后启动PE系统后使用傲梅分区助手克隆硬盘即可。

检查

克隆完硬盘后,拆下旧硬盘尝试启动一下系统

扩容分区

扩容完硬盘后,接下来需要扩容其中的分区,不然PVE系统还是用不到新硬盘中多出来的空间

确认现有分区和大小

首先先检查一下目前的硬盘空间

使用lsblk命令查看分区布局

(base) root@nest-pve:~# lsblk
NAME                                              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
nvme0n1                                           259:0    0 465.8G  0 disk  
├─nvme0n1p1                                       259:1    0  1007K  0 part  
├─nvme0n1p2                                       259:2    0  1024M  0 part  /boot/efi
└─nvme0n1p3                                       259:3    0 237.5G  0 part  
  ├─pve-swap                                      252:0    0     8G  0 lvm   [SWAP]
  └─pve-root                                      252:1    0 229.5G  0 lvm   /

使用fdisk -l查看详细信息

(base) root@nest-pve:~# fdisk -l
Disk /dev/nvme0n1: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ZHITAI Ti600 500GB                      
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: gpt
Disk identifier: 0B171156-5858-9090-8081-828310111213

Device           Start       End   Sectors   Size Type
/dev/nvme0n1p1      34      2047      2014  1007K BIOS boot
/dev/nvme0n1p2    2048   2099191   2097144  1024M EFI System
/dev/nvme0n1p3 2099200 500118158 498018959 237.5G Linux LVM


Disk /dev/mapper/pve-swap: 8 GiB, 8589934592 bytes, 16777216 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


Disk /dev/mapper/pve-root: 229.47 GiB, 246394388480 bytes, 481239040 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

调整分区大小

接下来需要扩展/dev/nvme0n1p3分区到硬盘剩余的空间

启动parted工具进行调整

parted /dev/nvme0n1

在parted下调整分区

resizepart 3 100%

最后退出parted工具

quit

如下

(base) root@nest-pve:~# parted /dev/nvme0n1
GNU Parted 3.5
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart 3 100%
(parted) quit                                                             
Information: You may need to update /etc/fstab.

刷新分区表并调整PV大小

刷新分区表

partprobe /dev/nvme0n1

扩容物理卷(PV)

pvresize /dev/nvme0n1p3

如下

(base) root@nest-pve:~# partprobe /dev/nvme0n1
(base) root@nest-pve:~# pvresize /dev/nvme0n1p3 
  Physical volume "/dev/nvme0n1p3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
(base) root@nest-pve:~# vgs
  VG                                        #PV #LV #SN Attr   VSize    VFree   
  pve                                         1   2   0 wz--n- <464.76g <227.29g

现在PV已经成功调整,现在VGpve 显示总大小约为464.76G,并且有约227.29G的空闲空间。接下来我们将扩展LVroot

扩展LV

查看现有LV

lvs

扩展LV

lvextend -rl +100%FREE /dev/pve/root

如下

(base) root@nest-pve:~# lvs
  LV   VG                                        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root pve                                       -wi-ao---- 229.47g                                                    
  swap pve                                       -wi-ao----   8.00g                                                    
(base) root@nest-pve:~# lvextend -rl +100%FREE /dev/pve/root
  Size of logical volume pve/root changed from 229.47 GiB (58745 extents) to <456.76 GiB (116930 extents).
  Logical volume pve/root successfully resized.
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
old_desc_blocks = 29, new_desc_blocks = 58
The filesystem on /dev/mapper/pve-root is now 119736320 (4k) blocks long.

现在,已经完成了所有扩容的步骤

最后确认

确认文件系统已经扩展

df -h

查看逻辑卷信息

lvs

查看物理卷信息

pvs

查看卷组信息

vgs

如下

(base) root@nest-pve:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
udev                  7.8G     0  7.8G   0% /dev
tmpfs                 1.6G  1.3M  1.6G   1% /run
/dev/mapper/pve-root  450G   89G  342G  21% /
tmpfs                 7.8G   37M  7.8G   1% /dev/shm
tmpfs                 5.0M     0  5.0M   0% /run/lock
efivarfs              192K   60K  128K  32% /sys/firmware/efi/efivars
/dev/nvme0n1p2       1022M   12M 1011M   2% /boot/efi
/dev/fuse             128M   20K  128M   1% /etc/pve
tmpfs                 1.6G     0  1.6G   0% /run/user/0
(base) root@nest-pve:~# lvs
  LV   VG                                        Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root pve                                       -wi-ao---- <456.76g                                                    
  swap pve                                       -wi-ao----    8.00g                                                                                                 
(base) root@nest-pve:~# pvs
  PV             VG                                        Fmt  Attr PSize    PFree
  /dev/nvme0n1p3 pve                                       lvm2 a--  <464.76g    0 
(base) root@nest-pve:~# vgs
  VG                                        #PV #LV #SN Attr   VSize    VFree
  pve                                         1   2   0 wz--n- <464.76g    0 

最后

经过以上步骤,我们成功的将 256G 的系统盘扩容到 500G,并正确调整了 LVM 分区及文件系统。