用 Ubuntu 20.04 LTS 打造多功能家庭服务器

由于实在受不了 Windows Storage Spaces 的读写性能,一拍脑门,转向 Linux。顺便体验一下大红大紫的 ZFS。

说干就干,虚拟机上安装 Ubuntu 20.04 LTS。选择 Ubuntu 是因为用的人多,apt 仓库里可用的软件多。选择 LTS 是因为稳定。照例,ESXi 上新开个虚拟机,很快就安装好了。

接下来就是一些配置。

1. 设置开机自动开启 Vino Server(VNC Server)

先将 Vino 设置为不需要密码就可以连接。

$ gsettings set org.gnome.Vino require-encryption false

然后创建自启动描述文件

$ nano ~/.config/autostart/vino-server.desktop

自启动文件内容如下

[Desktop Entry]
Type=Application
Name=Vino VNC server
Exec=/usr/lib/vino/vino-server
NoDisplay=true

参考来源

2. 安装 Cockpit(网页管理前端)

这里我直接选用 45Drives 的仓库,因为要用到他们家的 Samba/NFS 共享管理插件。

$ curl -sSL https://repo.45drives.com/setup | sudo bash
$ sudo apt install cockpit cockpit-file-sharing cockpit-zfs-manager

cockpit-zfs-manager 会自动安装一个 znapzend(ZFS 自动快照服务),不需要的话可以关掉,否则系统会报告服务启动失败。

$ sudo systemctl disable znapzend.service

安装之后就可以使用 http://localhost:9090/ 来管理服务器了。

3. 修正 mpt2sas 启动参数

基本上所有基于 mpt2sas 的 HBA 卡都会存在启动失败的问题,需要限制内核驱动的 queue size 设置。这是一个已知的 bug

首先编辑 grub 配置文件

$ sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT 那一行更改为

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mpt3sas.max_queue_depth=10000"

保存后更新 grub 设置并重启。

$ sudo update-grub

4. 将用户加入 sudo 用户组

虽然从安全角度来讲,不应该给普通用户 sudo 权限,但是如果服务器只用于家庭内网,人人都是超级管理员也没什么大问题。加入 sudo 用户组之后,每次使用 sudo 提权(比如更新系统,更改权限之类的操作)就不需要再输入密码了。

# Ubuntu 20.04
$ sudo usermod -aG sudo <username>

# Ubuntu 22.04
$ echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/$USER

5. 为文件添加用户访问权限

Linux 系统中,通常情况下文件访问权限都是通过所有者和用户组来确定的。但是如果我们需要其他特殊账户(例如 www-data 或者 plex 之类的应用软件特定账户)也能访问文件,则需要通过 ACL 来赋予访问权限。

$ sudo apt-get install acl
$ sudo setfacl -R -m u:www-data:rwx /path

6. 定位硬盘

如果服务器用了支持 SES 的 SAS 背板,可以点亮硬盘对应的报警灯来定位硬盘

$ sudo apt-get install ledmon
$ sudo ledctl locate=/dev/sdk

安装驱动和软件

  1. Plex Media Server
添加新评论