0%

All in one小主机重装实录--Proxmox VE 6.3安装配置

前言:

本文主要介绍Proxmox VE 6.3的安装配置和利用Clover实现NVME SSD引导。

最近发现运行了2年的All in one小主机硬盘出现了坏道,于是萌生了重装+升级的想法,为了日后易于查找记录一下过程。

HTPC硬件平台(升级后) J1800+16G RAM+128G NVME SSD + 500G机械

Proxmox VE 6.3

PVE的安装应该大致就是官网下载iso,然后balenaEtcher写入U盘引导安装。值得注意的是,因为是把安装到NVME SSD,所以用UEFI+GPT引导会比较方便。

为了最大化利用NVME SSD空间,安装PVE的时候需要分区大小需要设置一下。

1
2
3
swap 4G 交换空间,由于内存有16G,J1800弱鸡的性能估计用不到swap,但是安装程序规定最少4G。
maxroot 8G 根分区大小,系统安装后只占用2G。
maxvz 0 不要创建任何数据分区,安装系统后自行创建。

Clover引导

Clover是著名的黑苹果引导工具。本质上是一个模拟UEFI的软件,利用Clover可以实现老主板支持UEFI引导,免刷BIOS NVME SSD引导。我这里 J1800的小主板是支持UEFI的,但是没有UEFI里面NVME的驱动,无法从NVME SSD引导系统。刷BIOS固然是可以实现,但是借助Clover来引导比刷BIOS更方便,只需要一个小U盘就足够了。

制作方法是参照B站大佬lwyx2017 的,他说得比较细致。大致过程就是

  • 下载最新版的CloverBootloader用 Clover-xxxx-X64.iso.7z那个文件。
  • Boot Disk Utility 这个工具把Clover写入到U盘,这个工具里面也可以自动从github下载到最新版本的CloverBootloader。其实原理就把U盘格式化成FAT32的分区,然后里面有个EFI的文件夹,是UEFI的标准引导方式。
  • 打开U盘,找到目录EFI\CLOVER\drivers\off下面的NvmExpressDxe.efi那个文件,把他复制到EFI\CLOVER\drivers\BIOS和EFI\CLOVER\drivers\UEFI 两个地方。目的是让Clover加载NVME驱动,识别NVME SSD

由于PVE是使用UEFI引导安装的,安装完成后NVME SSD里面已经自动分好了EFI分区。Clover U盘制作完成之后,直接插到J1800上就可以直接引导进入PVE了。

PVE配置国内的Debain源和PVE源

由于种种原因,官方的apt源总是非常慢,换成国内科大的源,速度可以起飞。

国内源是用中国科学技术大学的比较靠谱。

如果用阿里、腾讯、163速度慢不说,还经常有莫名奇妙的问题。还不如用官方源+特殊方式上网好。

编辑/etc/apt/sources.list

1
2
3
4
5
6
7
8
9
10
deb https://mirrors.ustc.edu.cn/debian/ buster main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ buster main non-free contrib
deb https://mirrors.ustc.edu.cn/debian-security buster/updates main
deb-src https://mirrors.ustc.edu.cn/debian-security buster/updates main
deb https://mirrors.ustc.edu.cn/debian/ buster-updates main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ buster-updates main non-free contrib
deb https://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ buster-backports main non-free contrib

deb https://mirrors.ustc.edu.cn/proxmox/debian/pve buster pve-no-subscription

删除PVE企业源

1
rm -rf /etc/apt/sources.list.d/pve-enterprise.list

最后执行升级

1
2
apt update
apt update&&apt dist-upgrade

删除lvm-thin 存储池,建立LVM cache为机械硬盘加速

PVE的lvm-thin存储池是个好东西,但是在一块120G的SSD划分这么多区域,空间利用率不佳。

如果之前在安装的时候没有设置maxvz=0现在也可以把lvm-thin全部删掉,重新创建data卷和cache卷为机械硬盘加速。

删除data volume

1
lvremove pve/data

lsblk查看磁盘分区情况。

1
2
3
4
5
6
7
8
9
10
11
12
root@pve:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
sdb 8:16 0 465.8G 0 disk
sdc 8:32 1 62.5M 0 disk
└─sdc1 8:33 1 62.5M 0 part
nvme0n1 259:0 0 119.2G 0 disk
├─nvme0n1p1 259:1 0 1007K 0 part
├─nvme0n1p2 259:2 0 512M 0 part /boot/efi
└─nvme0n1p3 259:3 0 118.8G 0 part
├─pve-swap 253:0 0 4G 0 lvm [SWAP]
└─pve-root 253:1 0 8G 0 lvm /

