6.10.0 Summary of Changes and New Features
As always, prior to updating, create a backup of your USB flash device: "Main/Flash/Flash Device Settings" - click "Flash Backup".
[rc3] Plugin Authors: We patched the upgradepkg script to prevent it from replacing an installed package with an earlier version of the same package, i.e., no downgrading. If a plugin really needs to replace a package with a downgraded version it can include the '--reinstall' option.
Also be sure to check out the Dynamix File Manager plugin available now through Community Apps!
UPC and My Servers Plugin
The most visible new feature is located in the upper right corner of the webGUI header. We call this the User Profile Component, or UPC. The UPC allows a user to associate their server(s) and license key(s) with their Unraid Community forum account, also known as an Unraid.net account.
Starting with this release, it will be necessary for a new user to either sign-in with existing forum credentials or sign-up, creating a new account via the UPC in order to download a Trial key. All key purchases and upgrades are also handled exclusively via the UPC.
Signing-in provides these benefits:
- My Servers Dashboard - when logged into the forum a new My Servers menu item appears. Clicking this brings up a Dashboard which displays a set of tiles representing servers associated with this account. Each tile includes a link to bring up the servers webGUI on your LAN. Install the My Servers plugin to provide real-time status and other advanced features (see below).
- Notification of critical security-related updates. In the event a serious security vulnerability has been discovered and patched, we will send out a notification to all email addresses associated with registered servers.
- Posting privilege in a new set of My Servers forum boards.
- No more reliance on email and having to copy/paste key file URLs in order to install a license key - keys are delivered and installed automatically to your server.
Once a license key has been provisioned, it is not necessary to remain signed-in, though there is no particular reason to sign-out.
My Servers Plugin
My Servers is what we call our set of cloud-based or cloud-enabled services and features that integrate with your Unraid server(s). Once installed here are some of the features of My Servers:
- Real-time Status - with the plugin installed each server tile on the My Servers Dashboard will display real-time status such as whether the server is online or offline, storage utilization and other information.
- Remote Access link - if enabled, a link is displayed on the My Servers Dashboard to bring up a server webGUI remotely and over the Internet.
- Automatic Flash Backup - every registered server is provided with a private git repo initially populated with the contents of your USB flash boot device (except for certain files which contain private information such as passwords). Thereafter, configuration changes are automatically committed. A link is provided to download a custom zip file that can be fed as input to the USB Flash Creator tool to move your configuration to a new USB flash device.
My Servers is an optional add-on, installed through Community Apps or via direct plugin URL. Detailed instructions can be found here.
If you have installed the My Servers plugin, signed-in servers will maintain a websocket connection to a cloud-based Lime Technology proxy server for the purpose of relaying real-time status.
- It is now mandatory to define a root password. We also created a division in the Users page to distinguish root from other user names. The root UserEdit page includes a text box for pasting SSH authorized keys.
- For new configurations, the flash share default export setting is No.
- For all new user shares, the default export setting is No.
- For new configurations, SMBv1 is disabled by default.
- For new configurations, telnet, ssh, and ftp are disabled by default.
- We removed certain strings from Diagnostics such as passwords found in the 'go' file.
Both libvirt and qemu have been updated. In addition, qemu has been compiled with OpenGL support, and [rc2] ARM emulation (experimental).
[rc2] To support Windows 11 which requires TPM and Secure boot, we have added TPM emulation; and, added a "Windows 11" VM template which automatically selects TPM-aware OVMF bios. Also, here are instructions for upgrading a Windows 10 VM to Windows 11. Special thanks to @ich777 who researched and determined what changes and components were necessary to provide this functionality.
The built-in Firefox browser available in GUI-mode boot is built as an AppImage and located in the bzfirmware compressed file system image. This saves approximately 60MB of RAM.
The Wireguard plugin has been integrated into webGUI, that is, no need for the plugin. If you had the plugin installed previously, it will be uninstalled and moved to the "Plugins/Plugin File Install Errors" page. No action is needed unless you want to press the Delete button to remove it from that page. Your WireGuard tunnels and settings will be preserved.
Simplified installation of the Community Apps plugin. The webGUI automatically includes the Apps menu item, and if CA is not already installed, the page offers an Install button. No need to hunt for the plugin link.
[rc3] Moving to Let's Encrypt wildcard SSL certificates.
Starting with this release, we no longer issue new single-host SSL certificates (which we're calling legacy certificates). Instead, all new Unraid.net SSL certificates are wildcard certificates (still provided by Let's Encrypt). In order to provision a new wildcard certificate, or upgrade a legacy certificate, you must be signed-in to Unraid.net. You do not need to be signed-in however, to have either type of certificate automatically renewed when it is within 30 days of expiration.
The URL used to access your server making use of a wildcard certificate has this form:
- [lan-ip] is your severs LAN IP address with dots changed to dashes
- [hash] is a 40-character hex string (160 bits) unique to this server (and different from similar [hash] in legacy certificates)
We added a new DDNS server which listens at "myunraid.net". This server extracts [lan-ip] from the domain name and returns the IP address where the dashes are changed back into dots. There are several benefits to this approach for both our users and for us:
- Eliminates DNS propagation delays when you first provision a certificate or when a server LAN IP address (or WAN IP address) changes. Since the domain name includes the IP address, any IP address change also changes the domain name, hence will not be contained in any intermediate DNS cache. We also changed the TTL from 1 hour to 7 days further reducing overhead and alleviating issues where someone's internet goes down for brief periods.
- Improves privacy because your remote access WAN IP address can't be determined by simply prepending "www" to your local access URL.
- Moves DNS functionality off the 'unraid.net' domain and isolates it on 'myunraid.net' domain.
In previous releases code that provisions (allocates and downloads) an Unraid.net SSL certificate would first test if DNS Rebinding Protection was enforced on the user's LAN; and, if so, would not provision the certificate. Since there are other uses for a LE certificate we changed the code so that provision would always proceed. Next, we changed the logic behind the Auto selection of "Use SSL/TLS" setting on the Management Access page. Now it is only possible to select Auto if both a LE certificate has been provisioned and DNS Rebinding Protection is not enforced. This is a subtle change but permits certain My Servers features such as Remote Access.
Upon upgrading, you will need to modify any server bookmarks with new the URL; however, if you server is signed-in to Unraid.net then the My Servers dashboard maintains the correct Local Access URL for each of your servers.
More information including use cases may be found in Documentation here.
In-tree GPU drivers are now loaded by default if corresponding hardware is detected:
These drivers are required mostly for motherboard on-board graphics used in GUI boot mode. Loading of a driver can be prohibited by creating the appropriate file named after the driver:
echo "blacklist i915" > /boot/config/modprobe.d/i915.conf
Alternately, the device can be isolated from Linux entirely via the System Devices page. Note that in Unraid OS 6.9 releases the in-tree GPU drivers are blacklisted by default and to enabling loading a driver you need to create an empty "conf" file. After upgrading to Unraid OS 6.10 you may delete those files, or leave them as-is. This change was made to greatly improve the Desktop GUI experience for new users.
Added support for Intel GVT-g, which lets you split your Intel i915 iGPU into multiple virtual GPUs and pass them through to multiple VMs, using @ich777's Intel-GVT-g plugin.
Added support for gnif/vendor-reset. This simplifies @ich777's AMD Vendor Reset plugin which permits users to get their AMD video cards to reset properly.
[rc2] Added so-called "add-relaxable-rmrr-5_8_and_up.patch" modified for our kernel
Thanks to @ich777 for pointing this out.
[rc2] Enabled additional ACPI kernel options
[rc2] Updated out-of-tree drivers
[rc2] Enabled TPM kernel modules (not utilized yet) - note this is for Unraid host utilizing physical TPM, not emulated TPM support for virtual machnes.
Virtually the entire base package set has been updated.
[rc2] For SMB: Samba version 4.15 SMB3 multi-channel is no longer marked "experimental" and is enabled by default.
[rc2] Per request we added the mcelog package. With inclusion of this package, if you have an AMD processor you may see this error message in the system log:
mcelog: ERROR: AMD Processor family 23: mcelog does not support this processor. Please use the edac_mce_amd module instead.
We're not sure what to make of this. It appears mcelog is being deprecated in favor of rasdaemon. This is something we need to research further.
Other improvements available in 6.10, which are maybe not so obvious to spot from the release notes and some of these improvements are internal and not really visible:
Event driven model to obtain server information and update the webGUI in real-time
- The advantage of this model is its scalability. Multiple browsers can be opened simultaneously to the webGUI without much impact
- In addition stale browser sessions won't create any CSRF errors anymore
- People who keep their browser open 24/7 will find the webGUI stays responsive at all times
- [rc3] Consistent state information is maintained across all browser instances open to a particular server
- Docker labels are added to allow people using Docker compose to make use of icons and GUI access
- Look at a Docker 'run' command output to see exactly what labels are used
Docker custom networks
- A new setting for custom networks is available. Originally custom networks are created using the macvlan mode, and this mode is kept when upgrading to version 6.10
- The new ipvlan mode is introduced to battle the crashes some people experience when using macvlan mode. If that is your case, change to ipvlan mode and test. Changing of mode does not require to reconfigure anything on Docker level, internally everything is being taken care off.
Docker bridge network (docker0)
- docker0 now supports IPv6. This is implemented by assigning docker0 a private IPv6 subnet (fd17::/64), similar to what is done for IPv4 and use network translation to communicate with the outside world
- Containers connected to the bridge network now have both IPv4 and IPv6 connectivity (of course the system must have IPv6 configured in the network configuration)
- In addition several enhancements are made in the IPv6 implementation to better deal with the use (or no-use) of IPv6
- The plugins page now loads information in two steps. First the list of plugins is created and next the more time consuming plugin status field is retrieved in the background. The result is a faster loading plugins page, especially when you have a lot of plugins installed
- The dashboard has now two graphs available. The CPU graph is displayed by default, while the NETWORK graph is a new option under Interface (see the 'General Info' selection)
- The CPU graph may be hidden as well in case it is not desired
- Both graphs have a configurable time-line, which is by default 30 seconds and can be changed independently for each graph to see a longer or shorter history.
- Graphs are updated in real-time and are useful to observe the behavior of the server under different circumstances
- [rc3] You can now split a parity check into smaller pieces and let it run over multiple days or weeks. For example a check can be performed in a time frame of 01:00am to 06:00am for several days in a row until it is completed. This way a long parity check won’t interfere with the normal day activities, like watching a movie.
- [rc3] Added ability to schedule pool 'balance' and 'scrub' operations and calculate whether a full balance is recommended.
- We switched to a better-maintained version of the WSD server component called wsdd2 in an effort to eliminate instances where the wsd daemon would start consuming 100% of a CPU core. [rc2] Automatically restrict wsdd to listen only at the primary network interface (br0, bond0, or eth0, depending on config).
- Fixed issue where you couldn't create a docker image on a share name that contains a space.
- Fixed issue where 'mover' would not move to a pool name that contains a space.
- Fixed issue in User Share file system where permissions were not being honored.
- We increased the font size in Terminal and [rc2] fixed issue with macOS Monterey.
- [rc2] Fixed jumbo frames not working.
[rc2] sysctl: handle net.netfilter.nf_conntrack_count max exceeded (increase setting to 131072) - hattip to Community Member @DieFalse
[rc2] Mover will create '.partial' file and then rename upon completion.
[rc2] Check bz file sha256sums at boot time.
[rc3] Fixed bug found by @thohell where md_sync_limit was not being honored to limit stripe_head cache usage when other I/O is active. The effect of this fix is to drastically slow down parity operations if other I/O is happening (such as streaming a video). Throttling of parity sync operations can be adjusted by changing the 'Settings/Disk Settings/Tunable (md_sync_limit)' value.
[rc3] Fixed btrfs pool device replace corner cases. Important note: if you 'unassign' a device from a btrfs multiple-device pool, and that device is still physically present, upon array Start we will erase the LUKS header on the device if present, and delete the partition structure, thereby effectively erasing all the data contained on the device. This is necessary in order to convince btrfs to no longer use the device and to free it for assignment to another pool.
[rc3] For cookies managed by webGUI, changed sameSite cookie attribute from 'strict' to 'lax'. This change was made to solve an issue with Terminal window not opening in Safari.
Special thanks to all our beta testers and especially:
@bonienl for his continued refinement and updating of the Dynamix webGUI.
@Squid for continued refinement of Community Apps and associated feed.
@dlandon for continued refinement of Unassigned Devices plugin and patience as we change things under the hood.
@ich777 for assistance and passing on knowledge of Linux kernel config changes to support third party drivers and other kernel-related functionality via plugins.
@SimonF for refinements to System Devices page and other webGUI improvements. We intend to merge your mover progress changes during this RC series.
@thohell for an extra set of eyes looking at md/unraid driver and for work-in-progress of adding changes to support multiple Unraid arrays.
Version 6.10.0-rc3 2022-03-09 (vs. 6.10.0-rc2)
- bash: version 5.1.016
- bind: version 9.16.24
- btrfs-progs: version 5.15.1
- ca-certificates: version 20211216
- cryptsetup: version 2.4.3
- curl: version 7.81.0
- e2fsprogs: version 1.46.5
- ethtool: version 5.15
- freetype: version 2.11.1
- gawk: version 5.1.1
- git: version 2.34.1
- glib2: version 2.70.2
- gtk+3: version 3.24.31
- harfbuzz: version 3.2.0
- haveged: version 1.9.16
- htop: version 3.1.2
- intel-microcode: version 20220207
- iproute2: version 5.15.0
- iputils: version 20211215
- kernel-firmware: version 20220228_ee0667a
- libX11: version 22.214.171.124
- libdrm: version 2.4.109
- libevdev: version 1.12.0
- libgpg-error: version 1.43
- libjpeg-turbo: version 2.1.2
- libnftnl: version 1.2.1
- libtasn1: version 4.18.0
- libvirt: version 7.10.0
- mcelog: version 180
- nano: version 6.0
- nginx: version 1.21.5 with nchan: version 1.2.15
- oniguruma: version 126.96.36.199
- openssl: version 1.1.1m
- openssl-solibs: version 1.1.1m
- pcre2: version 10.39
- php: version 7.4.28 (CVE-2021-21708)
- qemu: version 6.2.0
- samba: version 4.15.5 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336)
- sg3_utils: version 1.47
- sqlite: version 3.37.2
- wayland: version 1.20.0
- wsdd2: version 20111022
- xauth: version 1.1.1
- xfsprogs: version 5.13.0 build 2
- xorg-server: version 1.20.14
- xterm: version 370
- xxHash: version 0.8.1
- zstd: version 1.5.1
- version 5.15.27 (CVE-2022-0847)
- CONFIG_ISCSI_TCP: iSCSI Initiator over TCP/IP (per Community Member @ich777)
- oot: md/unraid: version 2.9.21
- fix: md_sync_limit was being ignored
- diagnostics: add bz*.sha256 values
- diagnostics: Improved anonymization
- diagnostics: Anonymize mover
- diagnostics: better package listings in folders.txt
- diagnostics: do not anonymize 169.254.x.x addresses
- emhttpd: use shfs ioctl to invalidate shfs cached share info when share cfg changes
- emhttpd: fix incorrect handling of unassigned device read/write counters
- emhttpd: fix sometimes wrong device name assigned to hotplugged unassigned devices
- emhttpd: fix btrfs-replace case
- rc.nginx: change fastcgi_read_timeout from 120s to 640s
- rc.nginx: remove ttyd side-loading
- rc.nginx: support LE wildcard certs
- rc.nginx: self-signed cert subject OU change from "unRAID" to "Unraid"
- upgradepkg: do not upgrade if existing package is newer
- webgui: Docker: fix overlapping container ID display
- webgui: Docker: fixed template removal when no containers exist
- webgui: Do not highlight false positive ERST error
- webgui: VMs: automatically update virtio-win iso list
- webgui: Allow CA to get all docker info without having to download icons if not present
- webgui: Docker: fixed filetree sometimes not visible
- webgui: Docker: add time unit in settings
- webgui: Plugin manager: fix branch select gets unnecessary disabled
- webgui: require sign in to provision cert
- webgui: refactor UpdateDNS.php: anonymize verbose output by default, other improvements
- webgui: Use ttyd for logging windows
- webgui: Add new setting "Terminal font size"
- webgui: Fix missing csrf-token in Notify
- webgui: VM: fix missing path selection (for GPU firmware file)
- webgui: Docker: Support ReadMe in context menus
- webgui: Relax SMART detection logic
- webgui: Fix CPU model sometimes not present
- webgui: Dashboard: fix bar color when disk thresholds are disabled
- webgui: Update GUI with latest helptext
- webgui: Update FileTree.php
- webgui: Updated bitstream font to support more languages
- webgui: Fixed parity duration + speed when paused/resumed
- webgui: Added: Cumulative parity check. This allows a parity check to be divided over multiple time windows.
- webgui: ContextMenu: added option "button": defaults to "left" (current behavior), other options are "right" and "both"
- webgui: Docker: optimized contextmenu
- webgui: VMs: optimized contextmenu
- webgui: Fixed comments field only for selected disks
- webgui: Open terminal window with dynamic size
- webgui: Docker: remove close button in popup windiow
- webgui: Docker: update window uses color of selected theme
- webgui: Fixed: speed calculation of parity check
- webgui: Fixes and enhancements in Browse function
- webgui: remove(upc): usage of sendCrashInfo
- webgui: Move Start button below encryption field
- webgui: Limit popup window width on ultrawide monitors
- webgui: NFS: fix copying of hostList after READ operation
- webgui: Expand ipaddr() with protocol: protocol defaults to ipv4 in case of ipv4 + ipv6
- webgui: Nchan: Use multiplexed channels and add error reporting
- webgui: Docker: Do not update installed user templates
- webgui: Docker: fix GUI may hang when multiple screens are opened
- webgui: Docker: fix spinner will not disappear after attempting to uninstall a non-existent container
- webgui: Updated help text for Display settings and Docker
- webgui: Docker utilization warning only when image file
- webgui: Validate destination of VirtIO ISO downloads
- webgui: Use tabbed view for device information page
- webgui: System info: fix translation
- webgui: CSS minor corrections
- webgui: Fixed: VM 9p add share issue
- webgui: Parity check: re-introduce Done button when finished
- webgui: css scrollbar enhancements
- webgui: Always show "WebUI" for user specified URLs
- webgui: Docker: Handle edge case involving browser back button when within CA in certain unlikely circumstances
webgui: Parity operation enhancements:
- Separate Parity-Sync and Data-Rebuild as individual actions
- Add parity operation action to history view
- Correct calculations for data-rebuild smaller than parity
- Add disk clear action
- Use Nchan updates for copying/clearing progress
- CSS adjustment in SMART attributes
- Show additional buttons in Array Stopped state
- Textual enhancements
- Added "size" column to parity history
- webgui: Dashboard: separate cpu details and graph view
- webgui: Better array sync when multiple sessions are opened
- webgui: Enable/Disable SMART extended test depending on spin down delay setting
- webgui: Fixed: spinner stays visible after docker command
- webgui: Fixed: buttons not working in device info when no device is present
- webgui: Fixed: race condition when array is stopped and device assignments are changed
- webgui: VM editor style update
- webgui: Fixed: parity history sometimes wrongly processed
- webgui: BTRFS balance and scrub scheduler
- webgui: Change Dashboard Parity status to be invalid and not emulated.
- webgui: Improved background process detection and handling
- webgui: jQuery: version 3.6.0
- webgui: DisplaySettings: add "showBannerGradient"