Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
(80 intermediate revisions by the same user not shown)
Line 1: Line 1:
====Install OS to eMMC====
+
[[Getting Started with OpenMediaVault|English]]
=====Option 1: Install OS on Web Page=====
+
==OpenMediaVault版本信息==
Get a TF card which has been installed with FriendlyWrt, log in FriendlyWrt on the web page, click on “System” ->”eMMC Tools”. Click on “Select file” to select your wanted image file, either an official image (the name might start with “rk3399-sd”) or a third party image. The file should be a “.gz” or “.img” file.<br/>
+
* OS: Debian 12<br />
After a file is selected, click on “Upload and Write” to start installing an OS.<br/>
+
* OpenMediaVault: 7.0.5-1 (Sandworm)<br />
[[File:Friendlywrt-emmctools2-en.png|frameless|600px]]<br/>
+
* Docker: 26.0.1<br />
After installation is done, eject the SD card, the system will automatically reboot and load the OS from eMMC. After the OS begins to load, if the system LED is flashing and the network LED is on, it means the the OS has loaded successfully. If the OS is FriendlyWrt, you can click on “Go to Homepage” to enter the homepage. <br/>
+
* Others: 已安装OMV-Extras软件包<br />
Note that if you are burning the FriendlyElec firmware, you need to use an image file with the "-sd-" file name, similar to the one below:
+
==旧版本的OpenMediaVault文档==
{| class="wikitable"
+
Link to → [[Getting Started with OpenMediaVault6/zh|Getting Started with OpenMediaVault6]]
|-
+
==OpenMediaVault运行界面==
  | rk3399-sd-friendlywrt-21.02-YYYYMMDD.img.gz
+
[[File:Openmediavault7-zh.png|600px]]
|-
+
==支持的平台==
  | rk3399-sd-friendlywrt-21.02-docker-YYYYMMDD.img.gz
+
* RK3328<br />
|}
+
* RK3399<br />
If the file is in 7z, zip or rar format, you will need to extract it first. If the file is too large to write, you can compress it into .gz format and try again.
+
* RK3568<br />
=====Option 2: Install OS via TF Card=====
+
* RK3588<br />
======Install OS to eMMC======
+
==查看IP地址==
* This method firstly boots a mini Linux from a TF card and then automatically runs an EFlasher utility to install the OS to eMMC.<br />
+
由于主机名默认为开发板的型号, 所以可以使用ping命令来获得IP地址,例如CM3588,可以用命令:
* You can watch its progress by observing its LEDs as well.<br />
+
Visit [http://download.friendlyelec.com/{{#replace:{{#replace:{{BASEPAGENAME}}| |}}|/zh|}} download link] to download the needed utilities and image file:<br />
+
{| class="wikitable"
+
|-
+
  | colspan=2 | '''Image File'''
+
|-
+
  | rk3399-eflasher-friendlywrt-21.02-YYYYMMDD.img.gz
+
  | '''[[How to Build FriendlyWrt|FriendlyWrt]]'''<br/>Based on OpenWrt 21.02.3<br />Kernel version 5.15.y
+
|-
+
  | rk3399-eflasher-friendlywrt-21.02-docker-YYYYMMDD.img.gz
+
  | '''[[How to Build FriendlyWrt|FriendlyWrt]]'''<br/>Pre-installed Docker<br />Based on OpenWrt 21.02.3<br />Kernel version 5.15.y
+
|-
+
  | rk3399-eflasher-debian-buster-desktop-arm64-YYYYMMDD.img.gz
+
  | '''Debian 10(buster) Desktop'''<br />Uses LXDE as default desktop<br />Pre-installed mpv, smplayer and chromium brower<br />Supports hardware acceleration<br >Kernel version 5.15.y
+
|-
+
  | rk3399-eflasher-friendlycore-lite-focal-5.15-arm64-YYYYMMDD.img.gz
+
  | '''FriendlyCore'''<br />Minimal system<br />Based on Ubuntu core 20.04<br />kernel version 5.15.y
+
|-
+
  | colspan=2 | '''Flash Utility:'''
+
|-
+
  | win32diskimager.rar
+
  | Windows utility. Under Linux users can use "dd"
+
|}
+
Here are the steps:<br />
+
* Get an SDHC card with a minimum capacity of 8G
+
* Download a rk3399-eflasher-OSNAME-YYYYMMDD.img.gz image file and a win32diskimager;
+
* Under Windows, run win32diskimager as administrator, select your SD card and extracted [[EFlasher/zh|EFlasher]] image file, and click on “Write” to write image file on the SD card; or under Linux, you use the dd command to write the rk3399-eflasher-OSNAME-YYYYMMDD.img file to the SD card. 
+
* Eject your SD card and insert it to {{{1}}}’s microSD card slot.
+
* Turn on {{{1}}}, it will boot from the SD card and automatically run [[EFlasher/zh|EFlasher]] to install the OS to the board’s eMMC. You can observer the board’s LEDs to watch its installation progress 
+
{| class="wikitable"
+
|-
+
! Progress
+
! SYS LED(Red)
+
! LAN LED(Green)
+
! WAN LED(Green)
+
|-
+
| Power On
+
| Solid On
+
| Off
+
| Off
+
|-
+
| System Boot
+
| Slow Flashing
+
| Off
+
| Off
+
|-
+
| Installation in Progress
+
| Fast Flashing
+
| Off
+
| Off
+
|-
+
| Installation Done
+
| Slow Flashing
+
| Solid On
+
| Solid On
+
|}
+
* After installation is done, power off the board, eject the SD card from {{{1}}}, power on the board again, {{{1}}} will load the OS from its eMMC
+
======Install Flash Image File to eMMC======
+
* Auto Install (Default Behavior)
+
1) Download an “eflasher” firmware from [http://download.friendlyelec.com/{{#replace:{{#replace:{{BASEPAGENAME}}| |}}|/zh|}} network drive], extract it and install it to a TF card ;<br />
+
2) Eject and insert the TF card to your PC, after a “FriendlyARM” device shows up(Under Linux, it is a “FriendlyARM” directory), copy an .img or .gz file to the TF card.<br />
+
3) Open the eflasher.conf file on the TF card, set “autoStart=” to the name of your image file, such as:<br />
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
autoStart=openwrt-rockchip-armv8_nanopi-ext4-sysupgrade.img.gz
+
ping CM3588
 
</syntaxhighlight>
 
</syntaxhighlight>
Anyone of the files that contain “-sd-” will work. Here is a list:
+
==登录OpenMediaVault网页后台==
{| class="wikitable"
+
在网页浏览器输入开发板的IP地址, 网页登录帐号默认为:
|-
+
<syntaxhighlight lang="bash">
  | rk3399-sd-friendlywrt-21.02-YYYYMMDD.img.gz
+
用户名: admin
|-
+
密码: openmediavault
  | rk3399-sd-friendlywrt-21.02-docker-YYYYMMDD.img.gz
+
</syntaxhighlight>
|-
+
==设置网页登录密码==
  | rk3399-sd-friendlywrt-22.03-YYYYMMDD.img.gz
+
网页上点击右上角的头像,选择 “更改密码”
|-
+
==默认的Linux帐号与密码==
  | rk3399-sd-friendlywrt-22.03-docker-YYYYMMDD.img.gz
+
普通用户:<br/>
|}
+
&nbsp;&nbsp;&nbsp;&nbsp;用户名: pi<br/>
4) Eject the TF card, insert the TF card to {{{1}}}, power it on it will automatically install your firmware. You can watch the installation progress by observing the LEDs’ status.<br />
+
&nbsp;&nbsp;&nbsp;&nbsp;密码: pi<br/>
=====Option 3: Install OS via USB=====
+
<br/>
======Step 1: Install USB Driver and Tools/Utilities======
+
Root用户:<br/>
Download a driver file DriverAssitant_v5.1.1.zip under the “tools” directory from [http://download.friendlyelec.com/{{#replace:{{#replace:{{BASEPAGENAME}}| |}}|/zh|}} network drive], extract and install it. <br />
+
&nbsp;&nbsp;&nbsp;&nbsp;用户名: root<br/>
Under the same directory, download a utility RKDevTool_Release_v2.84.zip and extract it. <br />
+
&nbsp;&nbsp;&nbsp;&nbsp;密码: fa<br/>
======Step 2: Connect {{{1}}} to PC and Enter Installation Mode======
+
==设置网页超时时间==
1) Disconnect the connected USB cable and the power cord from {{{1}}}, eject the TF card;<br />
+
进入 '''系统 -> 工作台''',设置"自动登出"时间。
2) Press and hold the “Mask” key, power on the board. After the status LED has been on for at least 3 seconds, release the Mask key.<br />
+
==通过ssh登录==
3) Use a USB A-to-A cable, connect {{{1}}} to a PC as follows. Note: please pay attention to the USB port the USB cable is connected to in the screenshot. <br />
+
<syntaxhighlight lang="bash">
[[File:Nanopir4se-usba-to-usba.jpg|frameless|400px]]<br />
+
ssh pi@YourIPAddress
======Step 3: Install image to eMMC======
+
</syntaxhighlight>
A firmware in general is packaged in either of the two options: the first is an whole image (ie, update.img) which is often offered by third party developers, the second is that an image is packaged and placed in multiple partition images. FriendlyElec offers an image in the latter option.
+
pi用户的初始密码为 pi
* Option 1: Install whole image (ie, update.img)<br />
+
==更新用户密码==
On a PC which has the extracted RKDevTool_Release_v2.84 utility, go to the RKDevTool_Release_v2.84 directory, run the RKDevTool.exe file. If everything works, you will see a “Found a new Maskrom device” message on the utility;<br />
+
<syntaxhighlight lang="bash">
Go to “Upgrade Firmware(升级固件), click on “Firmware(固件)”, select your wanted image file, and click on “Upgrade(升级)” to install. After installation is done, your board will reboot automatically and load the system from eMMC;<br />
+
sudo passwd root
* Option 2: Install OS that is packaged & placed in multiple partition images<br />
+
sudo passwd pi
Go to [http://download.friendlyelec.com/{{#replace:{{#replace:{{BASEPAGENAME}}| |}}|/zh|}} network drive] to download your needed package and extract it.
+
</syntaxhighlight>
{| class="wikitable"
+
==配置网络与时区==
|-
+
用root用户登录ssh:
  | colspan=2 | '''Image File'''
+
<syntaxhighlight lang="bash">
|-
+
ssh root@IPAddress
  | rk3399-usb-friendlywrt-21.02-YYYYMMDD.img.gz
+
</syntaxhighlight>
  | '''[[How to Build FriendlyWrt|FriendlyWrt]]'''<br/>Based on OpenWrt 21.02.3<br />Kernel version 5.15.y
+
执行如下命令:
|-
+
<syntaxhighlight lang="bash">
  | rk3399-usb-friendlywrt-21.02-docker-YYYYMMDD.img.gz
+
omv-firstaid
  | '''[[How to Build FriendlyWrt|FriendlyWrt]]'''<br/>Pre-installed Docker<br />Based on OpenWrt 21.02.3<br />Kernel version 5.15.y
+
</syntaxhighlight>
|-
+
界面如下:<br />
  | rk3399-usb-debian-buster-desktop-arm64-YYYYMMDD.img.gz
+
[[File:Omv-firstaid.png|400px]]
  | '''Debian 10(buster) Desktop'''<br />Uses LXDE as default desktop<br />Pre-installed mpv, smplayer and chromium brower<br />Supports hardware acceleration<br >Kernel version 5.15.y
+
==切换国内软件源==
|-
+
<syntaxhighlight lang="bash">
   | rk3399-usb-friendlycore-lite-focal-5.10-arm64-YYYYMMDD.img.gz
+
sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
  | '''FriendlyCore'''<br />Minimal system<br />Based on Ubuntu core 20.04<br />kernel version 5.15.y
+
sudo apt update
|}
+
</syntaxhighlight>
After it is extracted, you will see some utilities and a configuration file under the directory. double click on RKDevTool.exe, you will see a “Found a new Maskrom device” message on the utility. Click on the “Execute”, wait a moment and it will be installed. After installation is done your system will automatically reboot and load the system from eMMC.<br />
+
==配置硬盘==
 +
(注:如果硬盘之前已经初始化,无需重新擦除,RAID可以得到保留,直接挂载即可)<br />
 +
请参考 [[#系统重装后恢复硬盘数据]]
 +
===第一步:清除硬盘===
 +
'''注意备份你的数据'''<br />
 +
进入 '''存储器 -> 磁盘''',选中你的存储器,点击'''“擦除"'''图标进行擦除,一般选'''“快速”'''即可。<br />
 +
如果硬盘无法擦除,你需要先移除此硬盘上的共享文件夹并取消挂载。
 +
===第二步:创建文件系统===
 +
本章节所介绍的两种Raid配置的区别:
 +
* MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。
 +
* Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。
 +
注:不支持为USB接口的硬盘创建RAID队列, 更详细内容请参考官方指南: [https://docs.openmediavault.org/en/latest/administration/storage/raid.html RAID]
 +
====方案1: 配置MD RAID====
 +
* 进入 '''存储器 -> 多重装置''',点击'''“+”'''图标,在'''"级别"'''一栏选择RAID级别,在'''"设备"'''一栏钩选存储设备,保存后,状态如下所示:
 +
[[File:Omv-raid-resyncing.png|center|400px]]<br/>
 +
你需要等待状态从 resyncing 转为 clean,完成后如下图所示:<br />
 +
[[File:Omv-raid-clean.png|center|400px]]<br/>
 +
* 进入 '''存储器 -> 文件系统''',点击'''“+”''',类型建议选择'''"BTRFS"''',选择'''"Single"'''并在"设备"栏中钩选你的存储设备,如果在上一步中创建了RAID,设备名是以"/dev/md"开头的,如果你的设备在'''"设备"'''栏中没法列出,可能是设备中已存在共享文件夹等数据,尝试点击 '''►''' 图标直接挂载,如果数据可以被丢弃,则可以考虑使用如下命令擦除硬盘数据:
 +
<syntaxhighlight lang="bash">
 +
# 注意:硬盘中的所有数据将会丢失
 +
sudo wipefs --all /dev/mdX
 +
</syntaxhighlight>
 +
/dev/mdX需要换成真实的设备,通过"cat /proc/partitions"命令查看。
 +
* 格式化完成后,OpenMediaVault 将提示您挂载该设备。
 +
====方案2: 配置Btrfs RAID====
 +
* 进入 '''存储 -> 文件系统''',点击 '''"+"''' 图标,选择 '''"BTRFS"''',选择 RAID 级别,选择您的硬盘,然后保存设置。<br />
 +
* 格式化完成后,OpenMediaVault 将让您选择要挂载的文件系统,它不会列出RAID阵列中的所有硬盘,选择位于阵列中的其中一个硬盘即可。
 +
====方案3: 不使用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">
 +
rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0
 +
</syntaxhighlight>
 +
然后点 "保存"并应用设置;
 +
===Mac下测试挂载NFS===
 +
命令行查看OpenMediaVault的NFS共享信息
 +
<syntaxhighlight lang="bash">
 +
# showmount -e YourIPAddress
 +
Exports list on YourIPAddress:
 +
/export                             192.168.1.0/24
 +
/export/nfs                         192.168.1.0/24
 +
</syntaxhighlight>
 +
在Mac上右击Finder,选择连接服务器,在地址栏输入
 +
<syntaxhighlight lang="bash">
 +
nfs://YourIPAddress/export/nfs
 +
</syntaxhighlight>
 +
===Linux下测试挂载NFS===
 +
安装软件包
 +
<syntaxhighlight lang="bash">
 +
sudo apt install nfs-common
 +
</syntaxhighlight>
 +
挂载
 +
<syntaxhighlight lang="bash">
 +
sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs
 +
</syntaxhighlight>
 +
查看状态
 +
<syntaxhighlight lang="bash">
 +
# df -h | grep nfs
 +
YourIPAddress:/export/nfs  7.3G  3.5M  6.8G    1% /mnt/nfs
 +
</syntaxhighlight>
 +
设置开机自动挂载,添加如下内容到 /etc/fstab
 +
<syntaxhighlight lang="bash">
 +
YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0
 +
</syntaxhighlight>
 +
==Docker的使用==
 +
===将Docker数据移动至硬盘===
 +
先安装openmediavault-compose插件, 通过SSH登录然后执行如下命令:
 +
<syntaxhighlight lang="bash">
 +
sudo apt update
 +
sudo apt install -y openmediavault-compose
 +
</syntaxhighlight>
 +
刷新网页后,进入'''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建3个文件夹,分别为
 +
<syntaxhighlight lang="bash">
 +
docker            -> Docker数据目录,在/etc/docker/daemon.json中定义
 +
docker-compose    -> Location of compose files
 +
docker-data      -> Location of persistent container data
 +
docker-app        -> 自用,存放Dockerfile和数据
 +
</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">
 +
su root
 +
systemctl stop docker.socket docker.service
 +
mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/
 +
</syntaxhighlight>
 +
在页面上设置 '''Docker存储''' 为该docker共享文件夹的绝对路径,保存并应用后, 重启开发板。
 +
<br />GUI 上填写的最终数值:<br />
 +
<syntaxhighlight lang="text">
 +
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/
 +
</syntaxhighlight>
 +
===Docker安装nextcloud网盘===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。
 +
===Docker安装Filebrowser===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:8080/即可看到Filebrowser的页面,默认管理员的帐号与密码都是admin。
 +
===Docker安装Jellyfin影音服务器===
 +
进入 '''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建media文件夹用于存放影音资源,然后在命令行终端输入以下命令安装Jellyfin:
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:8096/即可看到Jellyfin的页面。
 +
===安装Docker可视化容器管理工具Portainer===
 +
命令行界面输入以下命令即可:
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
 +
完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。
 +
==系统的备还与还原==
 +
===备份eMMC中的系统===
 +
使用tar命令备份文件系统的内容:
 +
<syntaxhighlight lang="bash">
 +
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 /
 +
</syntaxhighlight>
 +
===还原系统到eMMC===
 +
使用SD卡启动,启动Linux系统(例如Debian或Ubuntu均可),使用如下命令查询eMMC上的系统根分区:
 +
<syntaxhighlight lang="bash">
 +
root@CM3588:~# sudo parted -s /dev/mmcblk2 unit MiB print | grep rootfs
 +
8      140MiB  59000MiB  58860MiB  ext4        rootfs
 +
</syntaxhighlight>
 +
根据上面的序号8可以得知根分区的设备名为/dev/mmcblk2p8,下面对它重新格式化并挂载,然后解压rootfs.tar.gz到此处:
 +
<syntaxhighlight lang="bash">
 +
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
 +
</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>
 +
More details → [https://sleeplessbeastie.eu/2015/03/23/how-to-clear-up-pending-resync-on-raid-array/ How to clear up pending resync on RAID array]
 +
===问题: 挂载文件系统时,未列出存储设备===
 +
先使用如下命令擦除硬盘数据:
 +
<syntaxhighlight lang="bash">
 +
# 注意:硬盘中的所有数据将会丢失
 +
sudo wipefs --all /dev/mdX
 +
</syntaxhighlight>
 +
==OpenMediaVault软件包一览==
 +
你可以使用apt命令安装OpenMediaVault的软件包,例如:
 +
<syntaxhighlight lang="bash">
 +
apt install openmediavault-diskstats
 +
</syntaxhighlight>
 +
这是每个软件包的功能列表:<br />
 +
openmediavault-diskclone: 用于克隆磁盘的工具。<br />
 +
openmediavault-diskstats: 显示磁盘使用统计信息的工具。<br />
 +
openmediavault-downloader: 下载管理器,用于管理下载任务。<br />
 +
openmediavault-fail2ban: 防火墙软件,用于防范暴力攻击。<br />
 +
openmediavault-filebrowser: 文件浏览器,用于浏览和管理文件。<br />
 +
openmediavault-flashmemory: 用于将系统日志和临时文件存储在内存中以减少对磁盘的写入。<br />
 +
openmediavault-forkeddaapd: 支持 iTunes 的 DAAP 服务器。<br />
 +
openmediavault-ftp: FTP 服务器,用于文件传输。<br />
 +
openmediavault-kernel: 内核更新工具。<br />
 +
openmediavault-kvm: 虚拟化解决方案,用于运行虚拟机。<br />
 +
openmediavault-locate: 文件搜索工具。<br />
 +
openmediavault-luksencryption: 提供磁盘加密功能。<br />
 +
openmediavault-lvm2: 逻辑卷管理器。<br />
 +
openmediavault-mergerfs: 提供 Union 文件系统功能,将多个文件系统合并成一个逻辑文件系统。<br />
 +
openmediavault-minidlna: DLNA 服务器,用于在网络上共享媒体文件。<br />
 +
openmediavault-nut: 用于监控 UPS(不间断电源系统)的网络通信软件。<br />
 +
openmediavault-omvextrasorg: 提供额外的插件和软件包。<br />
 +
openmediavault-onedrive: 用于与 OneDrive 云存储服务进行集成。<br />
 +
openmediavault-owntone: 用于配置 UPnP/DLNA 媒体服务器。<br />
 +
openmediavault-photoprism: 相片管理软件。<br />
 +
openmediavault-remotemount: 远程挂载管理器。<br />
 +
openmediavault-resetperms: 重置文件和文件夹权限的工具。<br />
 +
openmediavault-rsnapshot: 快照备份工具。<br />
 +
openmediavault-s3: S3 存储服务插件。<br />
 +
openmediavault-sftp: SFTP 服务器。<br />
 +
openmediavault-shairport: AirPlay 音频服务器。<br />
 +
openmediavault-sharerootfs: 允许共享根文件系统的工具。<br />
 +
openmediavault-snapraid: SnapRAID 数据保护工具。<br />
 +
openmediavault-snmp: SNMP(简单网络管理协议)插件。<br />
 +
openmediavault-symlinks: 符号链接管理工具。<br />
 +
openmediavault-tftp: TFTP(Trivial File Transfer Protocol)服务器。<br />
 +
openmediavault-tgt: iSCSI 目标服务器。<br />
 +
openmediavault-usbbackup: USB 备份插件。<br />
 +
openmediavault-wakealarm: 用于通过计划的时间唤醒系统的工具。<br />
 +
openmediavault-webdav: WebDAV 服务器。<br />
 +
openmediavault-wetty: Web 终端工具。<br />
 +
openmediavault-wireguard: WireGuard VPN 插件。<br />
 +
openmediavault-wol: Wake-on-LAN 工具。<br />
 +
openmediavault-anacron: 任务调度工具。<br />
 +
openmediavault-apttool: APT(Advanced Package Tool)管理工具。<br />
 +
openmediavault-autoshutdown: 自动关机工具。<br />
 +
openmediavault-backup: 备份工具。<br />
 +
openmediavault-borgbackup: BorgBackup 工具。<br />
 +
openmediavault-clamav: ClamAV 来检测恶意软件和病毒的防病毒软件。<br />
 +
openmediavault-compose: Docker Compose 工具。<br />
 +
openmediavault-cputemp: 用于监控 CPU 温度的工具。<br />
 +
openmediavault-zfs: ZFS 文件系统支持插件。<br />

Revision as of 05:37, 20 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可以得到保留,直接挂载即可)
请参考 #系统重装后恢复硬盘数据

14.1 第一步:清除硬盘

注意备份你的数据
进入 存储器 -> 磁盘,选中你的存储器,点击“擦除"图标进行擦除,一般选“快速”即可。
如果硬盘无法擦除,你需要先移除此硬盘上的共享文件夹并取消挂载。

14.2 第二步:创建文件系统

本章节所介绍的两种Raid配置的区别:

  • MD RAID:性能更好,因为它在并行写入和读取分块方面做得更好。
  • Btrfs RAID:数据安全性更好,因为校验和使其能够确定块的哪个副本出错,当只有一个副本出错时,并且它能够判断两个副本是否都有问题。

注:不支持为USB接口的硬盘创建RAID队列, 更详细内容请参考官方指南: 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 将让您选择要挂载的文件系统,它不会列出RAID阵列中的所有硬盘,选择位于阵列中的其中一个硬盘即可。

14.2.3 方案3: 不使用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

More details → How to clear up pending resync on RAID array

22.2 问题: 挂载文件系统时,未列出存储设备

先使用如下命令擦除硬盘数据:

# 注意:硬盘中的所有数据将会丢失
sudo wipefs --all /dev/mdX

23 OpenMediaVault软件包一览

你可以使用apt命令安装OpenMediaVault的软件包,例如:

apt install openmediavault-diskstats

这是每个软件包的功能列表:
openmediavault-diskclone: 用于克隆磁盘的工具。
openmediavault-diskstats: 显示磁盘使用统计信息的工具。
openmediavault-downloader: 下载管理器,用于管理下载任务。
openmediavault-fail2ban: 防火墙软件,用于防范暴力攻击。
openmediavault-filebrowser: 文件浏览器,用于浏览和管理文件。
openmediavault-flashmemory: 用于将系统日志和临时文件存储在内存中以减少对磁盘的写入。
openmediavault-forkeddaapd: 支持 iTunes 的 DAAP 服务器。
openmediavault-ftp: FTP 服务器,用于文件传输。
openmediavault-kernel: 内核更新工具。
openmediavault-kvm: 虚拟化解决方案,用于运行虚拟机。
openmediavault-locate: 文件搜索工具。
openmediavault-luksencryption: 提供磁盘加密功能。
openmediavault-lvm2: 逻辑卷管理器。
openmediavault-mergerfs: 提供 Union 文件系统功能,将多个文件系统合并成一个逻辑文件系统。
openmediavault-minidlna: DLNA 服务器,用于在网络上共享媒体文件。
openmediavault-nut: 用于监控 UPS(不间断电源系统)的网络通信软件。
openmediavault-omvextrasorg: 提供额外的插件和软件包。
openmediavault-onedrive: 用于与 OneDrive 云存储服务进行集成。
openmediavault-owntone: 用于配置 UPnP/DLNA 媒体服务器。
openmediavault-photoprism: 相片管理软件。
openmediavault-remotemount: 远程挂载管理器。
openmediavault-resetperms: 重置文件和文件夹权限的工具。
openmediavault-rsnapshot: 快照备份工具。
openmediavault-s3: S3 存储服务插件。
openmediavault-sftp: SFTP 服务器。
openmediavault-shairport: AirPlay 音频服务器。
openmediavault-sharerootfs: 允许共享根文件系统的工具。
openmediavault-snapraid: SnapRAID 数据保护工具。
openmediavault-snmp: SNMP(简单网络管理协议)插件。
openmediavault-symlinks: 符号链接管理工具。
openmediavault-tftp: TFTP(Trivial File Transfer Protocol)服务器。
openmediavault-tgt: iSCSI 目标服务器。
openmediavault-usbbackup: USB 备份插件。
openmediavault-wakealarm: 用于通过计划的时间唤醒系统的工具。
openmediavault-webdav: WebDAV 服务器。
openmediavault-wetty: Web 终端工具。
openmediavault-wireguard: WireGuard VPN 插件。
openmediavault-wol: Wake-on-LAN 工具。
openmediavault-anacron: 任务调度工具。
openmediavault-apttool: APT(Advanced Package Tool)管理工具。
openmediavault-autoshutdown: 自动关机工具。
openmediavault-backup: 备份工具。
openmediavault-borgbackup: BorgBackup 工具。
openmediavault-clamav: ClamAV 来检测恶意软件和病毒的防病毒软件。
openmediavault-compose: Docker Compose 工具。
openmediavault-cputemp: 用于监控 CPU 温度的工具。
openmediavault-zfs: ZFS 文件系统支持插件。