UnRAID_6.9.2_6.10.3_6.12.8_7.0.0_配置_设置
转载注明来源: 本文链接 来自osnosn的博客,写于 2021-04-01.
之前版本的配置参考【UnRAID_6.8.2_配置_设置】
参考
- 【老毛子UNRAID从入门到放弃——手动安装篇】
- 【unraid安装】
- 【UnRAID Server】
- 【Unraid老毛子】
- 【恩山无线论坛unRAID】,【恩山无线论坛unRAID】
- 【记录一次Unraid升级】
unraid 的 ipv6
- 6.9.1 已经是 eui64 的地址了。
不需要这行了/bin/sed -i 's/^#slaac hwaddr/slaac hwaddr/g;s/^slaac private/#slaac private/g' /etc/dhcpcd.conf
- 6.9.1 中 dhcpcd 带的参数中少了
-C resolve.conf
参数。 - 如果需要改 DUID,修改有状态的ipv6地址。用这个脚本即可。
#!/bin/bash # filename: config/modify_dhcpcd.sh # 用途: unraid-6.9.1 中 modify dhcpcd.conf , duid # 这个文件config/duid自己创建。(自定义DUID,格式)->"00:01:02:03:0d:0e:0f:cc" /bin/cp /boot/config/duid /var/lib/dhcpcd/duid if [ -f /run/dhcpcd-br0-6.pid ]; then kill $(cat /run/dhcpcd-br0-6.pid ) # 下面这行,自己在unraid中用ps命令查看,记录下参数。然后修改为你自己机器中的参数。 dhcpcd -b -q -t 10 -h myName_Tower -6 br0 fi
- 6.9.2 和 6.9.1 一样改duid。
- 6.10.3 的 dhcpcd.conf 中 duid 未启用。
所以,不能用以上的方法修改duid。暂时不打算研究这个 duid 了。
以上的modify_dhcpcd.sh
脚本停用,不使用了。 - 6.9.2 或 6.10.3 或以上,如果发现不是 eui64 的 IPv6 地址。
检查,SETTINGS -> Network Settings -> IPv6 privacy extensions: Disabled
,是不是这么设置的。
docker 的 ipv6
- 6.8.2 的配置方法继续有效。
Network Type:
为Custom: br0
, 手工指定一个 IPv4的地址。- 高级视图编辑中,
Extra Parameters:
加入参数
--sysctl net.ipv6.conf.all.disable_ipv6=0 --sysctl net.ipv6.conf.eth0.use_tempaddr=2
- 6.12 或之后,未做测试。
听说 7.0 上,docker已经支持ipv6。
unraid 的 shell 用着不习惯
- 6.9.2 和 6.10.3 还是需要通过
config/go
脚本,修改/root/.bash_profile
文件。 - 6.9.2 和 6.10.3 不需要通过
config/go
修改/root/.ssh/
内的东西。
/root/.ssh/
中的内容已经链接到 config 目录中,直接手工修改,重启不会丢失。
比如/root/.ssh/authorized_keys
文件。 - 7.0.0版 "/root/" 中的 .bash_profile .vimrc .curlrc .wgetrc 还是需要通过 go 脚本修改。
设备直通
- 6.9版
VFIO-PCI.CFG
插件已经内置在unraid中。 插件中心提示VFIO-PCI.CFG
插件不兼容,删除即可。 - 6.9 或以上,直通设备的选择和设置,在
TOOLS -> System Devices -> PCI Devices and IOMMU Groups
中。 - 虚拟机管理设置,
SETTINGS -> VM Manager -> ADVANCED VIEW
中PCIe ACS override:
和VFIO allow unsafe interrupts:
我没改动过,保留Disabled
和No
。 - 6.9 或以上,创建虚拟机时,设置了直通的设备,就会出现在虚拟机设置的下面。
Other PCI Devices
。
NFS server
- 启用 NFS支持:
SETTINGS
->NFS
->Enable NFS
= Yes - 目录的设置:
SHARES
->User Shares
-> 点击对应名称 ->NFS Security Settings
Exports
= Yes , 在 nfs 中输出这个目录。Security
= Public , /etc/exports 内容为:
"/mnt/user/share_name" -async,no_subtree_check,fsid=100 *(sec=sys,rw,insecure,anongid=100,anonuid=99,all_squash)
Security
= secure , /etc/exports 内容为:
"/mnt/user/share_name" -async,no_subtree_check,fsid=100 *(sec=sys,ro,insecure,anongid=100,anonuid=99,all_squash)
Security
= private , /etc/exports 内容为:
"/mnt/user/share_name" -async,no_subtree_check,fsid=100
Rule
中写的任何内容,都会被添加到exports的对应行,的末尾。(仅 private 时)
如,Rule 中写192.168.1.100(sec=sys,ro)
, /etc/exports 为:
"/mnt/user/share_name" -async,no_subtree_check,fsid=100 192.168.1.100(sec=sys,ro)
- unraid-6.9.1 的 NFS 只支持vers=3, 不支持NFSv4
参考【Deploying an unRAID NFS Server】 - unraid-6.10 开始支持 NFSv4。在
SETTINGS
->NFS
可以找到设置。
从 6.8.2 升级到 6.9.1
- 只需要把 6.8.2 的
config/
目录整个 copy 到 6.9.1 替换掉config/
目录即可。所有的配置,docker,VM 都会保留。 - 开心板,只需要多替换一个文件
bzroot
即可。
从 6.9.1 升级到 6.9.2(开心)
- 体积大了不少,大约900MB。(就是bzroot不同,原版141MB,变成700MB。bzroot.sha256自然也不同)
- 691的u盘中,删除 除了 config/ logs/ 两个目录之外的所有东西。
- copy 692 中除了 config/ 目录外的所有东西到u盘。
EFI-/ 目录中的减号可以不用改名。因为make_bootable.bat执行后,会自动去掉减号。 - 然后以管理员身份启动 cmd.exe , cd到u盘,执行 make_bootable.bat ,UEFI启动选择Y。显示"修改MBR拒绝访问",不用理会,忽略它。
- 执行 UnraidTool.exe 查看 U盘id,然后关闭。
- 执行 keymaker.exe u盘id ,生成 xxxxx.key
- copy xxxxx.key config/BTRS.key
- 完成。
WebUI too many login attempts
- 从6.9.2 开始有登陆次数限制。【Unraid OS 6.9.2 Release_Notes】。
规则是,连续错误3次,锁定15分钟。 - ssh 登陆上去,
cd /var/log/pwfail/ rm <ip_address> #webUI就可以登陆。
Unraid 移除硬盘不丢失配置
- 手头有块硬盘,已有分区2个,已有文件系统。分区1为FAT32,分区2为xfs。
- 接入系统后,未加入 Array 时,此硬盘的两个分区会在 Unassigned Devices 中出现,并能够手工挂载。
- 加入 Array 的 disk2,启动 Array后,显示"未格式化或不支持的文件系统"。
unraid 支持 btrfs,xfs,ReiserFS,但它不去识别分区2。无奈只好备份数据后,重新格式化。- 用 fdisk 重写分区表,把两个分区的顺序反过来,unraid 也不能在 Array 中挂载,也显示"未格式化或不支持的文件系统"。
- 在 unraid 中重新格式化之后,这个硬盘就只有一个分区了,分区格式是MBR。
- 参考:【Unraid安全移除硬盘不丢失数据】
- unraid 的 Array Devices 中配置了第二块硬盘,想拆除(数据不要了,或者已经备份)。
停止 Array 后,设置 disk2 为 no device ,显示 missing ,不让启动了。 - 这时候,需要去 Tools -> NewConfig 。
在 Preserve current assignments,选择all,则能保留所有的 vm,docker的配置。否则配置都会丢失。
然后勾选 Yes,I want to do this。然后 APPLY。- 如果
/mnt/user/system/libvirt/libvirt.img
在需要拆除的盘上。记得备份/etc/libvirt/qemu/nvram/
中的所有 nvram 文件。否则重建 vm 客户机时,无法启动。原因见下文的 "复制/克隆 vm客户机"。
- 如果
- 去 SETTINGS -> Disk Settings 设置 Enable auto start。否则重启unraid不会自动启动 Array,vm 不会启动。
spin down
- SSD 有 spin down 选项, 但没有作用。
- 机械硬盘,spin down 后,如果有访问,会马上 spin up,有半秒-1秒左右的延迟。
Unraid 的硬盘的挂载
- 仅记录一下,备忘。
- Array 中设置了两块硬盘。启动 Array 后。
分别变为(软RAID设备)/dev/md1
,/dev/md2
挂载到/mnt/disk1/
,/mnt/disk2/
目录上。
然后变成(用户态文件系统) fuse.shfs 挂载在目录/mnt/user0/
,/mnt/user/
。
这两个目录 user0,user 容量大小是一样的,似乎是两块硬盘合并到一起的总空间。 - Unassigned Devices,手工挂载后,挂载在目录
/mnt/disks/分区label名/
中。 - disk1/, disk2/ 中有的文件或目录, 在 user/, user0/ 中见到的是它们的合集。如果有同名的文件/目录,以disk1优先。
如,有 disk1/test/test.txt, disk2/test/test.txt 两个文件内容不同,user/test/test.txt 看到的是 disk1 中的。
如,有 disk1/test/test123.txt, disk2/test/test456.txt 两个文件,user/test/ 中,能看到两个文件。 - 在 unraid 的 SHARES 中,每个目录都可以指定,使用哪个硬盘。默认使用全部硬盘。
kvm 9p_fs, 在KVM主机和虚拟机之间共享目录
- 在 unraid 6.10.3 中,发现创建vm时有这个选项。6.9.2有没有,没注意到。
- 参考:
【Documentation/9psetup】,
【在KVM主机和虚拟机之间共享目录】,
【kvm 9p 文件系统映射配置】
【使用9p virtFS在宿主机和vm之间共享多个文件 sharing multiple host files with guest using 9p virtFS】 - 在 unraid 中,编辑vm,
Unraid Share:
写unraid中目录的绝对路径,比如:/mnt/disk1/domains/my_debian/disk1/
, 这个目录要自己手动创建,否则vm启动会失败。
Unraid Mount tag:
写一个tag标签,比如:/host_disk1
或host_disk1
。有没有"/"都行,有"/"好看点。 - 启动虚拟机后,用命令挂载到vm中的
/mnt/mydisk1
目录上。
mount -t 9p -o trans=virtio /host_disk1 /mnt/mydisk1
。
或mount -t 9p -o trans=virtio host_disk1 /mnt/mydisk1
。- 前提条件是,vm客户机的内核有这个支持。kernel-2.6.36.rc4或更新就有支持。
lsmod | grep 9p
显示中有9pnet_virtio
。
- 前提条件是,vm客户机的内核有这个支持。kernel-2.6.36.rc4或更新就有支持。
- 或在
/etc/fstab
中加一行, 开机自动挂载:
/host_disk1 /mnt/mydisk1 9p nofail,trans=virtio,msize=1024000 0 0
。
nofail
可以让 debian 忽略错误继续启动。- 在 Debian11 默认的挂载参数是
rw,relattime,sync,dirsync,access=client,msize=512000,trans=virtio
。 - 重启系统,如果不能自动挂载。在
/etc/modules
中增加一行9pnet_virtio
,指定启动时加载。
- 在 Debian11 默认的挂载参数是
- 9p 共享,其实比较慢。速度还不如 scp命令。
- 6.12.8 时,发现在vm中,打命令
df
,命令会卡死,kill -9 也杀不掉。但系统没死。干脆停用9p。
kvm Virtiofs, 在KVM主机和虚拟机之间共享目录
- 从6.11.1开始,就支持 virtiofs。【What's New in Unraid OS 6.11.1】
- 6.12.8 中,除了9p Mode, 还多了个 Virtiofs Mode。
据说 virtiofs 速度更快,对比 9p。
【使用 virtiofs 在主机及其虚拟机间共享文件】 - 每一个配置好的 virtiofs的"Mount Tag",在unraid系统中, 都有一个 virtiofsd 进程 提供支持。
- 文件系统 option:
noatime
和strictatime
,红帽子不建议使用在 virtiofs上。 - 命令
mount -t virtiofs /host_disk1 /mnt/mydisk1
。 - fstab
/host_disk1 /mnt/mydisk1 virtiofs nofail 0 0
。 - 参考文章,
【vitiofs 官网】,
【扔掉samba,无需通过网络,虚拟机利用virtiofs_mode共享主机文件】 - virtiofs 共享,比 9p 快。但速度还是远不如 scp命令快。
复制/克隆 vm客户机
- unraid 没有 virt-clone 命令。web管理页面没有clone功能。
- vm 客户机关机,copy vm 的磁盘文件。用新的磁盘文件,创建一个新的vm客户机。
- 如果是 OVMF(UEFI启动),去
/etc/libvirt/qemu/nvram/
中,把 nvram 也 copy 覆盖过去。否则不能启动。
因为启动入口写入了nvram中。(unraid-6.10.3测试ok) - 如果nvram丢失,是debian系统的话,看【GrubEFIReinstall】。需要用live cd或安装盘的rescue模式启动,重装grub-efi,重新写入nvram。
(2025-01记录) 在unraid-7.0.0中,重建 debian12 的vm后。 装载 debian-12.9.0-amd64-netinst.iso 到vm的配置 "OS Install ISO:" 启动 vm,打开vnc终端,按 F2,如果错过了,在efi命令行打 reset,机器会重启,再不停按 F2进入BIOS. 选择 Boot Manager -> UEFI QEMU DVD-ROM 回车启动iso光盘。 选择 Advanced options -> Rescue Mode 继续启动。 language,location,keymap,一路默认回车。 network,也是一路默认回车。 clock,默认回车 到rescue mode时,可以看到有几个分区选项。我的是 vda1,vda2,vda3, 按 ALT+F2 进入第二终端。打 fdisk -l /dev/vda 看看分区表,确定root分区,通常是最大的那个。 然后按 ALT+F1 回到原终端,选择对应的分区,我的是 vda2 如果出现"要不要挂载独立的EFI分区",选默认值"Yes"。 (失败的尝试: 选择第一项 shell on vda2,按【GrubEFIReinstall】尝试,执行 grub-install,grub-update, 重启都失败了) 选择 ReInstall GRUB boot loader 然后选择 Reboot the system. 你就发现 debian 成功进入系统了。 关掉这个vm,删掉vm配置中"OS Install ISO:"中的iso光盘。 再次启动这个vm。记得去备份nvram 文件。免得下次麻烦。
- 如果是 OVMF(UEFI启动),去
- 如果clone的是debian。记得改一下
/etc/hostname
,/etc/hosts
,/etc/network/interfaces
改主机名,IP, 防止冲突。 - 重建/clone 虚拟机,vm系统中的网卡设备名称可能会改变,注意检查。我的就从 enp5s0 变成 enp3s0。
- unraid-7.0.0 还是没有 virt-clone 命令。web管理页面开始有clone, snapshot功能。
wireguard 支持
- 从 6.10 开始,在 SETTINGS, Network Services, VPN manager,
可以设置 wireguard 通道。
我没测试。
从 6.10.3 升级到 6.12.8(开心)
- 保留6.10.3的 /config/ 目录。
- 把6.12.8的其他所有文件覆盖到u盘根目录。
- 把 hook.so 和 unraider 复制到 /config/目录中。
- 修改 /config/go 脚本。
- 把 /config/key.key 改名,或删除。(否则syslog不停有错误信息)
emhttpd: error: get_key_info, 600: Invalid argument (22): stat: /boot/config/key.key
- 保留 /config/BTRS.key 文件。
- NerdPack 不能用了,手工删除 /config/plugins/NerdPack/ 目录。
- 在APP中,安装 NerdTools,选择你想要的软件包。比如 p7,rar,tcpdump,tmux,vim.
- unassigned.devices-plus,可能要删除重装。
- 在APP中,安装 fix.common.problems,用于检查配置错误。
- 可能有 rootkit ERR。按需处理。
- 如果 docker 使用了 macvlan,则有 Macvlan and Bridging ERR。按需处理。
- 有个docker 的 Warning。在APP中,安装Docker Patch 6.12.8。否则docker 容器stop后,可能start失败。
- U盘显示 vfat,USED已用 479MB.
- unraid-6.12.8 的 KVM 升级了。
找机会,分别把所有的vm都停一次,修改vm配置,无论 Machine用 i440fx或 Q35,改为最新版的7.2,提交保存。最新版的应该更好的吧。
顺便把vm的配置都更新一遍,以防止出现兼容性问题。- i440fx 支持PCI,ISA。
Q35 支持PCI,PCI-E,无ISA。(Q35是新的架构,建议使用)。
使用i440fx的vm,直接切换到Q35会报错。(好像是xml配置,controller中 pci-root和pcie-root不同)。
应该删掉旧 vm,用原 img镜像,重新创建一个使用 Q35的 vm。所有配置都不会丢失。
- i440fx 支持PCI,ISA。
从 6.12.8 升级到 7.0.0(开心)
- 2025-01 记录
- 保留6.12.8的 /config/ 目录,删除其他文件和目录。
- 把官版7.0.0的其他所有文件覆盖到u盘根目录。
- 把 hook.so 和 unraider 复制到 /config/目录中。unraider与旧版不同,一定要覆盖。
- 将 /config/go 脚本文件更改为以下内容:
此版用的docker,会导致一个bug,如果拨号网关使用vm,外部设备没有问题,但内部的其他的vm将无法通过br0获取ipv6。#!/bin/bash export UNRAID_GUID=YOUR GUID export UNRAID_NAME=Tower export UNRAID_DATE=1654646400 export UNRAID_VERSION=Pro #export UNRAID_CLEAN=no /lib64/ld-linux-x86-64.so.2 /boot/config/unraider # Start Management Utility /usr/local/sbin/emhttp
见【7.0.0 beta2 虚拟机VM可能无法获得 IPv6 地址以及解决方法】
在go脚本最后加一行,临时解决这个问题,等待新版修复。go脚本是由/etc/rc.d/rc.local的最后调用执行的。
另有文章【UNRAID 7.0 beta2和beta3 虚拟机ipv6异常的解决】提到,#unraid-7.0.0 drop ipv6 FORWARD on br0 (2025-01) ip6tables -A FORWARD -i br0 -o br0 -j ACCEPT
用sysctl net.bridge.bridge-nf-call-ip6tables=0
禁用通过 ip6tables 过滤 IPv6 数据包的功能。我认为不好,我没有采用。 - 把 /config/BTRS.key 改名,或删除。(否则syslog不停有错误信息)
- 如果没有安装 cache盘,第一次启动后,因为cache盘设置,导致Array不会启动。
要第一时间登录 unraid,在 MAIN -> Pool Device 修改 slot 为 0,或者点击 cache,Remove Pool。
见【Unraid OS version 7.0.0 available】找"Wrong pool State. Too many wrong or missing devices" - 在APP中,安装 fix.common.problems,用于检查配置错误。
- 可能有 rootkit ERR。按需处理。
- U盘显示 vfat,USED已用 684MB. (512M的不够,要用2G或以上,我用8G的U盘)。
- unraid-7.0.0 的 KVM 升级了。
找机会,分别把所有的vm都停一次,修改vm配置,无论 Machine用 i440fx或 Q35,改为最新版的9.1,提交保存。最新版的应该更好的吧。
顺便把vm的配置都更新一遍,以防止出现兼容性问题。- i440fx 支持PCI,ISA。
Q35 支持PCI,PCI-E,无ISA。(Q35是新的架构,建议使用)。
使用i440fx的vm,直接切换到Q35会报错。(好像是xml配置,controller中 pci-root和pcie-root不同)。
应该删掉旧 vm,用原 img镜像,重新创建一个使用 Q35的 vm。所有配置都不会丢失。 - 如果有openwrt的vm,直通了网口,正常不会有问题。
如果出现找不到原因的问题。如,直通3个口,op中只见到1个设备。
可以尝试删除这个vm,用原 img镜像,重新创建这个vm,也许能解决问题。
- i440fx 支持PCI,ISA。
- SETTINGS -> Management Access 可以设置 Start page: Dashboard,指定登录进来的首页。
- SETTINGS -> VM Manager 打开 Show VM Usage,动态显示vm的cpu,内存,网络的使用情况。
- SETTINGS -> SMB 打开 Enable SMB Multi Channel,设置这项需要 Stop Array 才能修改。
- 创建 VM,关于 vDisk Bus中,Discard 可以使用 "Unmap(Trim)" 选项,优化虚拟磁盘的读写。
- SETTINGS -> Outgoing Proxy Manager 可以为unraid本身设置代理。不影响docker和vm。
更换U盘
- unraid-7.0.0 更换U盘。
- 容量大于等于1G,小于等于32GB。如果是64GB可能导致make_bootable失败。
- 确定u盘 是 FAT32文件系统。
- 把卷标名改为"UNRAID",全部大写。
- 把unraid-7.0.0 备份解压到u盘根目录。
- 在win中以系统管理员身份打开 cmd.exe 执行 make_bootable.bat (好像这步不做,也能启动)
- 执行UnraidTool 仅仅查看u盘的guid,
- 修改 /config/go 中对应的guid
- /config/go中有无 export UNRAID_CLEAN=no,都可以。
- /config/Pro.key 可删可不删。反正启动后Pro.key 会被重写。
- /config/中的 *.bak 文件可以删除。
- 完成。
- 如果启动后,Pro.key没被重写/没有生成,unraid会出现missing key,未注册。
我碰到的情况是U盘的序号太长而不支持(sandisk-32GB)。
查看u盘序号,用u盘启动后,登录unraid的管理网页,打开终端界面。
执行udevadm info /dev/sda | grep SERIAL
查看 "ID_SERIAL_SHORT=" 这一行,就是序号。已知的是120个字符的序号,7.0.0不行。 - 论坛中有反馈这个bug,后续给出一个修复版的unraider。
使用这个序号超长的u盘,用这个修复版unraider替换 /config/unraider,删除 /config/Pro.key。
用这个u盘启动,会生成一个新的 BTRS.key ,然后一切都正常了。
这个修复版unraider确实能用。
- unraid-6.12 更换u盘,长序号(120个字符)的u盘也没有问题。
转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/14604549.html 来自osnosn的博客.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具