osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

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 VIEWPCIe ACS override:VFIO allow unsafe interrupts:
    我没改动过,保留 DisabledNo

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_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启动,重装grub-efi,重新写入nvram。
  • 如果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。所有配置都不会丢失。

转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/14604549.html 来自osnosn的博客.

posted on 2021-04-01 01:08  osnosn  阅读(6466)  评论(4编辑  收藏  举报