6.9.0
版本 6.9.0 2021-02-27
新功能摘要
多个池
该功能允许您定义多达35个命名的池,每个池最多包含30个存储设备。池通过主页创建和管理。
- 注意:预6.9.0 缓存磁盘/池现在只是一个名为 "cache" 的池。当您升级定义了缓存磁盘/池的服务器时,
config/disk.cfg的备份将保存到config/disk.cfg.bak,然后缓存设备分配设置将从config/disk.cfg移到一个新文件config/pools/cache.cfg中。如果以后您恢复到一个预6.9.0 的 Unraid OS 版本,您将丢失您的缓存设备分配,必须手动重新分配设备到缓存。只要您重新分配了正确的设备,数据应该会保持不变。
创建用户共享或修改现有用户共享时,您可以指定与该共享关联的池。指定的池功能与当前缓存池操作相同。
需注意的是:当获取共享的目录列表时,Unraid 数组磁盘卷和所有包含该共享的池将按以下顺序合并。
分配给共享的池
disk1
:disk28
所有其他的池在 [strverscmp()](https://man7.org/linux/man-pages/man3/strverscmp.3.html) 顺序中。
单设备池可以格式化为 xfs、btrfs 或(已弃用的)reiserfs。多个设备池只能格式化为 btrfs。未来版本将支持多个 "Unraid 数组" 池,以及其他一些池类型。
- 注意:需要注意的其他问题:假设您有一个2设备的 btrfs 池。这就是 btrfs 所称的 "raid1",而大多数人会理解为 "镜像磁盘"。这在很大程度上是正确的,因为相同的数据存在于两个磁盘上,但不一定是块级相同的。现在假设您创建了另一个池,并且您从现有的2设备 btrfs 池中取消分配一个设备,并将其分配给这个池。这样您就有了两个单设备 btrfs 池。在阵列启动时,用户可能会认为现在有两个具有相同数据的池。然而,情况并非如此。Unraid OS 看到某设备从现有多设备池中被移除后,在阵列启动时会对该设备执行一个
wipefs,这样在挂载时它不会包含在旧池中。当然,这实际上会删除移动设备上的所有数据。
额外的 btrfs 平衡选项
多个设备池仍然默认使用 btrfs raid1 配置文件创建。如果池中有 3 个或更多设备,您现在可以重新平衡到 raid1c3 配置文件(在不同设备上的 3 个数据副本)。如果您在一个池中有 4 个或更多设备,您现在可以重新平衡到 raid1c4(在不同设备上的 4 个数据副本)。我们还修改了 raid6 平衡操作,将元数据设置为 raid1c3(以前是 raid1)。
然而,我们注意到将其中一个平衡过滤器应用于完全空的卷后,会留下带有先前配置文件的数据区块。解决方案是简单地再次运行相同的平衡。我们认为这是一个btrfs错误,如果没有解决方案,我们将默认添加第二个平衡。目前,保持不变。
SSD 1 MiB 分区对齐
我们添加了另一种分区布局,其中分区1的开始对齐在1 MiB边界。这意味着,对于呈现512字节扇区的设备,分区1将从扇区2048开始;对于具有4096字节扇区的设备,从扇区256开始。这种分区类型现在用于格式化所有未格式化的非旋转存储(仅此)。
尚不清楚1 MiB 对齐带来的好处。对一些 SSD 设备,您看不到任何不同;对其他设备,可能会有较大性能差异。LimeTech 不建议重新分区现有的 SSD 设备,除非您有强烈的理由这样做(或者您的强迫症无法让您静下心来)。
要重新分区SSD,必须先清除设备上的现有分区结构。当然,这将擦除设备上的所有数据。或许最简单的方法是,在阵列停止时,识别要清除的设备,并使用'blkdiscard'命令:
blkdiscard /dev/xxx # 例如 /dev/sdb 或 /dev/nvme0n1 等
警告:请确保您键入了正确的设备标识符,因为设备上的 所有数据将丢失!
在下次阵列启动时,设备将显示为未格式化,因为现在没有分区结构,Unraid OS 将创建它。
- 注意:如果您想要重新分区基于SSD的缓存磁盘/池并保留数据,请考虑在Unraid社区论坛上发帖,以获得对于您特定配置的帮助。同时参考在预发布版板块的这篇帖子。
SMART 处理和存储阈值警告
有一个名为config/smart-one.cfg的配置文件,其中存储了与SMART相关的信息,例如,提供给smartctl的控制器类型用于获取SMART信息。从这个版本开始,这些配置设置的处理方式有所不同。
在SMART配置的情况下,设置是按照设备ID保存的,而不是按槽位ID。这允许我们为未分配的设备管理SMART。它还允许SMART配置“跟随设备”,无论其被分配到哪个槽位。然而,这意味着您必须手动为所有与默认不同的设备重新配置SMART设置。
卷警告和关键空间阈值设置已从此配置文件中移除,现保存在 config/disk.cfg(适用于 Unraid 数组)中,以及每个池的池配置文件中。意味着您必须手动重新配置所有与默认设置不同的卷。
升级后,您可能会收到通知,例如:注意 [TOWER] - 磁盘 1 返回到正常利用水平。如上所述,您所有的SMART配置设置均已重置为默认值。访问设置 -> 磁盘设置查看默认值,并在主页 -> 磁盘 X -> 设置上覆盖个别磁盘。
更好的模块/第三方驱动支持
请记住,我们将Linux模块和固件分发在独立的squashfs文件中,并在/lib/modules和/lib/firmware上以只读方式挂载。我们现在在每个挂载点上设置一个overlayfs,使得能够使用插件系统安装第三方模块,前提是这些模块针对当前运行的内核版本构建。此外,我们在USB闪存启动设备上定义了一个新目录config/modprobe.d,其内容在引导序列中的早期阶段复制到/etc/modprobe.d,在Linux内核加载任何模块之前。
这种技术用于安装 Nvidia 驱动程序(请参阅下文),社区开发人员也可使用它来提供一种更简便的方法来添加不包括在基本 Unraid OS 中的模块:无须构建自定义 bzimage、bzmodules、bzfirmware 和 bzroot 文件!
向模块传递参数
config/modprobe.d 中的 conf 文件可以用来指定选项并向模块传递参数。
举个例子:目前,我们没有UI支持指定哪个网络接口应该"主"用于bond;绑定驱动程序只是默认选择第一个成员。在某些配置中,可能需要指定一个明确的首选接口,例如,如果您有一个包含1Gbit / s(eth0)和10Gbit / sec(eth1)接口的bond。
由于设置绑定涉及加载绑定内核模块,您可以通过这种方法指定哪个接口设置为主接口:
在闪存上创建一个文件:config/modprobe.d/bonding.conf,其中包含这一行,然后重启:
options bonding primary=eth1
重启后,您可以通过键入此命令来检查它是否有效:
cat /proc/net/bonding/bond0
您应该可以看到选择的接口显示为 "主要从属设备"。
Nvidia 驱动程序
创建挂载在 /lib/modules 和 /lib/firmware 上的 squashfs 叠加层的目的是提供一个集成第三方驱动程序到 Unraid OS 的机制而无需定制 bz* 文件构建。最受欢迎的第三方驱动之一是 Unraid OS 所需的 Nvidia 的 GPU Linux 驱动程序。此驱动程序是 Docker 容器中转码能力所需的。作为 Unraid OS 插件提供此驱动程序需要设置开发环境、编译驱动程序和工具,然后解压 bzmodules,添加驱动程序,创建新的 bzmodules,最后替换到 USB 闪存根目录。这项工作由社区成员 [@chbmb](https://forums.unraid.net/profile/6219-chbmb/)、\[@bass_rock\](https://forums.unraid.net/profile/78406-bass_rock/) 和其他人完成。在他们的基础上,成员 [@ich777](https://forums.unraid.net/profile/72388-ich777/) 我们现在创建了与每个新的 Unraid OS 版本对应的独立 Nvidia 驱动程序包,但该包不直接包含在基本 bz* 分发版本中。
可以在此处下载描述支持每个内核版本的驱动程序版本的 JSON 文件:
https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json
每个驱动程序包包括Nvidia Linux GPU驱动程序和一组容器工具。容器工具包括:
nvidia-container-runtime
nvidia-container-toolkit
libnvidia-container
这些工具有助于在Docker容器中实现加速转码。感谢社区成员@ich777的帮助和提供这些工具。@ich777还提供了一个方便的插件,方便安装正确的驱动程序。
通过插件系统将第三方模块纳入 Unraid OS 仍在进行中。例如,另一个候选者将是用英特尔的自定义 Linux 驱动程序替换 Linux 内核树中的英特尔以太网驱动程序。
Docker
现在可以为相同类型的多个容器选择不同的图标。此更改需要重新下载所有已安装的docker应用程序的图标。初次加载仪表板或Docker选项卡时可能会有延迟,这是预料之中的,直到容器显示出来。
我们还做出了一些更改以增加为Docker引擎分配存储的灵活性。这可以通过设置/ Docker设置/ Docker数据根设置来配置。这让您可以选择如何保留Docker永久状态(图像层):
- 在btrfs格式化的vdisk中,通过loopback挂载到/var/lib/docker。在这种情况下,图像文件的名称必须是'docker.img'。
- 在xfs格式化的vdisk中,通过loopback挂载到/var/lib/docker。在这种情况下,图像文件的名称必须是'docker-xfs.img'。
- 在指定的目录中,通过bind挂载到/var/lib/docker。此外,该目录所在的文件系统必须是btrfs或xfs。
Docker 将在 btrfs 格式化的 vdisk/目录中使用 "btrfs" 存储驱动程序,或在 xfs 格式化的 vdisk/目录中使用 "overlay2" 存储驱动程序。
实现如下:首先,rc.docker将检测挂载在/var/lib/docker的文件系统类型。我们现在支持btrfs或xfs,并相应地设置docker存储驱动程序。
接下来,mount_image修改以支持通过环回文件格式化的文件,格式可以是btrfs或xfs,具体取决于环回文件名的后缀。例如,文件名以.img结尾,如docker.img,然后我们使用mkfs.btrfs。如果文件名以-xfs.img结尾,如docker-xfs.img,则我们使用mkfs.xfs。
此外,我们添加了将目录bind挂载的能力,而不是使用环回。如果文件名没有以.img结尾,那么代码假定这是一个目录的名称(可能在共享上)绑定到/var/lib/docker。例如,如果是/mnt/user/system/docker/docker,那么我们首先创建,在需要时,在用户分享的目录/mnt/user/system/docker/docker。如果该路径位于用户共享上,我们首先解除引用该路径以获得磁盘路径,然后绑定挂载到/var/lib/docker。例如,如果/mnt/user/system/docker/docker位于“disk1”上,我们将绑定挂载/mnt/disk1/system/docker/docker。注意:共享应为仅缓存或无缓存,以便“搬运工”不会试图移动目录,但脚本不检查此点。
虚拟化
我们整合了由用户 [@Skitals](https://forums.unraid.net/profile/97624-skitals/) 和用户 [@ljm42](https://forums.unraid.net/profile/61877-ljm42/) 提出的对工具→系统设备页面的更改。现在,您可以简单地通过勾选一些方框来从启动时隔离出 Linux 的 PCI 设备。更容易将这些设备保留给虚拟机使用。这一技术被称为 stubbing (因为一个存根或虚拟驱动程序在引导时被分配到设备上,防止真正的 Linux 驱动程序被分配)。
有些人可能想知道,如果我们可以_黑名单_个别驱动程序,为什么还需要存根这些设备来分配给虚拟机?答案是:您可以。但如果您有多个同类型设备,其中一些需要传递给虚拟机,而另一些需要安装主机 Linux 驱动程序,则必须对传递给虚拟机的设备使用存根。
注意:如果您安装了VFIO-PCI配置插件,您应该移除它,因为该功能现已集成到Unraid OS 6.9中。如果您通过修改Syslinux文件手动存根设备,请考虑切换到vfio-pci指南中描述的新方法。
多语言支持
Unraid 6.9 的另一个令人兴奋的新功能是可以下载语言包并以多种语言使用 Unraid OS。
由社区成员 [@bonienl](https://forums.unraid.net/profile/2736-bonienl/) 实施了大量工作和努力,为 Unraid OS 管理工具,也被称为 WebGUI,提供多语言支持。目前,_英语、西班牙语、法语、德语、荷兰语、阿拉伯语、简体中文、葡萄牙语和波兰语_可用,并且还有其他几种语言正在开发中。
感谢 @Squid,语言包通过社区应用程序插件进行安装 - 请查找一个名为语言的新类别。
- 注意:社区应用程序必须是最新的,以便安装语言。详情请参阅这里。
每个语言包在公共Unraid组织github仓库中可用。有兴趣的用户可以克隆并提交拉取请求以纠正翻译错误。语言翻译和PR合并由@SpencerJ管理。
有关多语言支持的更多信息,[请查看我们的指南。](https://unraid.net/blog/unraid-6-9-multi-language-support)
我们还添加了Unraid社区论坛多语言版块。
其他
GPU 驱动集成
Unraid OS现在包括选定的内置GPU驱动程序:ast(Aspeed)、i915(Intel)、amdgpu和radeon(AMD)。为了向后兼容,这些驱动程序默认通过对应的conf文件在/etc/modprobe.d中被黑名单。
/etc/modprobe.d/ast.conf
/etc/modprobe.d/i915.conf
/etc/modprobe.d/amdgpu.conf
/etc/modprobe.d/radeon.conf
这些文件中的每一个都有一行_黑名单_驱动程序,防止它被 Linux 内核加载。
可以通过在USB闪存启动设备上的config/modprobe.d目录中创建自定义conf文件来覆盖这些文件中的设置。例如,要解除对amdgpu驱动程序的黑名单,通过在终端会话中输入这个命令创建一个空文件:
touch /boot/config/modprobe.d/amdgpu.conf
此操作只需执行一次,不需要添加到go 脚本中。
在 6.9.1 中,如果您的 go 脚本包含用于 GPU 的 modprobe 命令和/或修复 /dev/dri 权限的命令,您应该移除它们:
modprobe amdgpu
chmod -R 777 /dev/dri
在 6.9.0 中,如果您使用的 docker 无法访问 GPU,请在您的 go 脚本中添加/保留此行:
chmod -R 777 /dev/dri
但请移除此行:
modprobe amdgpu
Linux 内核
我们使用的是LTS(长期支持)内核:版本 5.10.x。
启用的新内核功能:
- WireGuard 模块
- iScsi 目标模块
- USB/IP 模块
这些外部驱动已包含:
- QLogic QLGE 10Gb 以太网驱动支持(来自预备阶段)
- RealTek r8125:版本 9.003.05(为更新的 r8125 包含)
- HighPoint rr272x_1x:版本 v1.10.6-19_12_05(根据用户要求)
请注意,当我们更新 Linux 内核时,如果外部驱动无法构建,将省略这些驱动。
省略的驱动包括:
- Highpoint RocketRaid r750(无法构建)
- Highpoint RocketRaid rr3740a(无法构建)
- Tehuti Networks tn40xx(无法构建)
如果您需要其中的一个驱动程序,请创建 Bug 报告,我们将会花一些时间寻找替代方案。更好的是,请催促控制器的制造商让_他们_更新他们的驱动程序。
基础包
全部更新至最新版本。此外,已整合Linux PAM。这将允许我们在未来的版本中安装两因素认证包。
SAS 旋转控制
我们还应现在能够正确支持SAS设备的启动/停止旋转功能(终于)并通过@doron的额外帮助,我们几乎完成了。SAS设备通常为企业环境设计,其中设备停止旋转是罕见的,许多设备在围绕此功能的行为不一致。此发行版本身尚不包含内置的SAS设备旋转处理功能,但@doron提供了一个插件,我们继续解决某些令人恼火的细节。
SSH 改进
在 /etc/ssh/sshd_conf 中进行了更改以提高安全性(感谢
@Mihai 和
@ljm42 的建议):
- 只有root用户被允许通过ssh登录(请记住:Unraid OS中没有传统用户 - 只有'root')。
- 现在需要不为空的密码。要设置密码,请转到用户标签(或者根据您的配置转到设置→用户),然后选择 "root" 用户,输入复杂密码两次并按更改(而不是重置)。
- 禁用非root用户隧道
此外,在升级时,我们确保config/ssh/root目录在USB闪存启动设备上存在;并且,我们设置了一个符号链接:/root/.ssh到此目录。这意味着您可能放入的任何文件/root/.ssh在重启时都将保持持久。
因此,如果您之前已向 go 脚本中添加命令以复制 authorized_keys 和其他文件到 /root/.ssh,您应该删除这些命令,只需将文件放入 config/ssh/root,然后重新启动。
注意:如果您检查sshd启动脚本/etc/rc.d/rc.sshd,在引导时,来自config/ssh目录的所有文件将复制到/etc/ssh(但不包括子目录)。其目的是恢复主机ssh密钥;然而,这种机制也可用于定义自定义ssh_conf和sshd_conf文件。
“意外的 GSO 错误”
如果您的系统日志中充满了诸如以下的错误:
Feb 20 09:09:21 Tower kernel: tun: unexpected GSO type: 0x0, gso_size 31, hdr_len 66
您需要编辑每个VM并将以太网桥的模型类型从virtio更改为virtio-net。在大多数情况下,只需点击“表单视图”上的更新即可完成。在其他网络配置中可能需要直接编辑xml。例如:
<interface type='bridge'>
<mac address='xx:xx:xx:xx:xx:xx'/>
<source bridge='br0'/>
<model type='virtio-net'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
"noVNC 遇到了一个错误"
如果您在升级后收到 noVNC 遇到了一个错误 信息,请清除您的浏览器缓存。
AFP 支持已被移除
即使 Apple 也在逐渐弃用该协议。
为了与 macOS 的最佳互操作性,并为 Time Machine 提供一个共享,请确保 "设置/SMB 设置/增强 macOS 互操作性" 设置为 “是”。
更改日志
基本发行版
- aaa_elflibs:版本 15.0 build 27
- acl:版本 2.2.53
- acpid:版本 2.0.32
- apcupsd:版本3.14.14
- at-spi2-core:版本 2.36.1
- at:版本 3.2.1
- attr:版本 2.4.48
- avahi:版本0.8
- bash:版本 5.0.018
- beep:版本1.3
- bin:版本11.1
- bluez-firmware:版本1.2
- bridge-utils:版本 1.7
- brotli:版本 1.0.9 构建 2
- btrfs-progs:版本 5.10
- bzip2:版本1.0.8
- ca-certificates:版本 20201219
- celt051:版本0.5.1.3
- cifs-utils:版本 6.11
- coreutils:版本 8.32
- cpio:版本2.13
- cpufrequtils:版本008
- cryptsetup:版本 2.3.4
- curl:版本 7.74.0(CVE-2020-8231 CVE-2020-8286 CVE-2020-8285 CVE-2020-8284)
- cyrus-sasl:版本2.1.27
- db48:版本4.8.30
- dbus:版本1.12.20
- dcron:版本4.5
- devs:版本 2.3.1 构建 25
- dhcpcd:版本 8.1.9
- diffutils:版本 3.7
- dmidecode:版本3.3
- dnsmasq:版本 2.84(CVE-2020-25681 CVE-2020-25682 CVE-2020-25683 CVE-2020-25684 CVE-2020-25685 CVE-2020-25686 CVE-2020-25687)
- docker:版本 19.03.14
- dosfstools:版本 4.1
- e2fsprogs:版本 1.45.6
- ebtables:版本2.0.11
- eject:版本2.1.5
- elvis: 版本 2.2_0
- etc:版本15.0
- ethtool:版本 5.9
- eudev:版本 3.2.5
- file:版本 5.39
- findutils:版本 4.7.0
- flex:版本2.6.4
- floppy:版本5.5
- fontconfig: 版本 2.13.92
- freetype:版本 2.10.4
- fribidi:版本 1.0.10
- fuse3:版本 3.10.0
- gawk:版本 4.2.1
- gd:版本 2.2.5
- gdbm:版本 1.18.1
- genpower:版本1.0.5
- getty-ps:版本2.1.0b
- git:版本 2.29.1
- glib2:版本 2.66.2
- glibc-solibs:版本 2.30 构建 2
- glibc-zoneinfo:版本 2020d
- glibc:版本 2.30 构建 2
- gmp:版本 6.2.0
- gnutls:版本 3.6.15
- gptfdisk:版本 1.0.5
- grep:版本 3.4
- gtk+3:版本 3.24.23
- gzip:版本 1.10
- harfbuzz:版本 2.7.2
- haveged:版本 1.9.13
- hdparm:版本 9.60
- hostname:版本3.23
- htop:版本 3.0.2
- icu4c:版本 68.1
- inetd:版本1.79s
- infozip:版本6.0
- inotify-tools:版本 3.20.2.2
- intel-microcode:版本 20210216
- iproute2:版本 5.9.0
- iptables:版本 1.8.5
- iputils:版本 20200821
- irqbalance:版本 1.6.0
- jansson:版本 2.13.1
- jasper:版本 2.0.22
- jemalloc:版本5.2.1
- jq:版本1.6
- kernel-firmware:版本 20210211_f7915a0
- keyutils:版本 1.6.1
- kmod:版本 27
- krb5:版本 1.18.2
- lbzip2:版本2.5
- lcms2:版本 2.11
- less: 版本 563
- libX11: 版本 1.6.12
- libaio:版本0.3.112
- libarchive: 版本 3.4.3
- libcap-ng: 版本 0.8 构建 2
- libcgroup:版本0.41
- libdaemon:版本0.14
- libdrm: 版本 2.4.102
- libedit:版本 20191231_3.1
- libestr: 版本 0.1.11
- libevdev: 版本 1.10.0
- libevent:版本2.1.12
- libfastjson: 版本 0.99.8
- libffi:版本3.3
- libgcrypt: 版本 1.8.7
- libglvnd: 版本 1.3.2
- libgpg-error: 版本 1.39
- libgudev: 版本 234
- libidn: 版本 1.36
- libjpeg-turbo: 版本 2.0.5
- liblogging:版本1.0.6
- libmnl:版本1.0.4
- libnetfilter_conntrack: 版本 1.0.8
- libnfnetlink:版本1.0.1
- libnftnl: 版本 1.1.8
- libnl3:版本3.5.0
- libpcap: 版本 1.9.1
- libpciaccess:版本0.16
- libpng:版本1.6.37
- libpsl: 版本 0.21.1 构建 2
- librsvg: 版本 2.50.1
- libseccomp: 版本 2.4.3
- libssh2: 版本 1.9.0
- libssh: 版本 0.9.5
- libtasn1: 版本 4.16.0
- libtirpc: 版本 1.2.6
- libunistring:版本0.9.10
- libusb-compat: 版本 0.1.5
- libusb: 版本 1.0.23
- libuv: 版本 1.34.0
- libvirt-php: 版本 0.5.5
- libvirt: 版本 6.6.0 (CVE-2020-14339)
- libwebp: 版本 1.1.0 构建 3
- libwebsockets: 版本 3.2.2
- libx86: 版本 1.1
- libxkbcommon: 版本 1.0.1
- libxml2: 版本 2.9.10 构建 3
- libxslt: 版本 1.1.34
- libzip: 版本 1.7.3
- lm_sensors: 版本 3.6.0
- lmdb: 版本 0.9.27
- logrotate: 版本 3.17.0
- lshw: 版本 B.02.17
- lsof: 版本 4.93.2
- lsscsi: 版本 0.31
- lvm2: 版本 2.03.10
- lz4: 版本 1.9.1
- lzip: 版本 1.21
- lzo: 版本 2.10
- mc: 版本 4.8.25
- miniupnpc: 版本 2.1
- mpfr: 版本 4.1.0
- nano: 版本 5.3
- ncompress: 版本 4.2.4.6
- ncurses:版本 6.2_20201024
- net-tools: 版本 20181103_0eebece
- nettle: 版本 3.6
- network-scripts: 版本 15.0 构建 9
- nfs-utils: 版本 2.1.1
- nghttp2: 版本 1.41.0
- nginx: 版本 1.19.5 (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516)
- nodejs: 版本 13.12.0
- nss-mdns: 版本 0.14.1
- ntfs-3g: 版本 2017.3.23
- ntp: 版本 4.2.8p15 构建 3
- numactl: 版本 2.0.11
- oniguruma: 版本 6.9.1
- openldap-client: 版本 2.4.49
- openssh: 版本 8.4p1 构建 2
- openssl-solibs: 版本 1.1.1i
- openssl: 版本 1.1.1i
- p11-kit: 版本 0.23.22 (CVE-2020-29361 CVE-2020-29361 CVE-2020-29361)
- pam: 版本 1.5.1
- pango: 版本 1.46.2
- patch: 版本 2.7.6
- pciutils: 版本 3.7.0
- pcre2: 版本 10.35
- pcre: 版本 8.44
- php: 版本 7.4.15 (CVE-2019-11048 CVE-2020-7068 CVE-2020-7070 CVE-2020-7069)
- pixman: 版本 0.40.0
- pkgtools: 版本 15.0 构建 33
- pm-utils: 版本 1.4.1
- procps-ng: 版本 3.3.16
- pv: 版本 1.6.6
- qemu: 版本 5.1.0 (CVE-2020-10717, CVE-2020-10761)
- qrencode: 版本 4.0.2
- reiserfsprogs: 版本 3.6.27
- rpcbind: 版本 1.2.5 构建 2
- rsync: 版本 3.2.3
- rsyslog: 版本 8.2002.0
- samba: 版本 4.12.11 (CVE-2020-10700, CVE-2020-10704 CVE-2020-10730, CVE-2020-10745, CVE-2020-10760, CVE-2020-14303 CVE-2020-1472 CVE-2020-14318 CVE-2020-14318 CVE-2020-14318)
- sdparm: 版本 1.11
- sed: 版本 4.8
- sg3_utils:版本 1.45
- shadow: 版本 4.8.1
- shared-mime-info: 版本 2.0
- smartmontools: 版本 7.1
- spice: 版本 0.14.1
- sqlite: 版本 3.33.0
- ssmtp: 版本 2.64
- sudo: 版本: 1.9.3p2 (CVE-2021-23239 CVE-2021-23240)
- sysfsutils: 版本 2.1.0
- sysvinit-scripts: 版本 2.1 构建 35
- sysvinit: 版本 2.97
- talloc: 版本 2.3.1 构建 4
- tar: 版本 1.32
- tcp_wrappers:版本 7.6 build 3
- tdb: 版本 1.4.3 构建 4
- telnet: 版本 0.17
- tevent: 版本 0.10.2 构建 4
- traceroute: 版本 2.1.0
- tree: 版本 1.8.0
- ttyd: 版本 20200624
- usbredir: 版本 0.7.1
- usbutils: 版本 013
- utempter: 版本 1.2.0
- util-linux: 版本 2.36 构建 2
- vbetool: 版本 1.2.2
- vsftp: 版本 3.0.3 构建 7
- wget: 版本 1.20.3
- which: 版本 2.21
- wireguard-tools: 版本 1.0.20210223
- wsdd: 版本 20180618
- xev: 版本 1.2.4
- xf86-video-vesa: 版本 2.5.0
- xfsprogs: 版本 5.9.0
- xinit: 版本 1.4.1
- xkeyboard-config: 版本 2.31
- xorg-server: 版本 1.20.9 构建 3
- xterm: 版本 361
- xxHash: 版本 0.8.0
- xz: 版本 5.2.5
- yajl: 版本 2.1.0
- zlib: 版本 1.2.11
- zstd: 版本 1.4.5
Linux kernel
- 版本 5.10.19
- CONFIG_WIREGUARD:WireGuard 安全网络隧道
- CONFIG_IP_SET:IP 设置支持
- CONFIG_SENSORS_DRIVETEMP:带温度传感器的硬盘驱动器
- md/Unraid: 版本 2.9.17
- 移除 spinup 组 spinup/spindown 支持 (功能移动到 emhttpd)
- 添加可配置的同步启动偏移
- 添加 iSCSI 内核支持:\n - CONFIG_ISCSI_TARGET:Linux-iSCSI.org iSCSI 目标模式栈
- CONFIG_ISCSI_TARGET_CXGB4:Chelsio iSCSI 目标卸载驱动程序
- CONFIG_LOOPBACK_TARGET:TCM 虚拟 SAS 目标和 Linux/SCSI LDD\n fabric 回送模块
- CONFIG_NVME_TARGET:NVMe 目标支持
- CONFIG_NVME_TARGET_LOOP:NVMe 回送设备支持
- CONFIG_NVME_TARGET_PASSTHRU:NVMe 目标直通支持
- CONFIG_TARGET_CORE:通用目标核心模组(TCM)和 ConfigFS 基础设施
- CONFIG_TCM_FILEIO:TCM/FILEIO 子系统插件适用于 Linux/VFS
- CONFIG_TCM_IBLOCK:TCM/IBLOCK 子系统插件适用于 Linux/BLOCK
- CONFIG_TCM_PSCSI:TCM/pSCSI 子系统插件适用于 Linux/SCSI
- CONFIG_TCM_USER2:TCM/USER 子系统插件适用于 Linux
- 添加 USB/IP 内核支持:\n - CONFIG_USBIP_CORE:USB/IP 支持\n - CONFIG_USBIP_VHCI_HCD:VHCI hcd
- mpt3sas:添加 /etc/modprobe.d/mpt3sas-workaround.conf 以设置 "max_queue_depth=10000"
- oot: Realtek r8152: 版本 2.13.0
- oot: Tehuti tn40xx: 版本 0.3.6.17.3
- 启用额外的hwmon本地驱动程序
- 启用其他hyperv驱动程序
管理
- 移除AFP支持
- 多语言支持已添加
- 添加了多个池支持
- at: 抑制会话打开/关闭的syslog消息
- 避免向非旋转设备发送spinup/spindown信号
- btrfs: 包含'discard=async'挂载选项
- bug修复:将/etc/krb.conf重命名为/etc/krb5.conf
- 清理passwd, shadow
- dhcpcd: ipv6: 使用slaac hwaddr代替slaac private
- docker: 修正存储驱动程序分配逻辑
- docker: 支持btrfs和xfs备份文件系统
- emhtppd: 从多设备池中移除wipefs加密设备
- emhtptd: 使用文件'config/forcesync'跟踪清洁/非清洁关机
- emhttpd: 添加wipefs函数(WebGUI '擦除'按钮)
- emhttpd: 避免不必要地删除mover.cron文件
- emhttpd: 避免使用重新挂载来设置其他挂载选项
- emhttpd: Bug修复:对于非标准控制器类型没有SMART数据
- emhttpd: Bug修复:初始设备温度未显示
- emhttpd: correct 'Erase' logic for Unraid array devices
- emhttpd: 启动时在设备上启用SMART
- emhttpd: 修复自动设置,使启用用户共享的池不应导出
- emhttpd: 修复磁盘"SMART控制器类型"在读取温度时未被遵循
- emhttpd: 修复外部'smartctl -n standby'导致设备启动
- emhttpd:去掉 poll_attributes 事件
- emhttpd: 实现spinup组的spinup/spindown;添加spinup/spindown调用
- emhttpd:允许抹掉 "DISK_DSBL_NEW" 替换设备
- emhttpd:恢复 'poll_attributes' 事件调用
- emhttpd:未分配设备根据全局默认设置停止旋转
- emhttpd: 另一种btrfs'free/used'计算方法
- 修复emhttpd因导出NFS磁盘共享引起的崩溃
- 修复未旋转设备分区实际上没有对齐到1MiB
- 移除'系统'插件支持(从未使用过)
- 集成PAM
- 集成ljm42 vfio-pci脚本更改
- 环回: 根据文件名允许使用xfs或btrfs
- modprobe: 默认将GPU驱动列入黑名单,config/modprobe.d/*可以在启动时覆盖
- 所有 btrfs 卷使用 'space_cache=v2' 选项挂载
- 使用'noatime'选项挂载环回; 启用'direct-io'
- mount_image: 支持绑定挂载
- 未旋转设备分区默认对齐到1MiB边界
- 插件: 支持sha256文件验证
- rsyslog: 修复“将系统日志镜像到闪存”损坏问题
- samba: 默认禁用aio
- shfs: 移动:在同类型文件系统之间移动时保留 ioctl_iflags
- shfs:移动:支持稀疏文件
- smart-one.cfg按ID而非插槽保持SMART信息; 磁盘警告/关键配置移至磁盘/池配
- smb: 修复Ad加入问题
- smb: 移除在smb.conf中设置'aio'选项,使用samba默认
- ssh: 增加/root/.ssh到/boot/config/ssh/root目录的符号链接
- ssh: 仅允许root用户,要求密码,禁用非root隧道
- ssh: 要求密码, 禁用非root隧道
- 启动: 为/lib/modules和/lib/firmware设置overlayfs
- syslog: 配置以侦听本地主机udp端口514
- Web终端: 禁止关闭窗口时弹出警告
- Wireguard 支持: rc.wireguard: 添加iptables规则
- WebGUI: 修复dockerupdate.php警告
- WebGUI:更新状态检查
- WebGUI: 添加'Portuguese (pt)'键映射选项给libvirt
- WebGUI: 增加配置的超时,当停止容器时
- WebGUI: 添加日志查看器用于vfio-pci
- WebGUI: 添加通知代理用于Discord
- WebGUI: 在诊断中添加池信息
- WebGUI: 增加raid1c3 和raid1c4 btrfs 池平衡选项。
- WebGUI: 添加更新对话框到docker上下文菜单
- WebGUI: 增加"安全模式"一次性安全模式重启选项
- WebGUI: 在诊断中为所有池添加btrfs信息
- WebGUI: 新显示设置: 显示标准化或原始设备标识符
- WebGUI: 添加新设置 "启用用户共享分配" 给缓存池
- WebGUI:新增对具有基本身份验证或无身份验证的私有docker注册表的支持,并改善了基于令牌的身份验证
- WebGUI: 允许上传不同的图像类型,最大为512K
- WebGUI: 允许重复容器有不同的图标
- WebGUI: 在容器描述中允许markdown
- WebGUI: 将主板信息的图标从齿轮(设置)变更为信息
- WebGUI: 更改: 在访问日志时,仪表板和docker之间的一致性
- WebGUI: 仪表板: 修复缺失接口的统计信息
- WebGUI: 仪表板: 服务器图标的样式调整
- WebGUI: 检测无效会话并注销当前标签页
- WebGUI: 诊断:移除SHA256 哈希
- WebGUI: 不允许"?"出现在共享名称中
- WebGUI: 显示设置: 颜色应该是3或6字符的十六进制数字
- WebGUI: 不在添加容器列表中显示CA配置文件
- WebGUI: Docker: 允许BTRFS或XFS vdisk或文件夹位置
- WebGUI: Docker: 更直观地处理图像
- WebGUI: 修复' 出现
- WebGUI: 修复Azure / Gray切换语言被切断
- WebGUI: 修复横幅警告不重新加载页面就无法消失的问题
- WebGUI: 修复启动的虚拟机未显示在仪表板的问题
- WebGUI: 修复读取超大日志文件时崩溃(限制输出1000行)
- WebGUI:修复“忽略所有通知”功能
- WebGUI: 修复如果没有缓存池则无法更改校验计划
- WebGUI: 修复通知不断重新出现
- WebGUI: 修复如果通知存在, 无法使用右上角图标的问题
- WebGUI: 修复错误的docker运行URL引用
- WebGUI: 修复: 在iPad设备上, 仪表板/Docker滚动
- WebGUI: 修复: 正确设置samesite cookie(修复Safari上的登录问题)
- WebGUI: raid6 btrfs 池数据配置文件使用raid1c3元数据配置文件。
- WebGUI: 重新排列图标按钮
- WebGUI: 主页: 当未启用用户共享时隐藏移动按钮
- WebGUI: 多语言: 修复回归错误: 缺少必填字段指示器
- WebGUI: 多语言: 修复无法删除/编辑用户
- WebGUI: 网络设置: 显示第一个DNSv6服务器
- WebGUI: 网络: 允许零值度量以设置无默认网关
- WebGUI: 网络: 修复隐私扩展未设置
- WebGUI: 新权限: 支持多缓存池
- WebGUI: 通知: 修复白色/黑色间隙
- WebGUI: 当未挂载的卷在阵列启动时允许文件系统配置。
- WebGUI: 防止“添加”在为用户输入错误用户名时恢复为英语
- WebGUI: 防止捆绑的nics也绑定到vfio-pci
- WebGUI: 如果未定义隧道,则从仪表板中移除WG
- WebGUI: 当浏览文件过多时显示消息
- WebGUI: 支持通知上的链接
- WebGUI: 如果未安装插件则禁止仪表板上的Autofan链接
- WebGUI: 如果未定义隧道,则禁止仪表板上的WG
- WebGUI: 将诊断切换到web socket
- WebGUI: SysDevs - 离开页面无保存时警告
- WebGUI: SysDevs全面升级与vfio-pci.cfg绑定
- WebGUI: 标签式机壳选择窗口
- WebGUI: 任务插件:提供定义 Display_Name 的能力
- WebGUI: 更新 Feedback.php
- WebGUI: 更新到 version 1.4.7 的 jGrowl
- WebGUI: 更新 noVNC 到 v1.2.0
- WebGUI: 更新机箱图标
- WebGUI: 在docker上下文菜单中使用更新图像对话框进行更新输入
- WebGUI: 虚拟机管理器: 添加'virtio-win-0.1.189-1'到VirtIO-ISOs列表
- WebGUI: 虚拟机管理器: 修复: 从VM VNC图形改为GPU透传
- WebGUI: 虚拟机管理器: 添加virtio-win-0.1.190-1
- WebGUI: 虚拟机管理器: 新设置"网络模型"
- WebGUI: 虚拟机: 修复: 添加NICs或VirtFS挂载到虚拟机受限
- WebGUI: 虚拟机: 修复: 在罕见情况下vdisk默认设置为Auto而应为Manual
- WebGUI: 虚拟机: 将默认网络模型更改为virtio-net
- WebGUI: 虚拟机: 更直观地处理图像选择
- WebGUI: 如果autov()源文件不存在,避免php语法错误
- WebGUI: 更好地处理多个与vfio-pci相关的nics
- WebGUI: 修正登录表单显示错误图标
- WebGUI: 不要尝试显示导致未启动设备启动的SMART信息
- WebGUI: dockerMan: 在高级视图中允许使用更多信息
- WebGUI: dockerMan: 仅允许与docker兼容的名称
- WebGUI: dockerMan: 可选安装时启动
- WebGUI: 修复: jGrowl覆盖按钮
- WebGUI: 修复: 在服务器之间切换时弹出登录提示
- WebGUI:其他杂项改进
- WebGUI: 不应选择未启用用户共享的池作为缓存
- WebGUI: 对 tail_log 的输入进行清理
- WebGUI: 设置 'mid-tower' 默认机箱图标
- WebGUI: 支持未分配设备的磁盘唤醒/休眠和温度监控
- WebGUI: 禁用登录表单中的用户名自动完成
- WebGUI: 虚拟机管理器:保留 VNC 端口设置
- WebGUI: vnc: 添加浏览器缓存清除功能