Difference between revisions of "Getting Started with Proxmox/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
 
(updated by API)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Getting Started with OpenMediaVault|English]]
+
[[Getting Started with Proxmox|English]]
==OpenMediaVault版本信息==
+
==Proxmox版本信息==
 
* OS: Debian 12<br />
 
* OS: Debian 12<br />
* OpenMediaVault: 7.0.5-1 (Sandworm)<br />
+
* Proxmox VE: 8.2.7<br />
* Others: 已安装OMV-Extras软件包<br />
+
==Proxmox运行界面==
==旧版本的OpenMediaVault文档==
+
[[File:Proxmox-cn.png|600px]]
Link to → [[Getting Started with OpenMediaVault6/zh|Getting Started with OpenMediaVault6]]
+
==OpenMediaVault运行界面==
+
[[File:Openmediavault7-zh.png|600px]]
+
 
==支持的平台==
 
==支持的平台==
* RK3328<br />
+
* RK3528 (单核)<br />
* RK3399<br />
+
* RK3566 (单核)<br />
 
* RK3568<br />
 
* RK3568<br />
 
* RK3588<br />
 
* RK3588<br />
==查看IP地址==
+
==IP地址==
可以使用ping命令来获得IP地址:
+
固定为 192.168.1.200,可参考如下方法更改:
 +
===系统启动后更改IP地址===
 +
例如你的网络网段是192.168.100,要设置成192.168.100.200的IP地址,可以用如下命令:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ping openmediavault
+
rm -f /etc/firstuse
 +
sed -i 's/new_ip=.*/new_ip=192.168.100.200/' /etc/init.d/friendlyelec_firstuse.sh
 +
reboot
 
</syntaxhighlight>
 
</syntaxhighlight>
==登录OpenMediaVault网页后台==
+
如下配置文件会被改动:<br/>
在网页浏览器输入[http://openmediavault/ http://openmediavault/], 或者开发板的IP地址登录网页后台, 帐号默认为:
+
/etc/resolv.conf<br/>
 +
/etc/network/interfaces<br/>
 +
/etc/hosts<br/>
 +
Proxmox对主机名的设置比较严格,设置不正确会导致服务无法启动, 要特别留意。
 +
===安装系统前更改IP地址===
 +
将烧录了eflasher固件的sd卡插入电脑,挂载sd卡的第一个分区,假设sd卡设备为/dev/sdX,挂载到/mnt,命令如下:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
用户名: admin
+
mount /dev/sdX1 /mnt
密码: openmediavault
+
 
</syntaxhighlight>
 
</syntaxhighlight>
==设置网页登录密码==
+
使用vi或其他编辑器打开文件 /mnt/proxmox-arm64/info.conf,追加以下一行内容, 再使用此sd卡烧写Proxmox系统到eMMC:
网页上点击右上角的头像,选择 “更改密码”
+
==默认的Linux帐号与密码==
+
普通用户:<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;用户名: pi<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;密码: pi<br/>
+
<br/>
+
Root用户:<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;用户名: root<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;密码: fa<br/>
+
==设置网页超时时间==
+
进入 '''系统 -> 工作台''',设置"自动登出"时间。
+
==通过ssh登录==
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ssh pi@YourIPAddress
+
bootargs-ext=proxmox_ip=192.168.100.200
 
</syntaxhighlight>
 
</syntaxhighlight>
pi用户的初始密码为 pi
+
上面的设置是把proxmox_ip=192.168.100.200保存到内核启动参数里,由/etc/init.d/friendlyelec_firstuse.sh脚本去读取并初始化网络设置。
==更新用户密码==
+
==登录Proxmox网页后台==
 +
在网页浏览器输入 https://192.168.1.200:8006, 浏览器可能会弹出隐私错误的提示,点击 "高级",选择 "继续访问" 即可。<br />
 +
默认帐号: <br />
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
sudo passwd root
+
用户名: root
sudo passwd pi
+
密码: fa
 
</syntaxhighlight>
 
</syntaxhighlight>
==配置网络与时区==
+
普通用户:
用root用户登录ssh:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ssh root@IPAddress
+
用户名: pi
 +
密码: pi
 
</syntaxhighlight>
 
</syntaxhighlight>
执行如下命令:
+
本文在测试时使用root用户访问。
 +
==通过ssh登录==
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
omv-firstaid
+
ssh root@192.168.1.200
 
</syntaxhighlight>
 
</syntaxhighlight>
界面如下:<br />
+
root用户的初始密码为fa, pi用户初始密码为pi
[[File:Omv-firstaid.png|400px]]
+
==创建虚拟机==
==切换国内软件源==
+
仅支持EFI ACPI的虚拟机。
===Debian中文源===
+
===使用iso文件创建虚拟机===
 +
本文以安装debian为例。<br />
 +
先从debian官网下载live iso文件:[https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/ debian-12.7.0-arm64-netinst.iso],然后使用scp命令上传到开发板的对应目录, Windows用户可以使用WinScp软件上传:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
sudo sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
+
scp debian-12.7.0-arm64-netinst.iso root@192.168.1.200:/var/lib/vz/template/iso/
sudo apt update
+
 
</syntaxhighlight>
 
</syntaxhighlight>
===OpenMediaVault中文源===
+
点击右上角 “创建虚拟机” 按钮,然后在向导界面上对虚拟机进行配置,重要的设置项如下,其余的使用默认值即可:
 +
{| class="wikitable"
 +
! Section !! Content !! Description
 +
|-
 +
| 常规 || '''名称''': 随意填写 ||
 +
|-
 +
| 操作系统 || '''EFI Storage''': local<br />'''ISO镜像''': debian-12.7.0-arm64-netinst.iso || 选择Debian安装所需的iso文件
 +
|-
 +
| 系统 || '''机型''': virt<br />'''BIOS''': OVMF (UEFI)<br />'''SCSI控制器''': VirtIO-SCSI ||
 +
|-
 +
| 磁盘 || '''存储''': local ||
 +
|-
 +
| CPU || '''核心''': 1 || 这里使用单核心
 +
|-
 +
| 内存 || '''内存(MiB)''': 512<br />'''最小内存(MiB)''': 512 || Memory allocation for the VM
 +
|-
 +
| 网络 || '''桥接''': wan<br />'''模型''': VirtIO (paravirtualized) || 可以选择wan和br-lan
 +
|}
 +
* 建议先使用单核的CPU配置完成系统的安装,再尝试更改成多核
 +
* 需要注意的是,由于不支持异端架构,CPU大小核不能混用,要么全用大核,要么全用小核, 具体做法是明确指定虚拟机使用的核心,序号从0开始,比如某些CPU序号0-3是大核, 虚拟机要使用4个核心,就填写'''0,1,2,3'''
 +
* 默认情况下系统已经创建好wan和br-lan两个网桥,虚拟机绑定到wan,则虚拟机和开发板处于同一网段,会从上游路由器分配IP地址 (本例中分配得到192.168.1.0/24网段的地址),虚拟机绑定网络到lan,则会从本机的dhcp server分配得到网段为192.168.2的IP地址
 +
====启动虚拟机====
 +
在左边导航区选择新创建的虚拟机,点击“控制台”,再点"Start Now"
 +
===使用qcow2磁盘映像文件创建虚拟机===
 +
下面演示使用命令行来创建虚拟机,将qcow2磁盘映像文件导入到虚拟机,  请将下面的example.qcow2替换成真实的文件名,当你在网上下载qcow2文件时,注意选用文件名含有aarch64和efi字样的版本:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
omv-env set OMV_APT_REPOSITORY_URL "https://mirrors.bfsu.edu.cn/OpenMediaVault/public"
+
# download  
omv-env set OMV_APT_ALT_REPOSITORY_URL "https://mirrors.bfsu.edu.cn/OpenMediaVault/packages"
+
wget https://github.com/xxx/yyy/releases/download/armv8/example.qcow2 -O example.qcow2
omv-env set OMV_APT_KERNEL_BACKPORTS_REPOSITORY_URL "https://mirrors.bfsu.edu.cn/debian"
+
omv-env set OMV_APT_SECURITY_REPOSITORY_URL "https://mirrors.bfsu.edu.cn/debian-security"
+
# 如果你有安装 omv-extras 则需要运行如下命令更改源
+
omv-env set OMV_EXTRAS_APT_REPOSITORY_URL "https://mirrors.bfsu.edu.cn/OpenMediaVault/openmediavault-plugin-developers"
+
omv-env set OMV_DOCKER_APT_REPOSITORY_URL "https://mirrors.bfsu.edu.cn/docker-ce/linux/debian"
+
omv-env set OMV_PROXMOX_APT_REPOSITORY_URL "https://mirrors.bfsu.edu.cn/proxmox/debian"
+
# 使得环境变量更改生效
+
omv-salt stage run all
+
</syntaxhighlight>
+
==配置硬盘==
+
(注:如果硬盘之前已经初始化,无需重新擦除,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''' 插件,安装完毕后刷新页面。
+
* 进入'''服务 -> Compose -> 设置''',滚动到页面最下方,点击 '''重新安装Docker''' 即可安装Docker。
+
<!--
+
===安装Docker===
+
<syntaxhighlight lang="bash">
+
apt update
+
apt -y install apt-transport-https ca-certificates curl gnupg
+
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg
+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | \
+
    tee /etc/apt/sources.list.d/docker.list > /dev/null
+
apt update
+
apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
+
gpasswd -a pi docker
+
</syntaxhighlight>
+
-->
+
===将Docker数据移动至硬盘===
+
进入'''存储器 -> 共享文件夹''',添加 '''"+"''' 图标创建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 \
+
# create vm with id(200)
    -v $PWD/data:/var/www/html --restart=always \
+
qm create 200 --name example --memory 1024 --net0 virtio,bridge=wan --bios ovmf --cores 1 --cpu host
    --privileged=true  arm64v8/nextcloud
+
</syntaxhighlight>
+
完成后在网页浏览器访问http://YourIPAddress:8888/即可看到nextcloud网盘的页面,如果无法访问,建议重启一下设备。
+
===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 \
+
# create EFI disk for id(200)
-v $PWD/config:/config \
+
qm set 200 --bios ovmf
-v $PWD/cache:/cache \
+
qm set 200 --efidisk0 local:1
-v $(readlink -f /srv/dev-disk-by-uuid-*/media):/media \
+
qm set 200 --boot c --bootdisk scsi0
-p 8096:8096 \
+
qm set 200 --scsihw virtio-scsi-pci
--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 \
+
# import img file into vm
  --name portainer \
+
qm importdisk 200 example.qcow2 local
  --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>
 
</syntaxhighlight>
完成后在网页浏览器访问http://YourIPAddress:9000/即可看到Portainer的页面,默认管理员的帐号与密码都是admin。
+
回到界面,可以看到多了一个 “example“ 的虚拟机,<br />
==系统的备还与还原==
+
选中它,点“硬件“,双击“未使用的磁盘”, 在弹出的对话框中更改如下选项:<br />
===备份eMMC中的系统===
+
总线/设备:'''SCSI'''<br />
使用tar命令备份文件系统的内容:
+
SCSI控制器: '''VirtIO SCSI'''<br />
 +
最后点 “添加”<br />
 +
回到管理界面,点 “控制台”, 点 “Star Now" 启动虚拟机<br />
 +
显示 "Display output is not active" 时需要耐心等待。
 +
==其他==
 +
===增加Swap空间===
 +
建议内存2G及以下机器进行该设置
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
su root
+
dd if=/dev/zero of=/swapfile bs=1M count=4096
cd /
+
chmod 600 /swapfile
tar --warning=no-file-changed -cvpzf /rootfs.tar.gz \
+
mkswap /swapfile
    --exclude=/rootfs.tar.gz --exclude=/var/lib/docker/runtimes \
+
swapon /swapfile
    --exclude=/etc/firstuser --exclude=/etc/friendlyelec-release \
+
echo "/swapfile none swap sw 0 0" >> /etc/fstab
    --exclude=/usr/local/first_boot_flag --one-file-system /
+
 
</syntaxhighlight>
 
</syntaxhighlight>
===还原系统到eMMC===
+
查看状态
使用SD卡启动,启动Linux系统(例如Debian或Ubuntu均可),使用如下命令查询eMMC上的系统根分区:
+
<syntaxhighlight lang="bash">
+
root@openmediavault:~# 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。
+
==常见问题与解决办法==
+
===问题: 部分硬盘无法识别===
+
可能有多个固态硬盘具有相同的ID,请使用以下命令进行检查:
+
<syntaxhighlight lang="bash">
+
sudo dmesg | grep duplicate IDs
+
</syntaxhighlight>
+
如果出现字样"globally duplicate IDs for nsid",更新固件即可解决。<br />
+
此类硬盘不支持使用 /dev/disk/by-id 方式来访问。
+
===问题: 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到新版本==
+
命令行有两个命令可用于系统更新:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
omv-upgrade        # 更新当前软件包到新版本
+
swapon --show
omv-release-upgrade # 大版本升级,例如从5.6.x升级到6.x
+
free -h
 
</syntaxhighlight>
 
</syntaxhighlight>
Refre to → [https://docs.openmediavault.org/en/latest/various/apt.html Software & Update Management]
+
===切换国内软件源===
==OpenMediaVault软件包一览==
+
请参考 [https://mirrors.ustc.edu.cn/help/proxmox.html Proxmox中文源]
你可以使用apt命令安装OpenMediaVault的软件包,例如:
+
===检查内核是否开启了KVM===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
apt install openmediavault-diskstats
+
root@prox4nanopi:~# ls -l /dev/kvm
 +
crw-rw---- 1 root kvm 10, 232 Oct 11 04:23 /dev/kvm
 +
root@prox4nanopi:~# dmesg | grep kvm
 +
[    7.796613] kvm [1]: IPA Size Limit: 40 bits
 +
[    7.796627] kvm [1]: GICv3: no GICV resource entry
 +
[    7.796631] kvm [1]: disabling GICv2 emulation
 +
[    7.796642] kvm [1]: GIC system register CPU interface enabled
 +
[    7.796755] kvm [1]: vgic interrupt IRQ9
 +
[    7.796959] kvm [1]: VHE mode initialized successfully
 
</syntaxhighlight>
 
</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 />
 

Latest revision as of 08:10, 18 October 2024

English

1 Proxmox版本信息

  • OS: Debian 12
  • Proxmox VE: 8.2.7

2 Proxmox运行界面

Proxmox-cn.png

3 支持的平台

  • RK3528 (单核)
  • RK3566 (单核)
  • RK3568
  • RK3588

4 IP地址

固定为 192.168.1.200,可参考如下方法更改:

4.1 系统启动后更改IP地址

例如你的网络网段是192.168.100,要设置成192.168.100.200的IP地址,可以用如下命令:

rm -f /etc/firstuse
sed -i 's/new_ip=.*/new_ip=192.168.100.200/' /etc/init.d/friendlyelec_firstuse.sh
reboot

如下配置文件会被改动:
/etc/resolv.conf
/etc/network/interfaces
/etc/hosts
Proxmox对主机名的设置比较严格,设置不正确会导致服务无法启动, 要特别留意。

4.2 安装系统前更改IP地址

将烧录了eflasher固件的sd卡插入电脑,挂载sd卡的第一个分区,假设sd卡设备为/dev/sdX,挂载到/mnt,命令如下:

mount /dev/sdX1 /mnt

使用vi或其他编辑器打开文件 /mnt/proxmox-arm64/info.conf,追加以下一行内容, 再使用此sd卡烧写Proxmox系统到eMMC:

bootargs-ext=proxmox_ip=192.168.100.200

上面的设置是把proxmox_ip=192.168.100.200保存到内核启动参数里,由/etc/init.d/friendlyelec_firstuse.sh脚本去读取并初始化网络设置。

5 登录Proxmox网页后台

在网页浏览器输入 https://192.168.1.200:8006, 浏览器可能会弹出隐私错误的提示,点击 "高级",选择 "继续访问" 即可。
默认帐号:

用户名: root
密码: fa

普通用户:

用户名: pi
密码: pi

本文在测试时使用root用户访问。

6 通过ssh登录

ssh root@192.168.1.200

root用户的初始密码为fa, pi用户初始密码为pi

7 创建虚拟机

仅支持EFI ACPI的虚拟机。

7.1 使用iso文件创建虚拟机

本文以安装debian为例。
先从debian官网下载live iso文件:debian-12.7.0-arm64-netinst.iso,然后使用scp命令上传到开发板的对应目录, Windows用户可以使用WinScp软件上传:

scp debian-12.7.0-arm64-netinst.iso root@192.168.1.200:/var/lib/vz/template/iso/

点击右上角 “创建虚拟机” 按钮,然后在向导界面上对虚拟机进行配置,重要的设置项如下,其余的使用默认值即可:

Section Content Description
常规 名称: 随意填写
操作系统 EFI Storage: local
ISO镜像: debian-12.7.0-arm64-netinst.iso
选择Debian安装所需的iso文件
系统 机型: virt
BIOS: OVMF (UEFI)
SCSI控制器: VirtIO-SCSI
磁盘 存储: local
CPU 核心: 1 这里使用单核心
内存 内存(MiB): 512
最小内存(MiB): 512
Memory allocation for the VM
网络 桥接: wan
模型: VirtIO (paravirtualized)
可以选择wan和br-lan
  • 建议先使用单核的CPU配置完成系统的安装,再尝试更改成多核
  • 需要注意的是,由于不支持异端架构,CPU大小核不能混用,要么全用大核,要么全用小核, 具体做法是明确指定虚拟机使用的核心,序号从0开始,比如某些CPU序号0-3是大核, 虚拟机要使用4个核心,就填写0,1,2,3
  • 默认情况下系统已经创建好wan和br-lan两个网桥,虚拟机绑定到wan,则虚拟机和开发板处于同一网段,会从上游路由器分配IP地址 (本例中分配得到192.168.1.0/24网段的地址),虚拟机绑定网络到lan,则会从本机的dhcp server分配得到网段为192.168.2的IP地址

7.1.1 启动虚拟机

在左边导航区选择新创建的虚拟机,点击“控制台”,再点"Start Now"

7.2 使用qcow2磁盘映像文件创建虚拟机

下面演示使用命令行来创建虚拟机,将qcow2磁盘映像文件导入到虚拟机, 请将下面的example.qcow2替换成真实的文件名,当你在网上下载qcow2文件时,注意选用文件名含有aarch64和efi字样的版本:

# download  
wget https://github.com/xxx/yyy/releases/download/armv8/example.qcow2 -O example.qcow2
 
# create vm with id(200)
qm create 200 --name example --memory 1024 --net0 virtio,bridge=wan --bios ovmf --cores 1 --cpu host
 
# create EFI disk for id(200)
qm set 200 --bios ovmf
qm set 200 --efidisk0 local:1
qm set 200 --boot c --bootdisk scsi0
qm set 200 --scsihw virtio-scsi-pci
 
# import img file into vm
qm importdisk 200 example.qcow2 local

回到界面,可以看到多了一个 “example“ 的虚拟机,
选中它,点“硬件“,双击“未使用的磁盘”, 在弹出的对话框中更改如下选项:
总线/设备:SCSI
SCSI控制器: VirtIO SCSI
最后点 “添加”
回到管理界面,点 “控制台”, 点 “Star Now" 启动虚拟机
显示 "Display output is not active" 时需要耐心等待。

8 其他

8.1 增加Swap空间

建议内存2G及以下机器进行该设置

dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap sw 0 0" >> /etc/fstab

查看状态

swapon --show
free -h

8.2 切换国内软件源

请参考 Proxmox中文源

8.3 检查内核是否开启了KVM

root@prox4nanopi:~# ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 Oct 11 04:23 /dev/kvm
root@prox4nanopi:~# dmesg | grep kvm
[    7.796613] kvm [1]: IPA Size Limit: 40 bits
[    7.796627] kvm [1]: GICv3: no GICV resource entry
[    7.796631] kvm [1]: disabling GICv2 emulation
[    7.796642] kvm [1]: GIC system register CPU interface enabled
[    7.796755] kvm [1]: vgic interrupt IRQ9
[    7.796959] kvm [1]: VHE mode initialized successfully