9

在WSL2中安装openmediavault(OMV)

 3 years ago
source link: http://blog.ponder.work/2021/01/02/install-openmediavault-in-WSL2/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

NAS的文件系统一直是我比较纠结的一个点。NAS的系统基本上是基于Linux(Unix),文件系统不是ntfs,数据迁移不方便,数据恢复工具也没那么全。

WSL就完美解决了这个问题,用Linux提供服务,数据最终还是落在ntfs上,而且重要的是everything也能用上。

openmediavault(OMV)是一个基于Debian的NAS系统,而且能在原生Debian系统上自行安装,正好能够实现我们的功能。

WSL2 相关准备工作

需要安装WSL2并启用桥接网络,同时安装好Debian系统

参考本人这篇文章

安装 systemd

由于openmediavault对systemd有强依赖,而WSL的系统默认是由/init启动的,会导致安装出错
所以得先把systemd的问题解决。

经过一番google,找到了systemd-genie能够解决问题

安装 dotnet 源

systemd-genie 依赖 dotnet-runtime-5.0, 所以把dotnet源配好,参考文档

wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update

安装 systemd-genie

官网提供了安装脚本, 执行完会配置好systemd-genie源并安装

curl -s https://packagecloud.io/install/repositories/arkane-systems/wsl-translinux/script.deb.sh | sudo bash

但是安装过程中,发现systemd-genie源的访问有些问题,所以只能从gitbub下载安装

cd /tmp && wget https://github.com/arkane-systems/genie/releases/download/1.30/systemd-genie_1.30_amd64.deb
dpkg -i systemd-genie_1.30_amd64.deb
apt --fix-broken install

默认启动 systemd-genie

修改/root/.bashrc, 添加以下内容

if [[ ! -v INSIDE_GENIE ]]; then
echo "Starting genie"
exec /usr/bin/genie -s
fi

网络相关配置

主机名和网口配置重启WSL后可能会失效,建议修改配置文件来实现

修改/etc/wsl.conf,增加hostname = openmediavault

[network]
hostname = openmediavault
generateResolvConf = false

修改/etc/genie.ini,设置update-hostname为false

[genie]
secure-path=/lib/systemd:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
unshare=/usr/bin/unshare
update-hostname=false
clone-path=false
clone-env=WSL_DISTRO_NAME,WSL_INTEROP,WSLENV

注意,由于WSL的mac地址每次重启都会变,该问题暂时无法解决,参考issue
所以这里采用静态IPv4地址和DHCPv6来配置网络地址

新建/etc/systemd/network/lan.network,内容如下

[Match]
Name=eth0

[Network]
Description=lan
DHCP=ipv6
Address=192.168.123.31/24
Gateway=192.168.123.1
DNS=192.168.123.1
LLDP=true
EmitLLDP=true

然后执行执行systemctl enable systemd-networkd && systemctl start systemd-networkd

安装 openmediavault

参考官方文档

由于要安装的包比较多,建议先把Debian软件源替换成国内镜像,参考这个

  1. 添加软件源keyring

    apt-get install --yes gnupg
    wget -O "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc" https://packages.openmediavault.org/public/archive.key
    apt-key add "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc"
  2. 添加openmediavault软件源

    cat <<EOF >> /etc/apt/sources.list.d/openmediavault.list
    deb https://packages.openmediavault.org/public usul main
    # deb https://downloads.sourceforge.net/project/openmediavault/packages usul main
    ## Uncomment the following line to add software from the proposed repository.
    # deb https://packages.openmediavault.org/public usul-proposed main
    # deb https://downloads.sourceforge.net/project/openmediavault/packages usul-proposed main
    ## This software is not part of OpenMediaVault, but is offered by third-party
    ## developers as a service to OpenMediaVault users.
    # deb https://packages.openmediavault.org/public usul partner
    # deb https://downloads.sourceforge.net/project/openmediavault/packages usul partner
    EOF
  3. export LANG=C.UTF-8
    export DEBIAN_FRONTEND=noninteractive
    export APT_LISTCHANGES_FRONTEND=none
    wget -O "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc" https://packages.openmediavault.org/public/archive.key
    apt-key add "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc"
    apt-get update
    apt-get --yes --auto-remove --show-upgraded \
    --allow-downgrades --allow-change-held-packages \
    --no-install-recommends \
    --option Dpkg::Options::="--force-confdef" \
    --option DPkg::Options::="--force-confold" \
    install openmediavault-keyring openmediavault

    omv-confdbadm populate

安装 omv-extras(可选)

参考官方文档

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

配置 openmediavault

OMV里的主机名和网络配置就配置成和上面配置文件里的一样,防止OMV的服务工作异常

  1. 修改主机名,防止WSL默认主机名过长(必须小于15位),导致samba配置失败
    2021-01-02_180911

    2021-01-02_180911

  2. 打开系统 -> 网络 -> 添加 -> 以太网,配置网口ip,这里配置为DHCP自动获取
    2021-01-02_181342

    2021-01-02_181342

  3. 打开系统 -> 常规设置 -> Web管理员密码,修改管理员密码,默认密码为admin:openmediavault

共享文件夹配置

由于WSL2读写本机硬盘是使用的微软的驱动,OMV并不支持,默认只能识别到根目录的虚拟硬盘。

又因为WSL2的本地硬盘都挂载在/mnt/路径下,所以只要能将/mnt/目录共享就ok了

这里参考openmediavault-sharerootfs的实现

修改/etc/openmediavault/config.xml配置文件, 在fstab标签下增加mntent挂载点配置,修改完如下

<!--省略其他部分-->
<fstab>
<mntent>
<uuid>79684322-3eac-11ea-a974-63a080abab18</uuid>
<fsname>/dev/sdb</fsname>
<dir>/</dir>
<type>ext4</type>
<opts>errors=remount-ro</opts>
<freq>0</freq>
<passno>1</passno>
<hidden>1</hidden>
</mntent>
</fstab>

打开访问权限管理 -> 共享文件夹 -> 添加,添加D盘(/mnt/d)作为共享文件夹,然后在samba服务中就能引用这个共享文件夹了
2021-01-02_183349

2021-01-02_183349

2021-01-02_183046

2021-01-02_183046


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK