Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 1: Line 1:
[[Getting Started with OpenMediaVault/zh|查看中文]]
+
[[Getting Started with OpenMediaVault|English]]
==OpenMediaVault version==
+
==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: built-in OMV-Extras<br />
+
* Others: 已安装OMV-Extras软件包<br />
==Earlier version OpenMediaVault==
+
==旧版本的OpenMediaVault文档==
Link to → [[Getting Started with OpenMediaVault6|Getting Started with OpenMediaVault6]]
+
Link to → [[Getting Started with OpenMediaVault6/zh|Getting Started with OpenMediaVault6]]
==First Look==
+
==OpenMediaVault运行界面==
[[File:Openmediavault7.png|600px]]
+
[[File:Openmediavault7-zh.png|600px]]
==Supported platforms==
+
==支持的平台==
 
* RK3328<br />
 
* RK3328<br />
 
* RK3399<br />
 
* RK3399<br />
 
* RK3568<br />
 
* RK3568<br />
 
* RK3588<br />
 
* RK3588<br />
==Find IP Address==
+
==查看IP地址==
Since the hostname is set by default to the model of the development board, you can use the "ping" command to obtain the IP address. For example, for CM3588, you can use the following command:
+
由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
ping CM3588
 
ping CM3588
 
</syntaxhighlight>
 
</syntaxhighlight>
==Access the OpenMediaVault web page==
+
==登录OpenMediaVault网页后台==
Enter the IP address of the development board in your web browser; the default login account for the web interface is:
+
在网页浏览器输入开发板的IP地址, 网页登录帐号默认为:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Username: admin
+
用户名: admin
Password: openmediavault
+
密码: openmediavault
 
</syntaxhighlight>
 
</syntaxhighlight>
==Change admin password==
+
==设置网页登录密码==
Click on the profile icon in the upper-right corner of the web page, then select '''"Change Password"'''.
+
网页上点击右上角的头像,选择 “更改密码”
==Configure the web page timeout duration==
+
==默认的Linux帐号与密码==
Go to '''System -> Workbench''' and adjust the '''"Auto Logout"''' time setting.
+
普通用户:<br/>
==Linux default passwords==
+
&nbsp;&nbsp;&nbsp;&nbsp;用户名: pi<br/>
Regular Account:<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;密码: pi<br/>
&nbsp;&nbsp;&nbsp;&nbsp;User Name: pi<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;Password: pi<br/>
+
 
<br/>
 
<br/>
Root:<br/>
+
Root用户:<br/>
&nbsp;&nbsp;&nbsp;&nbsp;User Name: root<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;用户名: root<br/>
&nbsp;&nbsp;&nbsp;&nbsp;Password: fa<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;密码: fa<br/>
==Root Login via SSH==
+
==设置网页超时时间==
 +
进入 '''系统 -> 工作台''',设置"自动登出"时间。
 +
==通过ssh登录==
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
ssh pi@YourIPAddress
 
ssh pi@YourIPAddress
 
</syntaxhighlight>
 
</syntaxhighlight>
The default password is '''"pi"'''.
+
pi用户的初始密码为 pi
==Change the passwords==
+
==更新用户密码==
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
sudo passwd root
 
sudo passwd root
 
sudo passwd pi
 
sudo passwd pi
 
</syntaxhighlight>
 
</syntaxhighlight>
==First Aid Setup==
+
==终端配置界面==
Login to your OMV via SSH as root user:
+
用root用户登录ssh:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
ssh root@IPAddress
 
ssh root@IPAddress
 
</syntaxhighlight>
 
</syntaxhighlight>
Excute the following command:
+
执行如下命令:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
omv-firstaid
 
omv-firstaid
 
</syntaxhighlight>
 
</syntaxhighlight>
Something like this should appear:<br />
+
界面如下:<br />
 
[[File:Omv-firstaid.png|400px]]
 
