Proxmox 8 on Lattepanda 3 & ZimaBoard
Proxmox kept erroring out when attempting to install on the eMMC storage on my Lattepanda 3 and ZimaBoard. After some querying I found that the Proxmox developers block instillation on eMMC and like devices do to the account of writes it does to daily. In a production environment this is a reliability issue but for a home lab this not as much of a concern if you are smart about it.
I found the solution here: https://ibug.io/blog/2022/03/install-proxmox-ve-emmc/
Unfortunately, the instruction reference a script that has been moved. Thankfully this is a minor issue as someone posted the new location in the comments of the post.
All-in-on Solution for Proxmox 8 & ZimaBoard
1) Boot the installer ISO and chose Advanced Options from the first menu
2) Chose Install Proxmox VE (Graphical Debug mode) form the second menu
3) After the first part boot process completes it will leave you in an boot environment that is to early in the startup process. Once the command line prompt shows up type exit to continue the boot process.
4) After the second stage of the boot process completes it will leave you at a second command prompt. Navigate to /usr/share/perl5/Proxmox/Sys/
5) Use vi or nano to edit Block.pm
6) Look for the following block of code:
if ($dev =~ m|^/dev/sd([a-h]?[a-z]\|i[a-v])$|) {
return "${dev}$partnum";
} elsif ($dev =~ m|^/dev/xvd[a-z]$|) {
# Citrix Hypervisor blockdev
return "${dev}$partnum";
} elsif ($dev =~ m|^/dev/[hxev]d[a-z]$|) {
return "${dev}$partnum";
} elsif ($dev =~ m|^/dev/[^/]+/c\d+d\d+$|) {
return "${dev}p$partnum";
} elsif ($dev =~ m|^/dev/[^/]+/d\d+$|) {
return "${dev}p$partnum";
} 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";
}
Comments
Post a Comment