简介
由于之前有很多旧的小硬盘,打算把它们管理起来存储一下影视资源。
硬盘列表
目前我已经存在的硬盘有以下这些:
已跳过 Notion 表格块
硬盘规划
a. 移动硬盘
西部数码的两个移动硬盘就正常做冷备
b. PVE 系统
装机的时候选择 sda 就行,后续创建虚拟机和 LXC 容器的时候填写硬盘容量就会分别创建 VM Disks 和 CT Volumes,目前系统情况如下:
-
FileServer(CT):35G 用于直接挂载 pve 的物理硬盘,合并媒体盘,并搭建 SMB 服务,以及合并媒体盘服务
-
Windows11:500G
-
MediaServer:500G 媒体托管服务,如 Jellyfin、Immich
-
其他,如 DSM
开搞
a. FileServer(CT)
由于这个服务本身不需要存储太多东西,所以用容器就可以,在这个服务中的相关选型如下:
-
CT Template:debian-12-standard_12.2-1_amd64.tar.zst
-
多硬盘合并工具:mergerfs
-
网络共享工具:SMB
i. PVE 中挂载媒体盘
创建挂载目录
shell
# 创建挂载目录
mkdir /mnt/shared/media1
mkdir /mnt/shared/media2
mkdir /mnt/shared/media2
获取分区 UUID
shell
# 获取分区的 UUID
blkid /dev/sd*

在 `/etc/fstab` 中添加挂载配置
shell
# 在 /etc/fstab 中添加挂载配置
vim /etc/fstab
# mount shared media
UUID=12D9CC1664773279 /mnt/shared/media1 ntfs-3g defaults,noatime,nofail,uid=100000,gid=100000,umask=022 0 0
UUID=5C03-E326 /mnt/shared/media2 exfat defaults,noatime,nofail,uid=100000,gid=100000,umask=022 0 0
UUID=6AFE-CADB /mnt/shared/media3 exfat defaults,noatime,nofail,uid=100000,gid=100000,umask=022 0 0

shell
# 挂载分区
mount -av
# 查看挂载情况
lsblk

更改共享文件夹的归属为[容器 Root ID 100000](https://pve.proxmox.com/wiki/Unprivileged_LXC_containers)

ii. FileServer 器中实现合并 media 目录与 smb 共享功能
创建容器,添加挂载点


shell
# 在 PVE 中运行命令,把 PVE 的挂载点添加为容器的挂载点
pct set 100 -mp0 /mnt/shared/media1,mp=/mnt/shared/media1
pct set 100 -mp1 /mnt/shared/media2,mp=/mnt/shared/media2
pct set 100 -mp2 /mnt/shared/media3,mp=/mnt/shared/media3

安装 `mergerfs`,合并 media* 到一个目录
shell
# 在容器中安装 mergerfs
apt install mergerfs
# 检查已挂载的目录
ls -al /mnt/shared/media*

shell
# 合并 media*,在此之前,每个分区的目录结构最好保持一致
vi /etc/fstab

shell
# 挂载分区
mount -av
# 重新加载配置
systemctl daemon-reload
# 查看合并后的目录
ls -al ~/shared/media/

使用 `SMB`共享目录
shell
# 把 source 换成清华源
vi /etc/apt/sources.list

shell
# 更新
apt update
# 安装 samba
apt install samba
# 修改 samba 配置
vim /etc/samba/smb.conf

shell
# 重启 smb,并开启系统启动自动启动 smb
systemctl restart smbd.service
systemctl enable smbd
systemctl status smbd
# 重新设置目录与文件权限
chown -R root:root ~/shared/
iii. 在其他设备中愉快的使用吧
可以愉快的使用了,在 windows 上添加 Network locations,可以看到已经成功能打开聚合目录。

b. Windows
创建 windows 系统比较简单,需要注意的是直通 sdb 硬盘与直通显卡的问题。
创建 windows 虚拟机


直通单个硬盘
shell
# 查询要直通的硬盘信息
lsblk -o name,mountpoint,label,size,uuid

shell
# 查询要直通的硬盘信息
ls -l /dev/disk/by-id/

shell
# 通过命令设置直通
qm set 101 -scsi1 /dev/disk/by-id/ata-WDC_WD80EAZZ-00BKLB0_WD-CA2KNZZL
# 查看配置
cat /etc/pve/qemu-server/101.conf

直通显卡
shell
# 打开 Bios,开启 `VT-D` **功能(略)**
# 修改配置,开启 `iommu` 功能,在 grub 里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet",改为下图:
vi /etc/default/grub

shell
# 更新配置
update-grub
# 重启主机后运行以下命令看是否生效
dmesg | grep iommu

生效后直接在虚拟机中添加 PCIE 显卡即可

Reference
https://github.com/trapexit/mergerfs
https://foxi.buduanwang.vip/virtualization/pve/561.html/
https://post.smzdm.com/p/avx8pn3n/
PVE 无法控制虚拟机 Win11 关机的问题可以看
Discussion
留言与讨论
想法、补充和不同意见都欢迎。