UnRAID_6.9.2_6.10.3_6.12.8_配置_设置
转载注明来源: 本文链接 来自osnosn的博客,写于 2021-04-01.
之前版本的配置参考【UnRAID_6.8.2_配置_设置】
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
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
文件。
设备直通
VFIO-PCI.CFG
插件已经内置在unraid中。 插件中心提示VFIO-PCI.CFG
插件不兼容,删除即可。- 直通设备选择,在
TOOLS -> System Devices
中。 SETTINGS -> VM Manager -> ADVANCED VIEW
中PCIe ACS override:
和VFIO allow unsafe interrupts:
我没改动过,保留Disabled
和No
。
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, 不支持nfs4
参考【Deploying an unRAID NFS Server】
从 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共享主机文件】
复制/克隆 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启动,重装grub-efi,重新写入nvram。
- 如果是 OVMF(UEFI启动),去
- 如果clone的是debian。记得改一下
/etc/hostname
,/etc/hosts
,/etc/network/interfaces
改主机名,IP, 防止冲突。
wireguard 支持
- 在 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。
转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/14604549.html 来自osnosn的博客.