收起左侧

Unraid 虚拟机安装飞牛os,开机自动挂载unraid共享目录的方法

9
回复
3658
查看
[ 复制链接 ]

2

主题

1

回帖

0

牛值

江湖小虾

2025-2-11 20:36:20 显示全部楼层 阅读模式

Step1:Unraid下新建虚拟机,在虚拟机下面虚拟磁盘选择VirtIO,共享模式选择9p模式,在source dir表示unraid的目录,target dir表示映射的共享名字(这个名字用于在飞牛里进行挂载使用)

image.png

Step2:在飞牛os下,设置开机自动启动的命令,使用sudo nano /etc/fstab,在文件的最后一行加入以下命令。

movie /vol1/1000/movie 9p trans=virtio,version=9p2000.L,noauto,nobootwait,rw 0 0

其中movie表示的是映射的共享名字,/vol1/1000/movie表示飞牛os下需要挂载的路径,我挂载在1000这个目录下,可以在web段进行访问,9p表示挂载的格式,使用的传输协议virtio,版本9P2000.L,noauto,nobootwait这个必须要设置,负责可能会出现飞牛os无法启动的情况。

Step3:

在飞牛os下,使用命令,sudo nano /etc/systemd/system/mount-command.service

[Unit]

Description=trim file monitor service

After=rc-local.service

After=trim_main.service

[Service]

Type=oneshot

ExecStart=mount movie

User=root

[Install]

WantedBy=multi-user.target

保存

Step4:

sudo systemctl daemon-reload

Sudo systemctl enable mount-command.service

Sudo systemctl start mount-command.service

Step4:

重启以后,就可以看到在web段可以使用unraid共享文件夹了

收藏
送赞 4
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

2

回帖

0

牛值

江湖小虾

2025-2-22 13:13:55 显示全部楼层
本帖最后由 陈奕行 于 2025-2-22 13:25 编辑

感谢!我用ChatGPT生成的命令去自动挂载virtiofs模式下的共享文件总是失败,用你给出的没有问题。
我简单补充一下方法:


step1  

输入


  1. sudo nano /etc/fstab
复制代码

     打开文件后在最后一行添加
  1. Happy   /vol1/1000/Happy   virtiofs   defaults,nofail  0  0  
复制代码
   其中Happy是unraid虚拟机设置中的“Unraid挂载标签”,/vol1/1000/Happy是挂载到FnOS中的文件夹目录,没有就创建一个




step 2
    创建自动挂载服务
  1. sudo nano /etc/systemd/system/mount-command.service
复制代码
   在文件中添加以下内容按ctrl+x退出并保存
  1. [Unit]
  2. Description=trim file monitor service
  3. After=rc-local.service
  4. After=trim_main.service
  5. [Service]
  6. Type=oneshot
  7. ExecStart=mount Happy
  8. User=root
  9. [Install]
  10. WantedBy=multi-user.target
复制代码


step3
  1. sudo systemctl daemon-reload
  2. Sudo systemctl enable mount-command.service
  3. Sudo systemctl start mount-command.service
复制代码

step4
重启后输入命令看一下有没有挂载成功
  1. df -h /vol1/1000/Happy
复制代码








1

主题

3

回帖

0

牛值

江湖小虾

2025-2-22 15:31:33 显示全部楼层
请问我在最后sudo systemctl start mount-command.service的时候报错
【** for mount-command.service failed because the control process exited with error code.
See "systemctl status mount-command.service" and "journalctl -xeu mount-command.service" for details】
重启也没有挂载到飞牛里
GKx
我问了deepseek: 1.step2中的【service】板块最后还要加一句:RemainAfterExit=yes 2.保存mount-command.service后,执行:sudo chmod 644 /etc/systemd/system/mount-command.service(可能无关) 我就动了以上两  详情 回复
2025-5-16 20:38
我这儿也是这样,但是重启以后自动挂载了,现在的问题是使用挂载的目录在飞牛下载里,不能正常使用,报错Invalid argument,应该是权限有问题  详情 回复
2025-2-22 22:30

0

主题

3

回帖

0

牛值

江湖小虾

2025-2-22 22:30:44 显示全部楼层
我这儿也是这样,但是重启以后自动挂载了,现在的问题是使用挂载的目录在飞牛下载里,不能正常使用,报错Invalid argument,应该是权限有问题
trans=virtio,version=9p2000.L,noauto,nobootwait,rw 0 0 要挂载成可读写模式  详情 回复
2025-2-23 19:19

2

主题

1

回帖

0

牛值

江湖小虾

2025-2-23 19:19:20 楼主 显示全部楼层
trans=virtio,version=9p2000.L,noauto,nobootwait,rw 0 0
要挂载成可读写模式
就是这样挂载的,在文件管理,相册之类的应用里都能正常读写,下载应用里不行  详情 回复
2025-2-24 14:23

0

主题

3

回帖

0

牛值

江湖小虾

2025-2-24 14:23:19 显示全部楼层
就是这样挂载的,在文件管理,相册之类的应用里都能正常读写,下载应用里不行

1

主题

3

回帖

0

牛值

江湖小虾

2025-3-11 11:21:12 显示全部楼层
可以直接挂载/mnt/user文件夹嘛
811
挂载后unraid硬盘不休眠?  详情 回复
2025-3-11 17:03

1

主题

3

回帖

0

牛值

江湖小虾

2025-3-11 17:03:20 显示全部楼层
挂载后unraid硬盘不休眠?

0

主题

1

回帖

0

牛值

江湖小虾

2025-5-16 20:38:04 显示全部楼层
看书翻字典 发表于 2025-2-22 15:31
请问我在最后sudo systemctl start mount-command.service的时候报错
【** for mount-command.service fail ...

我问了deepseek:
1.step2中的【service】板块最后还要加一句:RemainAfterExit=yes
2.保存mount-command.service后,执行:sudo chmod 644 /etc/systemd/system/mount-command.service(可能无关)
我就动了以上两个步骤,没有报错,开机也能自动挂载了!

0

主题

1

回帖

0

牛值

江湖小虾

我也遇见了

Failed to start mount-command.service: Unit mount-command.service has a bad unit file setting.
See system logs and 'systemctl status mount-command.service' for details.

最后用chatgpt解决了

🛠 在 Unraid 下飞牛云 OS 开机自动挂载 9p 共享的可靠方案

📦 背景

在 Unraid 中通过 virtio+9p 把目录共享到虚拟机(飞牛云 OS)。​常规做法:

  • /etc/fstab 添加挂载项(需 noauto
  • 用 systemd service 开机执行 mount -a -O noauto

但实际中常遇到:开机时 virtio 设备还没准备好,导致挂载失败。


✅ 最可靠的解决思路

创建一个脚本:

  • 检测挂载点是否已挂载
  • 如果没挂载就尝试挂载
  • 最多尝试 30 秒,每秒尝试一次
    再通过 systemd service 开机自动执行脚本。

📝 步骤

1️⃣ 编辑 /etc/fstab

添加挂载配置:

photo /vol1/1000/photo 9p trans=virtio,version=9p2000.L,noauto,nobootwait,rw 0 0
  • photo 是在虚拟机配置里 target dir 的名字
  • /vol1/1000/photo 是飞牛云 OS 内的挂载点路径
  • noauto 表示开机时不自动挂载,需要手动 mount

2️⃣ 编写挂载脚本

创建脚本:

sudo nano /usr/local/bin/mount-photo.sh

内容:

#!/bin/bash

TARGET=/vol1/1000/photo

# 最多尝试 30 次,每次间隔 1 秒
for i in {1..30}; do
    if mountpoint -q "$TARGET"; then
        echo "$TARGET 已经挂载"
        exit 0
    else
        echo "未挂载,尝试挂载..."
        mount "$TARGET" && exit 0
    fi
    sleep 1
done

echo "挂载失败"
exit 1

赋予执行权限:

sudo chmod +x /usr/local/bin/mount-photo.sh

3️⃣ 创建 systemd 服务

sudo nano /etc/systemd/system/mount-photo.service

内容:

[Unit]
Description=Mount photo on startup
After=local-fs.target network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/mount-photo.sh

[Install]
WantedBy=multi-user.target

4️⃣ 启用并测试

sudo systemctl daemon-reload
sudo systemctl enable mount-photo.service
sudo systemctl start mount-photo.service
sudo systemctl status mount-photo.service

5️⃣ 重启验证

重启:

sudo reboot

查看挂载是否成功:

mountpoint /vol1/1000/photo

成功的话会返回:

/vol1/1000/photo is a mountpoint

✅ 效果

  • 开机时等待 virtio 设备准备好
  • 持续检测并尝试挂载
  • 保证重启后也能成功挂载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则