可以看到NVME SSD被分成了3个区,第一个分区是mbr引导分区,第二个是efi引导分区,第三个就是lvm物理卷了。

sda和sdb都是机械硬盘,没有分区。

把500G机械硬盘的创建为物理卷(PV)并加入卷组(VG)

1
2
pvcreate /dev/sdb
vgextend pve /dev/sdb

创建机械盘、缓存和元数据的逻辑卷(LV)。缓存和元数据的比例是1000:1,即1G缓存LV配1M元数据LV,但元数据LV最小要8M。缓存使用回写模式。

SSD剩余的空间另外新建一个LV,用于存放虚拟机的硬盘映像IMG文件。

1
2
3
4
5
6
lvcreate -l 100%PVS -n st500g pve /dev/sdb
lvcreate -L 32G -n CacheLV pve /dev/nvme0n1p3
lvcreate -L 32M -n MetaLV pve /dev/nvme0n1p3
lvconvert --type cache-pool --poolmetadata MetaLV pve/CacheLV
lvconvert --type cache --cachepool pve/CacheLV --cachemode writeback pve/st500g
lvcreate -l 100%PVS -n ssd pve /dev/nvme0n1p3

创建后可以使用lvs查看LV。

1
2
3
4
5
6
7
root@pve:~# lvs
Unknown feature in status: 8 1066/8192 128 12/524288 5 51 0 0 0 12 0 3 metadata2 writeback no_discard_passdown 2 migration_threshold 2048 smq 0 rw -
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root pve -wi-ao---- 8.00g
ssd pve -wi-a----- <74.68g
st500g pve Cwi-a-C--- <465.76g [CacheLV] [st500g_corig] 0.01 13.01 0.00
swap pve -wi-ao---- 4.00g

格式化新建的2个LV,挂载到系统内。尝试使用一下下一代的文件系统xfs。

1
2
3
4
5
mkfs.xfs /dev/mapper/pve-ssd
mkfs.xfs /dev/mapper/pve-st500g
mkdir /mnt/ssd
mount -t xfs /dev/mapper/pve-ssd /mnt/ssd
mount -t xfs /dev/mapper/pve-st500g /home

lsblk -f查看uuid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@pve:~# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
sdb LVM2_member dSSffk-IPC7-E2u7-MX3s-iuGv-zIF3-5ReeXX
└─pve-st500g_corig
└─pve-st500g xfs 999a81d5-dc4a-4013-b506-5736b8043e89 465G 0% /home
sdc
└─sdc1 vfat D2O-CLOVER 405F-7CDF
nvme0n1
├─nvme0n1p1
├─nvme0n1p2 vfat A2B6-D67F 510.7M 0% /boot/efi
└─nvme0n1p3 LVM2_member AFVJ7j-WHd3-x2gU-MNb9-0Vgc-5kqg-fm6IBR
├─pve-swap swap ae83391b-bfb3-43f9-8d4e-3279193b0b69 [SWAP]
├─pve-root ext4 b7dd2490-e7a3-4b76-b661-28ac02bbbc66 5.5G 24% /
├─pve-CacheLV_cdata
│ └─pve-st500g xfs 999a81d5-dc4a-4013-b506-5736b8043e89 465G 0% /home
├─pve-CacheLV_cmeta
│ └─pve-st500g xfs 999a81d5-dc4a-4013-b506-5736b8043e89 465G 0% /home
└─pve-ssd xfs 69876a9a-3cdb-4d1a-b623-323ddf18684b

编辑/etc/fstab实现开机自动挂载

1
2
UUID=999a81d5-dc4a-4013-b506-5736b8043e89  /home  xfs  defaults  0 0
UUID=69876a9a-3cdb-4d1a-b623-323ddf18684b /mnt/ssd xfs defaults 0 0

回到PVE的Web界面,找到数据中心–存储。在刚才创建的LV上新建目录型的存储,ID是显示在PVE里面存储池的名称,路径是挂载目录,内容全部选中,这样就能存放ISO镜像、磁盘镜像、容器、容器模板、VZDump备份文件等内容了。

参考: