解决 Proxmox VE 无法安装到 eMMC 上的问题

chen'mo
2022-10-23 / 1 评论 / 20,071 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年10月22日,已超过724天没有更新,若内容或图片失效,请留言反馈。

最近在折腾锐角云…

看到商家的介绍,8g 内存 64g 存储只要 200 多?!赶紧剁手下单,结果到手后才发现,内存和存储都是焊接到主板上的…不禁感叹,买的还是没有卖的精啊。

这个设备原装是两个存储设备,一个板载 64G 的 eMMC 另外一个是采用 mSATA 口的 SSD ,到手的时候这台机器只剩下板载的存储了,那个 SSD 已经不翼而飞了,为这设备再添购一个 SSD 实在是不划算,同时为了最大化利用这个硬件,我在这台设备上折腾了一下,尝试使用 PVE,结果安装的过程中提示 
unable to get device for partition 1 on device /dev/mmcblk1
 erro

解决

经过一天的尝试,通过以下方式可以绕开官方的限制,在 eMMC 上安装 Proxmox VE 6.3:

⚠️警告:PVE 并未针对这种设备优化,eMMC 也并非针对这种使用设计。PVE 每天要往存储设备中写入一定量的日志信息,USE AT YOUR OWN RISK!

  1. 启动 PVE 安装程序,进入安装初始界面
  2. 启动后点击  (高级选项)
    Install Proxmox VE (Debug mode)
  3. 在第一次提示你可以输入命令的时候输入 
    Ctrl-D,继续安装过程
  4. 在第二次提示你可以输入命令的时候输入 
    vi /usr/bin/proxinstall

     编辑文件(或者使用其他文字编辑器如 nano)

  5. 输入 
    /unable to get device

     定位到对应位置

  6. 你可以看到类似下方的内容:

    ...
        } elsif ($dev =~ m|^/dev/[^/]+/hd[a-z]$|) {
            return "${dev}$partnum";
        } elsif ($dev =~ m|^/dev/nvme\d+n\d+$|) {
            return "${dev}p$partnum";
        } else {
            die "unable to get device for partition $partnum on device $dev\n";
        }
    ...

    将其修改(添加)为:

    ...
        } elsif ($dev =~ m|^/dev/[^/]+/hd[a-z]$|) {
            return "${dev}$partnum";
        } elsif ($dev =~ m|^/dev/nvme\d+n\d+$|) {
            return "${dev}p$partnum";
        } elsif ($dev =~ m|^/dev/mmcblk\d+$|) {
            return "${dev}p$partnum";
        } else {
            die "unable to get device for partition $partnum on device $dev\n";
        }
    ...

    (输入:wq回车即可保存)
    Test

  7. 然后输入 
    Ctrl-D 继续安装过程
  8. 此时应该进入了正常的安装程序,硬盘选择的时候选择 
    /dev/mmcblk1
    (没有bootX后缀)(建议关闭 swap)
  9. 最后安装完成后输入 
    Ctrl-D,重启系统

另外,也可以使用官方提供的方式,先安装 Debian 再安装 PVE,只不过那样安装很慢,而且网卡和分区并没有提前配置好,需要自己手动配置。具体参见:
Install Proxmox VE on Debian Buster – Proxmox VE
https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Buster

网上还有使用 bin 等类似 ghost 的方法直接 dd 进 eMMC,或者先安装到另外一个硬盘上再使用 DiskGenius 乾坤大挪移到 eMMC 等方法在此不再做过多叙述,可以参见下方文章:

原理

Install Proxmox VE (Debug mode)

 提供了在安装过程中各个阶段执行脚本的能力。

修改的文件是为安装程序提供 MMC 设备检测支持。

没有直接修改 ISO 主要是由于,一是该文件在 pve-installer.squashfs 中,由安装程序在运行的时候加载,修改需要解包后重新打包,二是这样更透明,避免使用一个来源不是很明确的二进制文件。

安装过程中,配置信息那里使用了 Linux 的图形界面,类似于 Ubuntu 的使用,按下 
Ctrl+Alt+F1/F2

 为相应的日志信息,按下 
Ctrl+Alt+F3

 可以切换出命令行,按下 
Ctrl+Alt+F4

 可以切换回图形界面。

2
linux格式化磁盘命令(磁盘分区及格式化)
« 上一篇 10-22
PVE7.2中安装docker 以及docker-compose
下一篇 » 10-23

评论 (1)

插入图片
  1. 头像
    热心网友 Lv.1   吉林省吉林市
    Windows 10 · Google Chrome
    沙发

    亲测可用7.4安装成功

    回复