Featured

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";
}
7) Edit the end of the code block to match this:
} 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";
}
8) Save your edits and type exit to continue the boot process into the installer GUI
9) Chose your local storage /dev/mmcblk0 or similar and install Proxmox as normal
10) Once compelte you will be returned to the command prompt for a final time. Type exit to reboot the system.

Comments

Popular Posts