I found out in this forum that it’s possible to install Manjaro ARM on an SSD and boot from USB without further configuration (given that the RPi 4B’s firmware is up to date).
Now, I would like to know if its possible to extract the Manjaro.img.xz image into a single partition of that SSD without formatting the whole device. Other partitions of that SSD contain a x86_64 Manjaro 's /boot/efi, /root and /home.
I’m used to dd tool, but I remember a warning on the Arch Wiki which emphasizes that a whole device and not a partition should be passed as target for dd command:
Do not append a partition number, so do not use something like /dev/sdb1.
How should I proceed, then? Will there be any conflict at boot if I keep the x86_64 partitions in the same drive?
Thank you.
I am just going to offer this as a suggestion. My RPi 4 is not high-performance, it’s more like a toy. You probably could boot from the SD card and plug the USB SSD in to get access to your data area. This seems like the quickest fix without risking the data you have on the SSD. In most cases where performance is super critical an X86_64 computer would be a better choice for hardware. I know this doesn’t really answer the question you were asking but this is how I would approach it.
Thank you, but since I usually stick to low resources-consumming software (most of the time I have only some Firefox tabs and a text editor open), I own lots of potato laptops that just fit my needs. So an overclocked RPi4 can certainly compete with my old and cheap laptops, and the small size and low power consumption is a plus.
I don’t have SD cards left, and the price of one is not much lower of that of a cheap SSD, and for the benchmarks I’ve seen it’s really worth the extra space. So, in case its not possible, I would buy a cheap SSD, but if I can spare some bucks I’d go for using the free space in that SSD I have.
Roughly, you could do the following, if booting with an SD is acceptable:
install Manjaro ARM to an SD card as normal
boot on the new SD card and perform the initial setup
edit the /boot/cmdline.txt file and change the root label from ROOT_MNJRO to ARM_MNJRO
shutdown and eject the SD, then boot on SSD, and then re-insert the SD card
make a new partition on your SSD and format it ext4 with ARM_MNJRO as the label
mount the SD card’s second partition
cd to the mount point
mount the new partition created on the SSD
copy all files to the new partition
boot the RPi with the SD card inserted and the SSD connected
This will pre-boot with the SD, but once booted, the SSD partition will be the root filesystem.
Warning: you play with a risk with multiple Manjaro installs on a single device. Manjaro ARM boots with filesystem labels and I expect the x86_64 does too. You must be careful and know how to fix things. For example, if an update makes changes to cmdline.txt. You might consider switching to using UUID for mounting with both x86_64 and ARM, rather than labels.
Note: If you are not sure how to do the above, you may want to reconsider if this is a direction you wish to go. Because these are very type of things you will need to do, to recover if updates mess things up.
Thank you, I suppose that something like that could be done a bit easily using BerryBoot, but even then it looks like extra work and that microSD’s only purpose would be to load a bootloader. If that’s the only way, I will get an old 1gb microSD for that.