Difference between revisions of "APITestPage"
(updated by API) |
(updated by API) |
||
Line 1: | Line 1: | ||
− | [[Getting Started with OpenMediaVault | + | [[Getting Started with OpenMediaVault|English]] |
− | == | + | ==OpenMediaVault版本信息== |
* OS: Debian 12<br /> | * OS: Debian 12<br /> | ||
* OpenMediaVault: 7.0.5-1 (Sandworm)<br /> | * OpenMediaVault: 7.0.5-1 (Sandworm)<br /> | ||
* Docker: 26.0.1<br /> | * Docker: 26.0.1<br /> | ||
− | * Others: | + | * Others: 已安装OMV-Extras软件包<br /> |
− | == | + | ==旧版本的OpenMediaVault文档== |
− | Link to → [[Getting Started with OpenMediaVault6|Getting Started with OpenMediaVault6]] | + | Link to → [[Getting Started with OpenMediaVault6/zh|Getting Started with OpenMediaVault6]] |
− | == | + | ==OpenMediaVault运行界面== |
− | [[File:Openmediavault7.png|600px]] | + | [[File:Openmediavault7-zh.png|600px]] |
− | == | + | ==支持的平台== |
* RK3328<br /> | * RK3328<br /> | ||
* RK3399<br /> | * RK3399<br /> | ||
* RK3568<br /> | * RK3568<br /> | ||
* RK3588<br /> | * RK3588<br /> | ||
− | == | + | ==查看IP地址== |
− | + | 由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ping CM3588 | ping CM3588 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | ==登录OpenMediaVault网页后台== |
− | + | 在网页浏览器输入开发板的IP地址, 网页登录帐号默认为: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | 用户名: admin | |
− | + | 密码: openmediavault | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | ==设置网页登录密码== |
− | + | 网页上点击右上角的头像,选择 “更改密码” | |
− | == | + | ==默认的Linux帐号与密码== |
− | + | 普通用户:<br/> | |
− | + | 用户名: pi<br/> | |
− | + | 密码: pi<br/> | |
− | | + | |
− | | + | |
<br/> | <br/> | ||
− | + | Root用户:<br/> | |
− | | + | 用户名: root<br/> |
− | | + | 密码: fa<br/> |
− | == | + | ==设置网页超时时间== |
+ | 进入 '''系统 -> 工作台''',设置"自动登出"时间。 | ||
+ | ==通过ssh登录== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ssh pi@YourIPAddress | ssh pi@YourIPAddress | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | pi用户的初始密码为 pi | |
− | == | + | ==更新用户密码== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo passwd root | sudo passwd root | ||
sudo passwd pi | sudo passwd pi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | ==终端配置界面== |
− | + | 用root用户登录ssh: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
ssh root@IPAddress | ssh root@IPAddress | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 执行如下命令: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
omv-firstaid | omv-firstaid | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 界面如下:<br /> | |
[[File:Omv-firstaid.png|400px]] | [[File:Omv-firstaid.png|400px]] | ||
− | == | + | ==切换国内软件源== |
− | + | <syntaxhighlight lang="bash"> | |
− | + | sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list | |
− | + | sudo apt update | |
− | + | </syntaxhighlight> | |
− | == | + | ==配置硬盘== |
− | ( | + | (注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)<br /> |
− | + | 更多内容请参考:[https://docs.openmediavault.org/en/latest/administration/storage/raid.html|RAID] | |
− | + | ===第一步:清除磁盘=== | |
− | + | 进入 '''存储器 -> 磁盘''',选中你的存储器,点击'''“擦除"'''图标进行擦除 (注意备份你的数据),一般选'''“快速”'''即可。<br /> | |
− | + | 如果磁盘无法擦除,你需要先移除此磁盘上的共享文件夹并取消挂载。 | |
− | ==== | + | ===第二步:配置软RAID=== |
− | * | + | (注: 不支持USB 接口的硬盘,OpenMediaVault创建RAID的页面上不会列出USB接口的存储设备) |
+ | 本章节所介绍的两种Raid配置的区别: | ||
+ | * MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。 | ||
+ | * Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。 | ||
+ | ====方案1: MD RAID==== | ||
+ | * 进入 '''存储器 -> 多重装置''',点击'''“+”'''图标,在'''"级别"'''一栏选择RAID级别,在'''"设备"'''一栏钩选存储设备,保存后,状态如下所示: | ||
[[File:Omv-raid-resyncing.png|400px]]<br/> | [[File:Omv-raid-resyncing.png|400px]]<br/> | ||
− | + | 你需要等待状态从 resyncing 转为 clean,完成后如下图所示:<br /> | |
[[File:Omv-raid-clean.png|400px]]<br/> | [[File:Omv-raid-clean.png|400px]]<br/> | ||
− | * | + | * 进入 '''存储器 -> 文件系统''',点击'''“+”''',类型建议选择'''"BTRFS"''',选择'''"Single"'''并在"设备"栏中钩选你的存储设备,如果在上一步中创建了RAID,设备名是以"/dev/md"开头的,如果你的设备在'''"设备"'''栏中没法列出,可能是设备中已存在共享文件夹等数据,尝试点击 '''►''' 图标直接挂载,如果数据可以被丢弃,则可以考虑使用如下命令擦除磁盘数据: |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | # | + | # 注意:硬盘中的所有数据将会丢失 |
sudo wipefs --all /dev/mdX | sudo wipefs --all /dev/mdX | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | /dev/mdX需要换成真实的设备,通过"cat /proc/partitions"命令查看。 | |
− | ==== | + | * 格式化完成后,OpenMediaVault 将提示您挂载该设备。 |
− | * | + | ====方案2: Btrfs RAID==== |
− | + | * 进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 RAID 级别,选择您的磁盘,然后保存设置。<br /> | |
− | === | + | * 格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出所有磁盘,因此您应选择以 /dev/nvme 开头的驱动器。 |
− | * | + | ====方案3: Single (不使用RAID阵列)==== |
− | ( | + | * 进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 Single 级别,选择您的磁盘,然后保存设置。<br /> |
− | == | + | * 格式化完成后,OpenMediaVault 将提示您挂载该设备。 |
− | + | ==创建共享文件夹== | |
− | * | + | 进入'''存储器 -> 共享文件夹''',添加'''"+"'''图标创建2个文件夹,名称分别为'''nfs'''和'''samba''',我们接下来将用这些文件夹来测试nfs和samba共享。<br /> |
− | * | + | (注:如果硬盘中存在同名的共享文件夹,重新创建同名的文件夹,数据会得到保留) |
− | == | + | ==创建NAS用户== |
− | * | + | Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类服务的访问权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为'''nasuser'''的用户和组:<br /> |
− | * | + | <br /> |
− | + | * 点击'''用户 -> 用户组''',点击 '''"+"''' 图标创建一个名为 '''nasuser''' 的用户组。 | |
− | + | * 点击'''用户 -> 用户''',点击 '''"+"''' 图标后创建一个名为 '''nasuser''',Shell选择/usr/sbin/nologin, 用户组钩选'''nasuser'''和'''users'''的用户。 | |
− | == | + | ==创建Samba共享== |
− | * | + | * 点击'''服务 -> SMB/CIFS -> 设置''', 钩选最上面的 "已启动", 最低协议版本选择 '''"SMB1"''',然后点 "保存"; |
− | * | + | * 点击'''服务 -> SMB/CIFS -> 共享''', 点击 '''"+"''' ,在 '''"Shared folder"''' 处选择要共享的文件夹,这里我选择samba文件夹。 |
+ | 测试访问: <br /> | ||
+ | 在Mac系统下右击Finder,选择连接服务器后输入 smb://YourIPAddress(换成真实IP),会弹出验证对话框,输入用户名nasuser以及密码即可以访问。 | ||
+ | ==创建NFS共享== | ||
+ | * 点击"服务" -> "NFS" -> "设置", 钩选最上面的 "已启动", 在"版本"一栏中,钩选所有版本包括'''“NFSv2”''',然后点 "保存"并应用设置; | ||
+ | * 点击"服务" -> "NFS" -> "共享", 点击 '''"+"''' ,在 '''"Shared folder"''' 处选择要共享的文件夹,这里我选择 nfs 文件夹。在客户端一栏中输入 192.168.1.0/24 (换成真实网段,或指定仅允许访问的IP),权限处选择 "读/写",在扩展选项中输入: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0 | rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 然后点 "保存"并应用设置; | |
− | === | + | ===Mac下测试挂载NFS=== |
− | + | 命令行查看OpenMediaVault的NFS共享信息 | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# showmount -e YourIPAddress | # showmount -e YourIPAddress | ||
Line 110: | Line 120: | ||
/export/nfs 192.168.1.0/24 | /export/nfs 192.168.1.0/24 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 在Mac上右击Finder,选择连接服务器,在地址栏输入 | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
nfs://YourIPAddress/export/nfs | nfs://YourIPAddress/export/nfs | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===Linux下测试挂载NFS=== |
− | + | 安装软件包 | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt install nfs-common | sudo apt install nfs-common | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 挂载 | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs | sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 查看状态 | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# df -h | grep nfs | # df -h | grep nfs | ||
YourIPAddress:/export/nfs 7.3G 3.5M 6.8G 1% /mnt/nfs | YourIPAddress:/export/nfs 7.3G 3.5M 6.8G 1% /mnt/nfs | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 设置开机自动挂载,添加如下内容到 /etc/fstab | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0 | YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | ==Docker的使用== |
− | === | + | ===将Docker数据移动至硬盘=== |
− | + | 先安装openmediavault-compose插件, 通过SSH登录然后执行如下命令: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt update | sudo apt update | ||
sudo apt install -y openmediavault-compose | sudo apt install -y openmediavault-compose | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 刷新网页后,进入'''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建3个文件夹,分别为 | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | docker -> | + | docker -> Docker数据目录,在/etc/docker/daemon.json中定义 |
docker-compose -> Location of compose files | docker-compose -> Location of compose files | ||
docker-data -> Location of persistent container data | docker-data -> Location of persistent container data | ||
− | docker-app -> | + | docker-app -> 自用,存放Dockerfile和数据 |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 进入'''服务 -> Compose''',进入设置界面,设置"Compose 文件"的Shared folder为docker-compose, 设置"Data“的Shared folder为docker-data,<br /> | |
− | + | <br /> | |
+ | 进入ssh终端,输入以下命令,将docker数据移动到共享文件夹, 其中,'''/srv/dev-disk-by-uuid-XXYYZZ/docker''' 是共享文件夹的绝对路径,可以在网页 '''存储器 -> 共享文件夹''' 列表中得到: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
su root | su root | ||
Line 153: | Line 164: | ||
mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/ | mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 在页面上设置 '''Docker存储''' 为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。 | |
− | <br /> | + | <br />GUI 上填写的最终数值:<br /> |
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
Compose Files's Shared folder -> on /dev/md0, docker-compose | Compose Files's Shared folder -> on /dev/md0, docker-compose | ||
Line 160: | Line 171: | ||
Docker's Docker storage -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/ | Docker's Docker storage -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===Docker安装nextcloud网盘=== |
− | + | 命令行界面输入以下命令即可: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
su root | su root | ||
Line 173: | Line 184: | ||
--privileged=true arm64v8/nextcloud | --privileged=true arm64v8/nextcloud | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。 | |
− | === | + | ===Docker安装Filebrowser=== |
− | + | 命令行界面输入以下命令即可: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
su root | su root | ||
Line 188: | Line 199: | ||
filebrowser/filebrowser | filebrowser/filebrowser | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 完成后在网页浏览器访问http://YourIPAddress:8080/即可看到Filebrowser的页面,默认管理员的帐号与密码都是admin。 | |
− | + | ===Docker安装Jellyfin影音服务器=== | |
− | === | + | 进入 '''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin: |
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
su root | su root | ||
Line 207: | Line 217: | ||
jellyfin/jellyfin | jellyfin/jellyfin | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。 | |
− | === | + | ===安装Docker可视化容器管理工具Portainer=== |
− | + | 命令行界面输入以下命令即可: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
su root | su root | ||
Line 227: | Line 237: | ||
portainer/portainer-ce:latest | portainer/portainer-ce:latest | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。 | |
− | == | + | ==系统的备还与还原== |
− | === | + | ===备份eMMC中的系统=== |
− | + | 使用tar命令备份文件系统的内容: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
su root | su root | ||
Line 239: | Line 249: | ||
--exclude=/usr/local/first_boot_flag --one-file-system / | --exclude=/usr/local/first_boot_flag --one-file-system / | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===还原系统到eMMC=== |
− | + | 使用SD卡启动,启动Linux系统(例如Debian或Ubuntu均可),使用如下命令查询eMMC上的系统根分区: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
root@CM3588:~# sudo parted -s /dev/mmcblk2 unit MiB print | grep rootfs | root@CM3588:~# sudo parted -s /dev/mmcblk2 unit MiB print | grep rootfs | ||
8 140MiB 59000MiB 58860MiB ext4 rootfs | 8 140MiB 59000MiB 58860MiB ext4 rootfs | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 根据上面的序号8可以得知根分区的设备名为/dev/mmcblk2p8,下面对它重新格式化并挂载,然后解压rootfs.tar.gz到此处: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo mkfs.ext4 /dev/mmcblk2p8 | sudo mkfs.ext4 /dev/mmcblk2p8 | ||
Line 253: | Line 263: | ||
sudo poweroff | sudo poweroff | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 关机后,拨出SD卡,重新上电从eMMC启动系统。 | |
− | == | + | ==系统重装后恢复硬盘数据== |
− | * | + | * 进入 '''存储器 -> 文件系统''', 点击 '''►''' 图标,在 '''文件系统''' 一栏选择你的设备,点保存。 |
− | * | + | * 进入 '''存储器 -> 共享文件夹''', 创建同名共享文件名,例如本文示例中的nfs, samba, docker, docker-app, docker-compose和docker-data。 |
+ | ==常见问题与解决办法== | ||
+ | ===问题: Raid阵列出现如下状态Clean, Resyncing (PENDING)=== | ||
+ | Execute following command to switch array to read-write state and begin resync process: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | mdadm --readwrite /dev/md0 | ||
+ | </syntaxhighlight> | ||
+ | ===问题: 挂载文件系统时,未列出存储设备=== | ||
+ | 先使用如下命令擦除磁盘数据: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | # 注意:硬盘中的所有数据将会丢失 | ||
+ | sudo wipefs --all /dev/mdX | ||
+ | </syntaxhighlight> |
Revision as of 16:45, 19 April 2024
Contents
1 OpenMediaVault版本信息
- OS: Debian 12
- OpenMediaVault: 7.0.5-1 (Sandworm)
- Docker: 26.0.1
- Others: 已安装OMV-Extras软件包
2 旧版本的OpenMediaVault文档
Link to → Getting Started with OpenMediaVault6
3 OpenMediaVault运行界面
4 支持的平台
- RK3328
- RK3399
- RK3568
- RK3588
5 查看IP地址
由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令:
ping CM3588
6 登录OpenMediaVault网页后台
在网页浏览器输入开发板的IP地址, 网页登录帐号默认为:
用户名: admin 密码: openmediavault
7 设置网页登录密码
网页上点击右上角的头像,选择 “更改密码”
8 默认的Linux帐号与密码
普通用户:
用户名: pi
密码: pi
Root用户:
用户名: root
密码: fa
9 设置网页超时时间
进入 系统 -> 工作台,设置"自动登出"时间。
10 通过ssh登录
ssh pi@YourIPAddress
pi用户的初始密码为 pi
11 更新用户密码
sudo passwd root sudo passwd pi
12 终端配置界面
用root用户登录ssh:
ssh root@IPAddress
执行如下命令:
omv-firstaid
13 切换国内软件源
sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list sudo apt update
14 配置硬盘
(注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)
更多内容请参考:[1]
14.1 第一步:清除磁盘
进入 存储器 -> 磁盘,选中你的存储器,点击“擦除"图标进行擦除 (注意备份你的数据),一般选“快速”即可。
如果磁盘无法擦除,你需要先移除此磁盘上的共享文件夹并取消挂载。
14.2 第二步:配置软RAID
(注: 不支持USB 接口的硬盘,OpenMediaVault创建RAID的页面上不会列出USB接口的存储设备) 本章节所介绍的两种Raid配置的区别:
- MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。
- Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。
14.2.1 方案1: MD RAID
- 进入 存储器 -> 多重装置,点击“+”图标,在"级别"一栏选择RAID级别,在"设备"一栏钩选存储设备,保存后,状态如下所示:
你需要等待状态从 resyncing 转为 clean,完成后如下图所示:
- 进入 存储器 -> 文件系统,点击“+”,类型建议选择"BTRFS",选择"Single"并在"设备"栏中钩选你的存储设备,如果在上一步中创建了RAID,设备名是以"/dev/md"开头的,如果你的设备在"设备"栏中没法列出,可能是设备中已存在共享文件夹等数据,尝试点击 ► 图标直接挂载,如果数据可以被丢弃,则可以考虑使用如下命令擦除磁盘数据:
# 注意:硬盘中的所有数据将会丢失 sudo wipefs --all /dev/mdX
/dev/mdX需要换成真实的设备,通过"cat /proc/partitions"命令查看。
- 格式化完成后,OpenMediaVault 将提示您挂载该设备。
14.2.2 方案2: Btrfs RAID
- 进入 存储 -> 文件系统,点击 "+" 图标,选择 "BTRFS",选择 RAID 级别,选择您的磁盘,然后保存设置。
- 格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出所有磁盘,因此您应选择以 /dev/nvme 开头的驱动器。
14.2.3 方案3: Single (不使用RAID阵列)
- 进入 存储 -> 文件系统,点击 "+" 图标,选择 "BTRFS",选择 Single 级别,选择您的磁盘,然后保存设置。
- 格式化完成后,OpenMediaVault 将提示您挂载该设备。
15 创建共享文件夹
进入存储器 -> 共享文件夹,添加"+"图标创建2个文件夹,名称分别为nfs和samba,我们接下来将用这些文件夹来测试nfs和samba共享。
(注:如果硬盘中存在同名的共享文件夹,重新创建同名的文件夹,数据会得到保留)
16 创建NAS用户
Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类服务的访问权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为nasuser的用户和组:
- 点击用户 -> 用户组,点击 "+" 图标创建一个名为 nasuser 的用户组。
- 点击用户 -> 用户,点击 "+" 图标后创建一个名为 nasuser,Shell选择/usr/sbin/nologin, 用户组钩选nasuser和users的用户。
17 创建Samba共享
- 点击服务 -> SMB/CIFS -> 设置, 钩选最上面的 "已启动", 最低协议版本选择 "SMB1",然后点 "保存";
- 点击服务 -> SMB/CIFS -> 共享, 点击 "+" ,在 "Shared folder" 处选择要共享的文件夹,这里我选择samba文件夹。
测试访问:
在Mac系统下右击Finder,选择连接服务器后输入 smb://YourIPAddress(换成真实IP),会弹出验证对话框,输入用户名nasuser以及密码即可以访问。
18 创建NFS共享
- 点击"服务" -> "NFS" -> "设置", 钩选最上面的 "已启动", 在"版本"一栏中,钩选所有版本包括“NFSv2”,然后点 "保存"并应用设置;
- 点击"服务" -> "NFS" -> "共享", 点击 "+" ,在 "Shared folder" 处选择要共享的文件夹,这里我选择 nfs 文件夹。在客户端一栏中输入 192.168.1.0/24 (换成真实网段,或指定仅允许访问的IP),权限处选择 "读/写",在扩展选项中输入:
rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0
然后点 "保存"并应用设置;
18.1 Mac下测试挂载NFS
命令行查看OpenMediaVault的NFS共享信息
# showmount -e YourIPAddress Exports list on YourIPAddress: /export 192.168.1.0/24 /export/nfs 192.168.1.0/24
在Mac上右击Finder,选择连接服务器,在地址栏输入
nfs://YourIPAddress/export/nfs
18.2 Linux下测试挂载NFS
安装软件包
sudo apt install nfs-common
挂载
sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs
查看状态
# df -h | grep nfs YourIPAddress:/export/nfs 7.3G 3.5M 6.8G 1% /mnt/nfs
设置开机自动挂载,添加如下内容到 /etc/fstab
YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0
19 Docker的使用
19.1 将Docker数据移动至硬盘
先安装openmediavault-compose插件, 通过SSH登录然后执行如下命令:
sudo apt update sudo apt install -y openmediavault-compose
刷新网页后,进入存储器 -> 共享文件夹,添加 "+" 图标创建3个文件夹,分别为
docker -> Docker数据目录,在/etc/docker/daemon.json中定义 docker-compose -> Location of compose files docker-data -> Location of persistent container data docker-app -> 自用,存放Dockerfile和数据
进入服务 -> Compose,进入设置界面,设置"Compose 文件"的Shared folder为docker-compose, 设置"Data“的Shared folder为docker-data,
进入ssh终端,输入以下命令,将docker数据移动到共享文件夹, 其中,/srv/dev-disk-by-uuid-XXYYZZ/docker 是共享文件夹的绝对路径,可以在网页 存储器 -> 共享文件夹 列表中得到:
su root systemctl stop docker.socket docker.service mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/
在页面上设置 Docker存储 为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。
GUI 上填写的最终数值:
Compose Files's Shared folder -> on /dev/md0, docker-compose Data's Shared folder -> on /dev/md0, docker-data Docker's Docker storage -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/
19.2 Docker安装nextcloud网盘
命令行界面输入以下命令即可:
su root cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app) mkdir nextcloud cd nextcloud mkdir data docker run -d -p 8888:80 --name nextcloud \ -v $PWD/data:/var/www/html --restart=always \ --privileged=true arm64v8/nextcloud
完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。
19.3 Docker安装Filebrowser
命令行界面输入以下命令即可:
su root cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app) mkdir filebrowser cd filebrowser docker run -d -v $(readlink -f /srv/dev-disk-by-uuid-*):/srv \ -v $PWD/filebrowserconfig.json:/etc/config.json \ -v $PWD/database.db:/etc/database.db -p 8080:80 \ --restart=always --name filebrowser \ filebrowser/filebrowser
完成后在网页浏览器访问http://YourIPAddress:8080/即可看到Filebrowser的页面,默认管理员的帐号与密码都是admin。
19.4 Docker安装Jellyfin影音服务器
进入 存储器 -> 共享文件夹,添加 "+" 图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin:
su root cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app) mkdir jellyfin cd jellyfin mkdir config cache docker run -d --name jellyfin \ -v $PWD/config:/config \ -v $PWD/cache:/cache \ -v $(readlink -f /srv/dev-disk-by-uuid-*/media):/media \ -p 8096:8096 \ --restart=always \ jellyfin/jellyfin
完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。
19.5 安装Docker可视化容器管理工具Portainer
命令行界面输入以下命令即可:
su root cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app) mkdir portainer cd portainer mkdir data docker run -d \ --name portainer \ --restart=always \ -e TZ=Asia/Shanghai \ -p 8000:8000 \ -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $PWD/data:/data \ portainer/portainer-ce:latest
完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。
20 系统的备还与还原
20.1 备份eMMC中的系统
使用tar命令备份文件系统的内容:
su root cd / tar --warning=no-file-changed -cvpzf /rootfs.tar.gz \ --exclude=/rootfs.tar.gz --exclude=/var/lib/docker/runtimes \ --exclude=/etc/firstuser --exclude=/etc/friendlyelec-release \ --exclude=/usr/local/first_boot_flag --one-file-system /
20.2 还原系统到eMMC
使用SD卡启动,启动Linux系统(例如Debian或Ubuntu均可),使用如下命令查询eMMC上的系统根分区:
root@CM3588:~# sudo parted -s /dev/mmcblk2 unit MiB print | grep rootfs 8 140MiB 59000MiB 58860MiB ext4 rootfs
根据上面的序号8可以得知根分区的设备名为/dev/mmcblk2p8,下面对它重新格式化并挂载,然后解压rootfs.tar.gz到此处:
sudo mkfs.ext4 /dev/mmcblk2p8 sudo mkdir /mnt/rootfs sudo mount /dev/mmcblk2p8 /mnt/rootfs sudo tar xvzfp /path/to/rootfs.tar.gz -C /mnt/rootfs --numeric-owner --same-owner sudo poweroff
关机后,拨出SD卡,重新上电从eMMC启动系统。
21 系统重装后恢复硬盘数据
- 进入 存储器 -> 文件系统, 点击 ► 图标,在 文件系统 一栏选择你的设备,点保存。
- 进入 存储器 -> 共享文件夹, 创建同名共享文件名,例如本文示例中的nfs, samba, docker, docker-app, docker-compose和docker-data。
22 常见问题与解决办法
22.1 问题: Raid阵列出现如下状态Clean, Resyncing (PENDING)
Execute following command to switch array to read-write state and begin resync process:
mdadm --readwrite /dev/md0
22.2 问题: 挂载文件系统时,未列出存储设备
先使用如下命令擦除磁盘数据:
# 注意:硬盘中的所有数据将会丢失 sudo wipefs --all /dev/mdX