[[File:Omv-firstaid.png|400px]]
==Set up your drives==
+
==切换国内软件源==
Note: If the hard drive has already been initialized and RAID has been preserved, you should be able to mount it directly.
+
<syntaxhighlight lang="bash">
===Step 1: Wipe drives===
+
sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
Go to '''Storage -> Disks''', choose your storage device, and click the "Wipe" icon to initiate disk erasure (please ensure your data is backed up). Typically, you can opt for a "Quick" erase option.<br />
+
sudo apt update
If wiping isn't effective, you should first remove the shared folder and unmount it.
+
</syntaxhighlight>
===Step 2: Configure Software RAID===
+
==配置硬盘==
(Note: OMV does not support RAID for USB-connected devices)
+
(注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)<br />
The difference between the following two Raid Profiles:
+
更多内容请参考:[https://docs.openmediavault.org/en/latest/administration/storage/raid.html|RAID]
* MD RAID: has better performance, because it does a better job of parallelizing writes and striping reads.<br />
+
===第一步:清除磁盘===
* Btrfs RAID: has better data safety, because the checksumming lets it ID which copy of a block is wrong when only one is wrong, and means it can tell if both copies are bad.<br />
+
进入 '''存储器 -> 磁盘''',选中你的存储器,点击'''“擦除"'''图标进行擦除 (注意备份你的数据),一般选'''“快速”'''即可。<br />
More content please refre: [https://docs.openmediavault.org/en/latest/administration/storage/raid.html RAID]
+
如果磁盘无法擦除,你需要先移除此磁盘上的共享文件夹并取消挂载。
====Optional 1: MD RAID====
+
===第二步:配置软RAID===
* Go to '''Storage -> Multiple Device''', click the '''"+"''' icon, select the desired RAID level and drives, after saving, the status is shown below:
+
(注: 不支持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/>
You need to wait for the status to change from resyncing to clean, and when it's done it will look like this:<br />
+
你需要等待状态从 resyncing 转为 clean,完成后如下图所示:<br />
 
[[File:Omv-raid-clean.png|400px]]<br/>
 
[[File:Omv-raid-clean.png|400px]]<br/>
* Go to '''Storage -> File Systems''', click on '''"+"''', it is recommended to choose '''"BTRFS"''' as the '''Type''', select '''"Single"''' as the '''Profile''', and select your storage device in the '''Device''' field. If you created RAID in the previous step, the device name starts with "/dev/md". If your device cannot be listed in the '''"Device"''' field, it may be because there are existing shared folders or other data on the device. Try clicking the '''►''' icon to mount directly. If the data can be discarded, you can consider using the following command to erase the partition first:
+
* 进入 '''存储器 -> 文件系统''',点击'''+''',类型建议选择'''"BTRFS"''',选择'''"Single"'''并在"设备"栏中钩选你的存储设备,如果在上一步中创建了RAID,设备名是以"/dev/md"开头的,如果你的设备在'''"设备"'''栏中没法列出,可能是设备中已存在共享文件夹等数据,尝试点击 '''►''' 图标直接挂载,如果数据可以被丢弃,则可以考虑使用如下命令擦除磁盘数据:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
# Note: All data on the drive will be lost
+
# 注意:硬盘中的所有数据将会丢失
 
sudo wipefs --all /dev/mdX
 
sudo wipefs --all /dev/mdX
 
</syntaxhighlight>
 
</syntaxhighlight>
Replace /dev/mdX with the actual device, which can be checked using the "cat /proc/partitions" command.
+
/dev/mdX需要换成真实的设备,通过"cat /proc/partitions"命令查看。
====Optional 2: Btrfs RAID====
+
* 格式化完成后,OpenMediaVault 将提示您挂载该设备。
* Go to '''Storage -> File Systems''' click the '''"+"''' icon, choose the '''"BTRFS"''', choose the RAID level, select your drives, and then save the settings.
+
====方案2: Btrfs RAID====
After formatting is complete, openmediavault will let you choose which file system to mount, it doesn't list all the drives, so you should choose a drive that starts with /dev/nvme.
+
* 进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 RAID 级别,选择您的磁盘,然后保存设置。<br />
===Step 3: Create shared folders===
+
* 格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出所有磁盘,因此您应选择以 /dev/nvme 开头的驱动器。
* Go to '''Storage -> Shared Folders''', click the '''"+"''' icon to create two folders named "nfs" and "samba." We will use these folders for testing NFS and Samba sharing in the following steps.<br />
+
====方案3: Single (不使用RAID阵列)====
(Note: If there were previously created shared folders on the drive, you can recreate them with the same names, and the data will be preserved.)
+
* 进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 Single 级别,选择您的磁盘,然后保存设置。<br />
==Create NAS users==
+
* 格式化完成后,OpenMediaVault 将提示您挂载该设备。
Debian system users or Linux users created via the command line may lack certain permissions required for services like Samba and NFS. Therefore, it is recommended to use the OpenMediaVault interface to create a user specifically for accessing Samba and NFS shares. Here, I will create a user and group named "nasuser":
+
==创建共享文件夹==
* Go to '''Users -> Groups''' and then click the '''"+"''' icon to create a user group named "nasuser".<br />
+
进入'''存储器 -> 共享文件夹''',添加'''"+"'''图标创建2个文件夹,名称分别为'''nfs'''和'''samba''',我们接下来将用这些文件夹来测试nfs和samba共享。<br />
* Go to '''Users -> "Users''' then click the '''"+"''' icon to create a user named "nasuser", change user's shell to "/usr/sbin/nologin", and select the "nasuser" and "users" groups.
+
(注:如果硬盘中存在同名的共享文件夹,重新创建同名的文件夹,数据会得到保留)
==Create a Samba share==
+
==创建NAS用户==
* Go to '''Services -> SMB/CIFS -> Settings''', check the box at the top for "Enabled," select "SMB1" as the minimum protocol version, and then click "Save"
+
Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类服务的访问权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为'''nasuser'''的用户和组:<br />
* Go to '''Services -> SMB/CIFS -> Shares''', click the '''"+"''' button, and in the "Shared folder" field, select the folder you want to share. as an example, here i select the "samba" folder
+
<br />
Testing: <br />
+
* 点击'''用户 -> 用户组''',点击 '''"+"''' 图标创建一个名为 '''nasuser''' 的用户组。
On a Mac system, right-click Finder, select '''"Connect to Server"''', and enter "smb://YourIPAddress" (replace with the actual IP address). An authentication dialog will appear; enter the username "nasuser" and the password to access the share.
+
* 点击'''用户 -> 用户''',点击 '''"+"''' 图标后创建一个名为 '''nasuser''',Shell选择/usr/sbin/nologin, 用户组钩选'''nasuser'''和'''users'''的用户。
==Create an NFS share==
+
==创建Samba共享==
* Go to '''Services -> NFS -> Settings''', check the box at the top for "Enabled", and in the "Versions" section, select all versions, including "NFSv2", then click "Save" and apply the settings.
+
* 点击'''服务 -> SMB/CIFS -> 设置''', 钩选最上面的 "已启动", 最低协议版本选择 '''"SMB1"''',然后点 "保存"
* Go to '''Services -> NFS -> Shares''', click the '''"+"''' button, and in the "Shared folder" field, select the folder you want to share. here i select the "nfs" folder. In the "Client" section, enter the IP range or specific IPs that are allowed to access the share (e.g., 192.168.1.0/24). Set the permissions to "Read/Write", in the "Extra Options" field, Input:
+
* 点击'''服务 -> 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>
Then click "Save" and apply the settings.
+
然后点 "保存"并应用设置;
===Testing NFS mounting on a Mac===
+
===Mac下测试挂载NFS===
Viewing OpenMediaVault's NFS Share Information via Command Line:
+
命令行查看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>
Right-click Finder on your Mac, select "Connect to Server," and input the following in the address bar:
+
在Mac上右击Finder,选择连接服务器,在地址栏输入
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
nfs://YourIPAddress/export/nfs
 
nfs://YourIPAddress/export/nfs
 
</syntaxhighlight>
 
</syntaxhighlight>
===Testing NFS mounting on Linux===
+
===Linux下测试挂载NFS===
Installing the NFS client
+
安装软件包
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
sudo apt install nfs-common
 
sudo apt install nfs-common
 
</syntaxhighlight>
 
</syntaxhighlight>
Start to mount:
+
挂载
 
<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>
Checking the Status
+
查看状态
 
<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>
To configure automatic mounting at boot time, append the following line to the /etc/fstab file:
+
设置开机自动挂载,添加如下内容到 /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 on OMV==
+
==Docker的使用==
===Moving docker storage===
+
===将Docker数据移动至硬盘===
First, install the openmediavault-compose plugin, login via SSH and excute the following command:
+
先安装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>
After refreshing the page,go to '''Storage -> Shared Folders''', and click the '''"+"''' icon to create three folders, namely:
+
刷新网页后,进入'''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建3个文件夹,分别为
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
docker            -> The Docker data directory, defined in /etc/docker/daemon.json
+
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        -> For personal use, storing Dockerfiles and data
+
docker-app        -> 自用,存放Dockerfile和数据
 
</syntaxhighlight>
 
</syntaxhighlight>
Go to '''Services -> Compose''' enter the '''"Settings"''' interface, and configure the "Shared folder" for "Compose Files" and "Data":<br />
+
进入'''服务 -> Compose''',进入设置界面,设置"Compose 文件"的Shared folder为docker-compose, 设置"Data“的Shared folder为docker-data,<br />
Access the SSH terminal and execute the following command to move Docker data to the shared folder, where "/srv/dev-disk-by-uuid-XXYYZZ/docker" represents the absolute path of the shared folder, which can be obtained from the "Storage" -> "Shared Folders" list on the web interface:
+
<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>
On the web interface, set the '''"Docker storage"''' to the absolute path of the "docker" shared folder. save the settings and apply, and then reboot the system.<br />
+
在页面上设置 '''Docker存储''' 为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。
<br />The final value filled on the Gui:<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>
===Install Nextcloud with Docker===
+
===Docker安装nextcloud网盘===
Run the following command in the terminal:
+
命令行界面输入以下命令即可:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
su root
 
su root
Line 173: Line 184:
 
     --privileged=true  arm64v8/nextcloud
 
     --privileged=true  arm64v8/nextcloud
 
</syntaxhighlight>
 
</syntaxhighlight>
you can access the Nextcloud web interface by opening a web browser and navigating to http://YourIPAddress:8888/ (replace YourIPAddress with the actual IP address of your device).
+
完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。
===Install Filebrowser with Docker===
+
===Docker安装Filebrowser===
Run the following command in the terminal:
+
命令行界面输入以下命令即可:
 
<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。
After completing the setup, you can access the Filebrowser web interface by opening a web browser and navigating to http://YourIPAddress:8080/ (replace YourIPAddress with the actual IP address of your device). The default username and password for Filebrowser are both "admin".
+
===Docker安装Jellyfin影音服务器===
===Install Jellyfin with Docker===
+
进入 '''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin:
Go to '''Storage -> Shared Folders''',  click the '''"+"''' icon to create a "media" folder for storing multimedia resources. Then, in the command-line terminal, you can run the following command to install Jellyfin:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
su root
 
su root
Line 207: Line 217:
 
jellyfin/jellyfin
 
jellyfin/jellyfin
 
</syntaxhighlight>
 
</syntaxhighlight>
After completing the setup, you can access the Jellyfin web interface by opening a web browser and navigating to http://YourIPAddress:8096/ (replace YourIPAddress with the actual IP address of your device). This will allow you to access and manage your media content using Jellyfin.
+
完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。
===Install Portainer with Docker===
+
===安装Docker可视化容器管理工具Portainer===
Run the following command in the terminal:
+
命令行界面输入以下命令即可:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
su root
 
su root
Line 227: Line 237:
 
   portainer/portainer-ce:latest
 
   portainer/portainer-ce:latest
 
</syntaxhighlight>
 
</syntaxhighlight>
After completing the setup, you can access the Portainer web interface by opening a web browser and navigating to http://YourIPAddress:9000/ (replace YourIPAddress with the actual IP address of your device). The default administrator account username and password are both "admin".
+
完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。
==System Backup and Restore==
+
==系统的备还与还原==
===Backing up the System in eMMC===
+
===备份eMMC中的系统===
Use the tar command to back up the contents of the file system:
+
使用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>
=== Restoring the System to eMMC ===
+
===还原系统到eMMC===
Boot from the SD card, start the Linux system (such as Debian or Ubuntu), and use the following command to query the root partition of the system on 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>
According to the mathematical index 8 mentioned above, the device name for the root partition is /dev/mmcblk2p8. Below, it will be reformatted, mounted, and then the rootfs.tar.gz will be decompressed here:
+
根据上面的序号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>
After shutting down, remove the SD card, and then power on again to boot the system from eMMC.
+
关机后,拨出SD卡,重新上电从eMMC启动系统。
==How to recover files after reinstalling OpenMediaVault==
+
==系统重装后恢复硬盘数据==
* Go to '''Storage -> File System''', click on the '''►''' icon, and select your device in the '''File System''' section, then click Save.
+
* 进入 '''存储器 -> 文件系统''', 点击 '''►''' 图标,在 '''文件系统''' 一栏选择你的设备,点保存。
* Go to '''Storage -> Shared Folders''', create shared folders with the same names, such as nfs, samba, docker, docker-app, docker-compose, and docker-data, as shown in this document.
+
* 进入 '''存储器 -> 共享文件夹''', 创建同名共享文件名,例如本文示例中的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

English

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运行界面

Openmediavault7-zh.png

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

界面如下:
Omv-firstaid.png

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级别,在"设备"一栏钩选存储设备,保存后,状态如下所示:

Omv-raid-resyncing.png
你需要等待状态从 resyncing 转为 clean,完成后如下图所示:
Omv-raid-clean.png

  • 进入 存储器 -> 文件系统,点击“+”,类型建议选择"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个文件夹,名称分别为nfssamba,我们接下来将用这些文件夹来测试nfs和samba共享。
(注:如果硬盘中存在同名的共享文件夹,重新创建同名的文件夹,数据会得到保留)

16 创建NAS用户

Debian系统的用户或通过命令行创建的Linux会缺少诸如samba之类服务的访问权限,因此这里推荐使用OpenMediaVault界面创建一个用户用于访问samba和nfs共享,这里我会创建一个名为nasuser的用户和组:

  • 点击用户 -> 用户组,点击 "+" 图标创建一个名为 nasuser 的用户组。
  • 点击用户 -> 用户,点击 "+" 图标后创建一个名为 nasuser,Shell选择/usr/sbin/nologin, 用户组钩选nasuserusers的用户。

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