osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::
  106 随笔 :: 0 文章 :: 40 评论 :: 50万 阅读

UnRAID_6.9.2_6.10.3_6.12.8_7.0.0_配置_设置

转载注明来源: 本文链接 来自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
  • 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 VIEWPCIe ACS override:VFIO allow unsafe interrupts:
    我没改动过,保留 DisabledNo
  • 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_disk1host_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
  • 或在 /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,指定启动时加载。
  • 9p 共享,其实比较慢。速度还不如 scp命令。
  • 6.12.8 时,发现在vm中,打命令 df,命令会卡死,kill -9 也杀不掉。但系统没死。干脆停用9p。

kvm Virtiofs, 在KVM主机和虚拟机之间共享目录

复制/克隆 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 文件。免得下次麻烦。
      
  • 如果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。所有配置都不会丢失。

从 6.12.8 升级到 7.0.0(开心)

  • 2025-01 记录
  • 保留6.12.8的 /config/ 目录,删除其他文件和目录。
  • 把官版7.0.0的其他所有文件覆盖到u盘根目录。
  • 把 hook.so 和 unraider 复制到 /config/目录中。unraider与旧版不同,一定要覆盖。
  • 将 /config/go 脚本文件更改为以下内容:
    #!/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
    
    此版用的docker,会导致一个bug,如果拨号网关使用vm,外部设备没有问题,但内部的其他的vm将无法通过br0获取ipv6。
    见【7.0.0 beta2 虚拟机VM可能无法获得 IPv6 地址以及解决方法
    在go脚本最后加一行,临时解决这个问题,等待新版修复。go脚本是由/etc/rc.d/rc.local的最后调用执行的。
    #unraid-7.0.0 drop ipv6 FORWARD on br0 (2025-01)
    ip6tables -A FORWARD -i br0 -o br0 -j ACCEPT
    
    另有文章【UNRAID 7.0 beta2和beta3 虚拟机ipv6异常的解决】提到,
    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,也许能解决问题。
  • 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的博客.

posted on   osnosn  阅读(7281)  评论(4编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示