惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
PCI Perspectives
PCI Perspectives
Webroot Blog
Webroot Blog
罗磊的独立博客
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Last Week in AI
Last Week in AI
美团技术团队
Help Net Security
Help Net Security
The Hacker News
The Hacker News
C
Cisco Blogs
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
The Register - Security
The Register - Security
IT之家
IT之家
WordPress大学
WordPress大学
Jina AI
Jina AI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Help Net Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
NISL@THU
NISL@THU
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
Vulnerabilities – Threatpost
B
Blog
T
Tenable Blog
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
S
Security Affairs
小众软件
小众软件
Hacker News: Ask HN
Hacker News: Ask HN
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
W
WeLiveSecurity
A
Arctic Wolf
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence

Ivan's Blog

untitled - Ivan 搓一个 USB PD 协议与 DC-DC 反馈 在 UTM 中创建一个带有 xfce 桌面环境的 ArchLinux 升级 All in One: PVE 8.4 -> PVE 9.1, PBS 3 -> 4 Cloudflare Tunnel 实现内网穿透小记 SK150C 外壳套件——硬件设计篇 电子负载 Rev.3 开发笔记 使用 CH335F 构建一个支持独立供电的 2A2C USB HUB UPS 开发笔记:硬件选型与设计 ByteVirt LXC 小鸡重装最新 ArchLiux 小记 造一个支持隔离、PD 供电的全速 USB-C HUB Rev.2 快速在 PVE 全新部署 Arch Linux LXC 在本地运行 Act Runner 造一个支持隔离、PD 供电的全速 USB-C HUB Rev.1 电子负载开发笔记 学习笔记:电子负载实现原理 带功率计量的 PD 诱骗器 Ver.2 Power Desk 的供电问题导致 ESP32-C3 主控重启 LumiDock Flex 开发笔记 带功率计量的 PD 诱骗器
全新安装 PVE 并使用旧数据恢复它
Ivan Li · 2025-04-01 · via Ivan's Blog

Ivan Li 12 分钟阅读

喜大普奔,All in boom 了。由于意外停电,PVE 宿主机开机数十分钟后会冻结。日志里没找到特别相关的问题,内存测试跑了一圈,用了一个小时没发现错误。我感觉是硬盘的问题,但是没找到证据能证明。由于有日常本地备份,所以想着直接用控制变量法将两块固态分别重装一次 PVE,跑跑看哪个有问题。有问题的就下岗。所以这次记录一下如何从零开始全新安装 PVE,并使用旧数据恢复我的环境。

正文已可阅读,图片灯箱和代码折叠会按需启用

Proxmox VE

我使用 Ventoy 来启动 PVE 的安装镜像。

Proxmox VE Downloads 找到你想要的系统镜像,下载下来后并托到 Ventoy 的 普通文件分区就行了。

然后在目标主机上插入 U 盘启动 Ventoy,选择 "proxmox-ve_xxx.iso",然后选择 Normal Mode启动。一定一定不要选 Grab2,会卡在 "Loading initial ramdisk" 这个阶段。

Ventory 启动 PVE 安装器镜像时要选普通模式

进入 Proxmox VE 安装界面后,要选 GUI 的安装方式,选 CLI 的话,管理网口默认的是 DOWN 的,结果就是无法通过网络访问到 PVE。

小声BB:比较可惜这款工具目前只支持在 Windows 和 Linux 下制作 Ventoy 镜像,我之前就在使用 Ventoy 来做各个系统的启动盘,所以这次继续用它。比较吊诡的是,大概放了一年后,U 盘里的启动引导好像出问题了,放的各个系统的镜像好像还正常。看来 U 盘确实不太适合长期存放文件。最后重新在 Windows 下重做了启动盘后才能用。

OpenWRT

我尽力了,还是没办法在 LXC 下搞定 OpenWRT + Nikki,LXC 下部署 OpenWRT 问题本来就多,好不容易搞定了结果一开 Nikki 又寄了。不知道是 Nikki 更新出了新冲突还是 OpenWRT 又出新反骨,我是放弃了。直接起了 VM 保平安。 现在事情复杂起来了,似乎是构建的各组件依赖有冲突,用 VM 部署还是不正常。我最后换回以前用的 LXC 镜像了,下面是部署方法。

由于我们需要有良好的网络才能继续后面的操作,所以第一个虚拟机得是软路由。

我没有做网口直通之类的操作,而是使用了两个网桥: vmbr0 作为 LAN 口,vmbr1 作为 WAN 口。网桥需要事先创建好。因为我的硬件只有两个网口,所以使用 PVE 默认创建的 vmbr0 作为 LAN 口的网桥。如果你需要配置多个 LAN 口,可以考虑都加进来或者单独再创一个网桥使用。

网桥设置

在 LXC 中创建 OpenWRT

然后下载构建好的镜像,这个是我之前构建的,解压后找到 openwrt-23.05.5-x86-64-generic-rootfs.tar.gz 文件,通过 scp 这类工具复制到 PVE 宿主机中。然后执行下面的命令创建 LXC。

