我从2017年开始使用Plex作为家里的媒体服务已经挺长时间了，一开始用的闲置笔记本，尝试了一阵子后决定给它配个专门的主机，于是年底买了台Nuc7作为Plex服务，装了Windows10作为操作系统，在当时主流片源大都1080P、上传带宽30mbps封顶的前提下，同时转码4、5路播放还是能很轻松的满足日常的媒体播放需求。 随着时间慢慢前进，4k、HDR、杜比视界这些新技术慢慢普及，在Windows限制下，Plex转码带有HDR内容的片源无法调用GPU，只能靠CPU来处理HDR转SDR的色彩映射，这就造成了CPU会一直高居100%，无论是其他播放体验还是远程管理都明显感到延迟和卡顿。 随着新一代技术的来临，各方媒体测试Intel的N100性能似乎证明了在linux下这款CPU是完美的Plex服务器首选处理器，观摩了同好北京土著的实机效果后，我决定给家里的主机升级换代。 目标：在保留现有数据库的前提下，把Plex服务器从Windows中迁移到Linux（Ubuntu） 首先，决定网络架构，现有的Windows主机上除了Plex之外我还有一些其他的服务比如alist、komga不能停，Windows用USB连接了2台世特力的5盘位硬盘盒。现在就要将这10个盘作为NFS服务提供给N100主机挂载。 配置Windows10内的NFS服务，列举重点操作 去 https://hanewin.net/nfs-e.htm 这里下载NFS服务软件及语言文件 安装软件，把中文语言文件复制到安装目录的语言文件夹 启动软件，切换成中文 注册软件，不小心在网上搜到了共享出来的注册信息 [collapse status="false" title="点击查看"]name:astray.cn key:FBLZ9467C95EEB4B[/collapse] 打开应用切换到输出，点击编辑输出表文件 编辑共享路径，设置仅限指定ip（N100主机）访问 示例 E:\ -alldirs -name:HDD-E -maproot:0 -range 192.168.1.80 F:\ -alldirs -name:HDD-F -maproot:0 -range 192.168.1.80 G:\ -alldirs -name:HDD-G -maproot:0 -range 192.168.1.80 确认服务器选项卡中的“将客户根目录映射到根目录”已勾选 以上操作结束，Windows这边的准备工作就全部完成了 接下来在畅网N100的工控主机上安装Ubuntu20.04.3 LTS 1、小白，全部选默认安装，安装好进到桌面 2、开启root用户 sudo passwd root 输入root用户的密码，回车 再次输入root用户的密码，回车 提示下面信息表示设置成功 passwd: password updated successfully 3、开启ssh模式root用户登录，打开编辑配置文件 sudo vi /etc/ssh/sshd_config 找到#Authentication行，将 PermitRootLogin no改成yes，并确认行首没有#号注释 找到#Authentication行，将 PasswordAuthentication no改成yes，并确认行首没有#号注释，没有的话可以直接添加此行 esc退出编辑模式后:wq保存退出 4、重新启动ssh服务 service sshd restart 5、开启GUI模式root用户登录，打开编辑配置文件 sudo vi /etc/gdm/gdm.conf 找到 AllowRoot=false，更改为 AllowRoot=ture esc退出编辑模式后:wq保存退出 6、安装防火墙GUI界面 sudo apt-get update sudo apt-get upgrade sudo apt-get install gufw 7、安装intel核显工具 sudo apt-get update sudo apt-get upgrade sudo apt-get install intel-gpu-tools -y 8、查看核显状态 ls -l /dev/dri 9、启用GuC和HuC，打开grub文件编辑 sudo vi /etc/default/grub # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="intel_iommu=on i915.enble_guc=7 quiet" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" 找到 # GRUB_CMDLINE_LINUX_DEFAULT="quiet" 把原先的这行注释掉在下面新建一行 GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=7 quiet" 10、重启ubuntu sudo reboot 11、查看显卡信息 intel_gpu_top 以上内容可以参考北京土著的wiki，链接跳转后有虚拟机方面更详细的步骤 12、在Ubuntu上建立挂载目录（上面Windows已经打开NFS服务） 示例 sudo mkdir /mnt/nuc/win-e sudo mkdir /mnt/nuc/win-f sudo mkdir /mnt/nuc/win-g 13、配置fstab增加挂载命令，打开编辑配置文件 sudo vi /etc/fstab 14、在最下面增加挂载命令 示例 192.168.1.150:/e /mnt/media/win-e nfs ro,sync,soft,nolock,_netdev 0 0 192.168.1.150:/f /mnt/media/win-f nfs ro,sync,soft,nolock,_netdev 0 0 192.168.1.150:/g /mnt/media/win-g nfs ro,sync,soft,nolock,_netdev 0 0 15、配置开机自动运行服务（代码为北京土著大佬手搓） 根目录建立文件夹amount sudo mkdir amount 16、在目录中新建amount.sh文件 sudo touch amount.sh 17、打开编辑内容 sudo vi /amount/amount.sh 18、复制粘贴进下面内容，ip段更改为挂载的目标主机（我这里是Windows主机ip） #!/bin/bash # 检测网络链接畅通 function network() { # 目标 IP local target=192.168.1.150 # ping 命令检测网络 if ping -c 1 ${target} &> /dev/null then # 网络畅通 return 1 else # 网络不畅通 return 0 fi } # 循环检测网络，直到网络畅通 while true; do network if [ $? -eq 1 ];then echo "网络畅通，开始执行 mount -a 命令" sudo mount -a exit 0 else echo "网络不畅通，继续检测..." sleep 5 fi done :wq保存退出 19、在目录中增加install.sh文件 sudo touch install.sh 20、打开编辑内容 vi /amount/install.sh 21、复制粘贴进下面内容 #!/bin/bash # 创建服务文件 cat << EOF > /etc/systemd/system/amount.service [Unit] Description=Check Network Connectivity [Service] ExecStart=/amount/amount.sh Restart=always [Install] WantedBy=multi-user.target EOF # 重新加载 systemd，使其读取新的服务文件 systemctl daemon-reload # 启动服务 systemctl start amount # 设置服务在开机时自动启动 systemctl enable amount :wq保存退出 22、给上面两个文件增加权限 chmod +x amount.sh chmod +x install.sh 23、运行脚本 ./install.sh 24、重启后输入df -h命令可以查看挂载是否生效 sudo df -h 文件系统 大小 已用 可用 已用% 挂载点 tmpfs 1.6G 2.9M 1.6G 1% /run /dev/nvme0n1p2 916G 111G 759G 13% / tmpfs 7.7G 4.0K 7.7G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock efivarfs 192K 86K 102K 46% /sys/firmware/efi/efivars /dev/nvme0n1p1 511M 6.1M 505M 2% /boot/efi 192.168.1.150:/e 9.1T 9.0T 144G 99% /mnt/nuc/hdd-e 192.168.1.150:/f 9.1T 9.0T 163G 99% /mnt/nuc/hdd-f 192.168.1.150:/g 9.1T 8.9T 234G 98% /mnt/nuc/hdd-g tmpfs 1.6G 128K 1.6G 1% /run/user/0 到这里两个服务器的连接就已经打通了，接下来安装Plex到新的Ubuntu服务器中 首先安装CURL sudo apt-get install apt-transport-https curl 添加 GPG 密钥 curl https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | sudo tee /usr/share/keyrings/plexserver.gpg > /dev/null 添加存储库 echo deb [arch=amd64 signed-by=/usr/share/keyrings/plexserver.gpg] https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list [...]