嘟嘟社区

[经验] 在使用 WLAN 联网的树莓派上安装 Proxmox VE 并创建虚拟机


本文原载于 https://blog.iks.moe/archives/Raspberry-Pi-Proxmox-VE-setup.html
作者: iks

去年的这个时候收了一台树莓派 4B,到手之后宝塔建站一把梭之后就放在那里吃灰(没办法,技术太菜玩不了别的)。最近迷上了 PVE,想想手头也没有什么可以实践的物理设备,百般寻找之后便把目光锁定在了吃灰中的树莓派。

Proxmox 论坛的 https://forum.proxmox.com/threads/how-to-run-pve-7-on-a-raspberry-pi.95658/ 帖子讲的是在有线网络接入 (eth0) 时的安装过程,目前我手里没有网线,所以只能修修改改踩踩坑探索一下 WLAN 接入网络 (wlan0) 时的安装和配置。

本教程需求:Raspberry Pi 4 Model B(内存 2GB 或以上)、拥有宽带连接的 2.4GHz 或 5GHz 的 WLAN(SSID 不可带有下划线 (_)、DHCP 服务器能够给指定的 MAC 地址分配固定的 IP 地址功能、需要能够顺畅连接 raw.githubusercontent.com)、一台显示器、USB 接口的键盘以及一张容量至少为 16GB 且速度等级为 C10 或以上的 MicroSD 卡。

一、准备工作
1.1 刷写系统镜像
1.1.1 下载系统镜像
访问 https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/raspios_lite_arm64/images/ 下载 Raspberry Pi OS ARM64 Lite 最新的版本,本文写作时的版本为 2021-11-08 (https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/raspios_lite_arm64/images/raspios_lite_arm64-2021-11-08/2021-10-30-raspios-bullseye-arm64-lite.zip)

清华大学 TUNA 源的速度还是很不错的。此外,阿里云镜像站(mirrors.aliyun.com)也提供相同的镜像。
系统镜像下载完成后,解压之,得到 ISO 文件。