pct create 301 ~/openwrt-23.05.5-x86-64-generic-rootfs.tar.gz \
 --arch amd64 \
 --hostname OpenWRT \
 --rootfs local-lvm:2 \
 --memory 2048 \
 --cores 6 \
 --ostype unmanaged \
 --unprivileged 1 \
 --features fuse=1,nesting=1 \
 --onboot 1 \
 --startup order=0 \
 --start 1 \
 --dev0 /dev/ppp \
 --dev1 /dev/net/tun \
 --net0 bridge=vmbr0,name=eth0,gw=192.168.31.1,ip=192.168.31.1/24 \
 --net1 bridge=vmbr1,name=eth1

最后在 OpenWRT 客户机中的 /etc/init.d/dnsmasq 文件内找到 procd_add_jail_mount /etc/passwd /etc/group /etc/TZ /etc/hosts /etc/ethers 这样的行,追加 /dev/urandom,最终效果如下:

procd_add_jail_mount /etc/passwd /etc/group /etc/TZ /etc/hosts /etc/ethers /dev/urandom

然后重启容器。

如果有备份之前的 OpenWRT 配置,可以尝试恢复。

在 VM 中创建 OpenWRT

拿出事先准备好的 OpenWRT 的 img 镜像文件。通过 PVE 的 Web GUI 上传或者用 scp 等工具传到 PVE 上。如果是 GUI 上传的,文件路径在这:

通过 GUI 上传镜像后的文件路径显示在日志中

执行下面的命令导入镜像到虚拟机的设备列表,这个命令会创建一个带有 OpenWRT 系统的磁盘:

qm disk import 201 /var/lib/vz/template/iso/openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img local-lvm

Proxmox Backup Server

参考这篇文章: Run Proxmox Backup Server (PBS) on a Proxmox VE host

Install the PBS apt repo signing key:

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

Add the PBS repo to apt:

  1. Open a new file in a text editor:

    nano /etc/apt/sources.list.d/pbs-install-repo.list
    
  2. In the text editor paste in:

    # Proxmox Backup Server pbs-no-subscription repository provided by proxmox.com,
    # NOT recommended for production use
    deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription
    

    CTRL-X, y to save.

  3. Update apt and install:

    apt update
    apt install proxmox-backup-server -y
    

挂载旧硬盘

由于使用的是有备份数据的旧盘而不是新盘,所以这点有别于新环境的步骤。

  1. 挂载旧硬盘:

    查看旧硬盘的 UUID:

    ls -l /dev/disk/by-uuid
    

    我的硬盘是 st2000,所以下面示例就用这个 st2000 举例。

    mkdir /mnt/st2000
    mount /dev/disk/by-uuid/<uuid> /mnt/st2000
    

    挂载完成后没问题的话,就可以在 /etc/fstab 中添加挂载信息,以实现开机自动挂载:

    UUID=<uuid> /mnt/st2000 xfs defaults 0 2
    
  2. 编辑 /etc/proxmox-backup/datastore.cfg:

    nano /etc/proxmox-backup/datastore.cfg
    

    我的 PBS 数据都存在硬盘的 backups 目录中,所以增加下面的配置:

    datastore: st2000
        path /mnt/st2000/backups
    

    保存后就会直接在界面上出现存储了,数据都在。

    PBS 旧硬盘的数据存储配置生效截图

    数据存储的目录结构长这样,如果不记得具体位置,可以尝试找到这样结构的目录去试试。

    PBS 数据存储的目录结构

    更新:在 3.2.9 后,可以在 GUI 添加已经有数据的目录了。(还没过两周我又重装一次😂。验证过了,从 GUI 添加是 OK 的。)

    GUI 添加旧存储

PVE 连接 PBS

  1. 在 PBS 上创建一个用户:

    创建用户

  2. 为这个用户增加 /datastore 的管理权限:

    在 PBS 中为用户增加所有数据存储的管理权限

  3. 复制 PBS 指纹信息:

    PBS 实例指纹

  4. 到 PVE 中增加备份服务器:

    加备份服务器的入口

    在 PVE 中增加备份服务器

恢复数据

完成上面操作后,就可以看到所有的备份数据了。选择你要恢复的进行恢复就好了。

在 PVE 中能查看到备份列表

其他

邮件通知

默认情况下似乎收不到邮件,还是需要配一下 SMTP,用已有的电子邮箱服务发信。

创建 SMTP 通知目标入口

创建新的 SMTP 目标后,需要再修改下通知规则,不然其他地方还是不会使用刚刚创建的 SMTP 通知目标的。

更改规则

更改规则2

这几天一直收到 PVE 实例的邮件系统(mail system)发信失败的通知,是备份成功的通知。但是我确实有收到正常的备份成功的邮件。

在邮箱中收到发信失败的通知

我想了下,这个邮件系统应该就是 sendmail 类型的通知,所以我补了上面的步骤,确保只使用了 smtp 类型的通知,但之后还是会在邮箱收到发信失败的通知。又过了两天,我怀疑 PBS 有类似功能,进去看了看,果然有! 按下面步骤直接禁用吧:

禁用 Proxmox Backup Server 通知

Feedback

如果这篇文章对你有帮助,欢迎留下反应或评论。

相关文章