新买了一台主机,准备搭个 PVE 服务器,在这记录一下过程。
安装 PVE
PVE 本身基于 Debian 系统,安装起来并不会十分复杂。下载最新版的 PVE 镜像,还有最新版引导盘制作软件 Rufus,将镜像写入 U 盘后再从 U 盘启动即可。遇到一个比较坑的问题,引导进入 PVE 安装界面后却提示 no device with valid ISO found, please check your installation medium
。因为我这 U 盘拿来做各种启动盘也挺久了所以一开始没怀疑到它,总觉得是自己引导盘做的有问题,还换了 Etcher,用 AI 搜来的过时信息对 bios 一通修改。结果最后换了个 U 盘就好了,并不用做任何多余的操作。
安装 PVE 时注意想好主机名和分配给服务器的 ip,之后虽然也可以修改,不过一开始能定下来后面就省点心。
PVE 服务器改名
hostnamectl set-hostname <新名字>
修改 /etc/hosts 替换老名字
mkdir /root/tmp cp -r /etc/pve/nodes/<老名字>/* /root/tmp/ # 复制现有配置 rm -rf /etc/pve/nodes/<老名字> mkdir /etc/pve/nodes/<新名字> cp -r /root/tmp/* /etc/pve/nodes/<新名字> # 复制现有配置 reboot
修改镜像源
安装完后要更新软件,首先就是改镜像源了。按清华大学镜像站的指引更换 Debian 和 Proxmox 软件源。
企业版源列表文件内的内容 /etc/apt/sources.list.d/pve-enterprise.list 可以全部注释掉。
ceph 源,将 ceph.source 复制备份后新建 /etc/apt/sources.list.d/ceph.list,内容为
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-squid bookworm no-subscription
最后执行 apt update && apt dist-upgrade -y 更新并重启即可。
删除 local-lvm
local-lvm 和 local 本意是一个放 iso 方便安装虚拟机,一个放虚拟机磁盘,相当于默认分了个区,没法有效利用磁盘空间,所以直接删了合并成一个。local-lvm 删除后,空间合并给 local 存储空间。
lvremove /dev/pve/data lvextend -l +100%FREE -r /dev/pve/root
命令操作完后在 Web 界面删除 local-lvm 存储:点击左侧列表的数据中心节点 – 存储 – 选中 local-lvm 删除。
最后还要配置下 local 存储,在上一步的存储界面选中 local,点击 编辑 – 内容,确保选中了 所有选项(包括磁盘映像、容器等),这样 local 分区就可以存放各类文件了。
安装文件虚拟机
新建一个虚拟机用来管理所有数据磁盘,并通过 smb 分享给其他服务,省得虚拟机各搞各的了。随便装个 Fedora 或者 Debian,配一下 smb.conf。
/usr/sbin/groupadd smbgroup # 设置 smb 用户组 /usr/sbin/useradd smb_user1 # 新建 smb 用户 /usr/sbin/usermod -aG smbgroup smb_user1 # 添加到组 smbpasswd -a smb_user1 # 设置密码 ufw allow samba # 防火墙放行,如果有的话 sudo chgrp -R smbgroup /srv/samba/shared # 每个共享目录都要操作 sudo chmod 2770 /srv/samba/shared # 设置 SGID,保证新建文件继承组身份
配置 smb.conf
[global] security = user smb passwd file = /etc/samba/smbpasswd access based share enum = Yes # 禁用不安全的 SMB1 协议 server min protocol = SMB2_10 # 禁用不安全的 NTLMv1 认证 ntlm auth = ntlmv2-only # 明确要求客户端使用更安全的加密 server smb encrypt = desired [tmp-space] # 设置共享目录 comment = 临时目录 create mask = 0664 directory mask = 0775 inherit permissions = Yes path = /srv/samba/tmp-folder read only = No # 目录默认可写 valid users = smb_user1 smb_user2 # 允许哪些用户访问 read list = smb_user1 # 重载读写配置,user1 设为只读 write list = smb_user2 @wgroup # 仅 user2 和 wgroup 里的用户可写,再配合全局的 read only 设置就比较完善了
最后重启 smb:systemctl restart smbd nmbd
Windows 连接 smb:在我的电脑 – 工具栏中的“计算机” – 映射网络驱动器。
To be continued
还有其他一些东西需要配置,比如 LUKS 磁盘加密,jellyfin 直通核显硬解等,后续再一一补充。
参考
最后贴一下官方文档,有各种问题都可以去里面找找