1.1.2 刷写系统镜像至 MicroSD 卡中
下载 SD Card Formatter (https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip) 并安装。
下载 Win32 Disk Imager (https://sourceforge.net/projects/win32diskimager/) 并安装。不建议拿其他刷写软件替代,比如 Rufus 刷写后不会给 BOOT 分区分配盘符。

使用 SD Card Formatter 格式化 MicroSD 卡。

格式化完成后,打开 Win32 Disk Imager,向 MicroSD 卡写入系统镜像。

1.2 准备网络环境
1.2.1 分配固定 IP 地址
登录 WLAN AP (路由器)后台,给树莓派的 WLAN MAC 地址分配一个固定的 IP 地址。若暂时不知道其 MAC 地址,可以跳过此步。本文树莓派被分配到的 IP 地址为 192.168.1.233/24,网关为 192.168.1.1,DNS 地址为 192.168.1.1。

1.2.2 使能 SSH 功能和 WLAN 连接
步骤 1.1.2 刷写完成后,MicroSD 卡的 boot 分区会被分配一个盘符,进入此分区,新建文件 wpa_supplicant.conf 和 SSH。使用编辑器(不得使用 Window 记事本)编辑 wpa_supplicant.conf 文件,填入以下内容:

  1. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
  2. update_config=1
  3. network={
  4. ssid="WiFi的SSID"
  5. psk="WiFi密码"
  6. }

复制代码

保存即可,SSH 文件则保持空白。
拔出 MicroSD 卡,将其插入树莓派。

二、配置底层系统
2.1 重新配置用户和密码
使用 SSH 终端登录至树莓派(默认用户名 pi,密码 raspberry),执行 sudo -i 切换至 root 用户,执行 passwd root 和 passwd pi 修改 root 用户和 pi 用户的密码。

2.2 允许 root 用户通过 SSH 登录
执行 echo "PermitRootLogin yes" >> /etc/ssh/sshd_config && echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config 后执行 systemctl restart sshd,使用 root 用户重新 SSH 连接至树莓派即可。

2.3 增加和修改源并安装内核头文件
执行 rm /etc/apt/sources.list.d/*.list 清除不必要的源。
编辑 /etc/apt/sources.list 文件,将 deb.debian.org 和 security.debian.org 尽数替换为 mirrors.cloud.tencent.com 并在下方添加以下两行内容:

  1. deb https://raw.githubusercontent.com/pimox/pimox7/master/ dev/
  2. deb http://mirrors.cloud.tencent.com/raspberrypi bullseye main

复制代码

效果如图

其中,前 3 行的 mirrors.cloud.tencent.com 可以替换为其他支持 Debian 11 的源,第 5 行的 mirrors.cloud.tencent.com 可以替换为其他支持 Raspberry Pi OS 的源。部分源并不同时支持两者。

执行 curl https://raw.githubusercontent.com/pimox/pimox7/master/KEY.gpg | sudo apt-key add – 以安装 Pimox7 的 gpg 公钥。

执行 apt update && sudo apt dist-upgrade -y && apt install -y raspberrypi-kernel-headers 以更新软件包数据库、更新软件包和安装 raspberrypi 内核头文件。

2.4 静态化网卡
编辑 /etc/network/interfaces 文件,清除原有内容后填入以下内容:

  1. auto lo
  2. iface lo inet loopback
  3. auto wlan0
  4. iface wlan0 inet static
  5. address 192.168.1.233/24
  6. gateway 192.168.1.1

复制代码

其中,192.168.1.233/24 和 192.168.1.1 分别为步骤 1.2.1 中提到的树莓派被分配到的 IP 地址和网关。修改完成后保存。

2.5 配置主机名
执行 hostnamectl set-hostname RPi4-PVE-01,其中 RPi4-PVE-01 请自定义。
编辑 /etc/hosts 文件,清除原有内容后填入以下内容:

  1. 127.0.0.1        localhost
  2. 192.168.1.233 RPi4-PVE-01

复制代码

其中,192.168.1.233 和 RPi4-PVE-01 分别为步骤 1.2.1 中提到的树莓派被分配到的 IP 地址和主机名。

2.6 扩大 SWAP
树莓派默认的 SWAP 大小只有 100M,非常不适合本文场景,故请编辑 /etc/dphys-swapfile 文件,将原先 CONF_SWAPSIZE 的值从 100 改为 2048;执行 /etc/init.d/dphys-swapfile stop && /etc/init.d/dphys-swapfile start 以应用更改。

一切完成后,重新启动系统。

三、安装 Proxmox VE
3.1 安装 Proxmox VE 本体
将树莓派连接至显示器,插入键盘,执行 apt install -y proxmox-ve。因安装过程中将重置网络,故请勿直接在 SSH 中直接执行 apt install -y proxmox-ve。

弹出配置 Postfix 时,请选择 Local system。

安装需要半个小时左右,建议耐心等待;安装完成后,请重新启动设备。

3.2 配置无线网卡和虚拟网桥
编辑 /etc/network/interfaces 文件,在 source-directory /etc/network/interfaces.d 此行上方插入以下内容:

  1. auto wlan0
  2. iface wlan0 inet dhcp
  3.         wpa-ssid 114514
  4.         wpa-psk qweasdzxc123
  5. auto vmbr0
  6. iface vmbr0 inet static
  7.         address  10.154.46.1
  8.         netmask  255.255.255.0
  9.         bridge-ports none
  10.         bridge-stp off
  11.         bridge-fd 0
  12.         post-up   iptables -t nat -A POSTROUTING -s ‘10.154.46.0/24’ -o wlan0 -j MASQUERADE
  13.         post-down iptables -t nat -D POSTROUTING -s ‘10.154.46.0/24’ -o wlan0 -j MASQUERADE

复制代码

其中,wpa-ssid 后为 WLAN 的 SSID,wpa-psk 后为 WLAN 的密码。其他内容请按需修改。
执行 systemctl restart networking 以重启网络设备。

3.3 内核参数调整
编辑 /etc/sysctl.conf 文件,添加以下内容:

  1. vm.overcommit_memory=1
  2. net.ipv4.ip_forward=1
  3. net.ipv4.conf.all.rp_filter=1
  4. net.ipv4.icmp_echo_ignore_broadcasts=1
  5. net.ipv4.conf.default.forwarding=1
  6. net.ipv4.conf.default.proxy_arp=0
  7. net.ipv4.conf.default.send_redirects=1
  8. net.ipv4.conf.all.send_redirects=0

复制代码

保存后执行 sysctl -p 使其生效。

3.4 配置 Proxmox VE 用户界面
访问 https://IP 地址:8006 (以下以 https://pve.iks.moe:28006 作为演示)登录 Proxmox VE 用户面板。

用户名和密码与步骤 2.1 中设置的系统用户名和密码一致;语言可选 Chinese (Simplified)。

单击本机唯一的节点,选择“凭证”,单击上方的“上传自定义凭证”按钮上传自定义的证书。此操作会让 Proxmox VE 用户界面在重载时使用自定义的证书,在主机名对应的情况下提供基于 TLS 的身份验证和加密的安全性。(把 pve.iks.moe 解析到步骤 1.2.1 中提到的 192.168.1.233 然后再传证书,刷新即可。)

四、创建 QEMU-KVM 虚拟机
4.1 下载镜像
单击节点下的 local,选择 ISO映像,单击上方的“上传”(如果本地有镜像的话)或“从 URL 下载”下载相应的镜像。

因树莓派4B 为 ARM64 架构,因此下载的镜像亦需要为 arm64 架构,腾讯云源 (https://mirrors.cloud.tencent.com/ubuntu-cdimage/, https://mirrors.cloud.tencent.com/debian-cd/current/arm64/iso-cd/) 等有 Ubuntu 和 Debian 的镜像。本章以 Debian 11.1.0 ARM64 为例。

将镜像的 URL 粘贴到文本框后单击右边的“查询网址”,待文件名成功显示后即可单击下方的“立即下载”按钮。下载过程将在后台进行,进度将被实时打印。

4.2 创建虚拟机
镜像下载完成后,单击右上角的“创建虚拟机”,弹出相关对话框。

名称请自定义,其他内容请留空;在单击对话框底部的“下一步”前,请勾选左边的“高级”。

此处“操作系统”选择“不使用任何介质”。

勾选“QEMU代理”,并将 BIOS 改为 OVMF (UEFI),“添加EFI磁盘”下的“存储”选择 local。

随后的“磁盘大小 (GiB)”和“内存 (MiB)”请按需选择,其他配置建议默认。

单击“完成”以开始创建虚拟机。

4.3 调整虚拟机的硬件
4.3.1 删除 CD/DVD 驱动器
单击刚刚创建的虚拟机,选择“硬件”,单击选中 CD/DVD驱动器 (ide2) 后点击上方的“删除”按钮。

4.3.2 添加镜像驱动器
单击上方的“添加”,选择“CD/DVD驱动器”。

“总线/设备” 选择 SCSI,顺序为 2;使用“存储”为 local,“ISO映像”为步骤 4.1 下载的 Debian 11.1 ARM64 镜像;单击对话框底部的“创建“按钮。

4.3.3 调整开机顺序
单击“选项”,双击右方的“引导顺序”,将 scsi2 改为如图在 scsi0 后、在 net0 前的顺序,单击对话框下方的“OK”保存之。

4.4 启动安装
4.4.1 开机
单击右上角的“启动”按钮,再单击右方的“控制台”进入 noKVM,稍等片刻即可进入 Debian 安装程序。

请按照默认值进行安装。

4.4.2 手动配置网络
当出现 Network autoconfiguration fails 时请不要惊慌,因为我们在步骤 3.2 配置的网桥 vmbr0 没有 DHCP 功能,故自动 DHCP 无法生效,此时我们需要指定网络配置。

此处选择 Configure network manually,在后续页面输入步骤 3.2 中提到的 10.154.46.2/24。

此处的 Name server address 应该为步骤 1.2.1 中提到的 192.168.1.1。

后续配置不是特别复杂,在此按下不表。(注意:需要手动配置软件包源为 China 以加快后续的安装速度)

KVM 虚拟机安装大功告成。

五、创建 LXC 虚拟机
5.1 下载镜像
单击节点下的 local,选择 CT模板,单击上方的“上传”(如果本地有镜像的话)或“从 URL 下载”下载相应的镜像。

适用于 ARM64 的 LXC 镜像可以在 https://uk.lxd.images.canonical.com/images/ 找到,本章以 Debian 11 为例。

将镜像的 URL 粘贴到文本框后单击右边的“查询网址”,待文件名成功显示后修改文件名为方便辨识发行版名称和版本的格式,然后单击下方的“立即下载”按钮。下载过程同样将在后台进行,进度也将被实时打印。

5.2 创建 CT
镜像下载完成后,单击右上角的“创建CT”,弹出相关对话框。

“密码”(需要“确认密码”)和“SSH 公钥”(可以通过下方的“加载SSH密钥文件”按钮载入)任选其一设置即可。

“存储”选择 local,“模板”选择在步骤 5.1 中下载的模板;单击对话框底部的“下一步”;随后的“磁盘大小 (GiB)”和“内存 (MiB)”请按需选择,其他配置建议默认。

“IPv4/CIDR” 填写步骤 3.2 中提到的 10.154.46.3/24,“网关 (IPv4)”填写 步骤 3.2 中提到的 10.154.46.1,其他内容保持默认;单击在步骤“确认”下方的“完成”按钮以开始创建 LXC 容器。

5.3 开机
开机方法与 KVM 相同,单击右上角的“启动”按钮,再单击右方的“控制台”即可直接进入已经安装完成的容器。

终。

鸣谢
https://forum.proxmox.com/threads/how-to-run-pve-7-on-a-raspberry-pi.95658/
https://www.fmqcloud.com/archives/pve.html
https://wenqixiang.com/linux-wireless-configuration-in-terminal-command-line/
https://www.bitpi.co/2015/02/11/how-to-change-raspberry-pis-swapfile-size-on-rasbian/
https://blog.csdn.net/weixin_34085658/article/details/92968838
https://www.bachmann-lan.de/proxmox-ve-auf-dem-raspberry-pi-4-installieren/

感谢分享,绑定
顶一下技术帖子