Zhe's Vision

Hi, nice to meet you.

PVE系统硬盘迁移并扩容文件系统,LVM分区记录

Zhe_Learn's Avatar 2024-11-06

  1. 1. 前情提要
  2. 2. 注意事项
  3. 3. 步骤
    1. 3.1. 硬盘克隆
    2. 3.2. 检查
    3. 3.3. 扩容分区
      1. 3.3.1. 确认现有分区和大小
      2. 3.3.2. 调整分区大小
      3. 3.3.3. 刷新分区表并调整 PV 大小
      4. 3.3.4. 扩展 LV
      5. 3.3.5. 最后确认
  4. 4. 最后

前情提要

家里的 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 分区及文件系统。

本文最后更新于 天前,文中所描述的信息可能已发生改变