Essentially, I’m trying to use the “Custom Image” feature on DigitalOcean to create a Manjaro server (reason being latest package versions for a personal project) from an Architect CLI installation to a VM.
DO has some requirements for custom images (https://www.digitalocean.com/docs/images/custom-images/):
Image has to be in an acceptable format: Done, I’ve used VirtualBox to create a VDI.
Size: Done. It’s far less than 100GB. The compressed upload is only around 1GB.
Filesystem: Done. I used ext4 during the VM setup.
SSH: Done. All set up, functioning, and launching at boot.
cloud-init is where I’m entering somewhat foreign territory. I modified the Ubuntu instructions as needed for Manjaro from here (How to Create a DigitalOcean Droplet from an Ubuntu ISO Format Image | DigitalOcean) removed the previous config files, replaced the datasource_list with datasource_list: [ ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, None, NoCloud ]
made sure cloud-init was enabled with systemctl, and ran the clean command for cloud-init.
This all appears to work. So, I shutdown the VM, gzip it, and upload to DO. But, after uploading the image to DO and trying to create a new droplet from it, I am immediately dropped to an emergency shell because it cannot find the rootfs. I must have done something partially right here, because I see it is the latest manjaro kernel. But, it won’t go anywhere beyond the emergency shell.
I’ve looked at https://wiki.archlinux.org/index.php/Cloud-init but I don’t see anything there that would help me out. I did even try this with the growpart AUR package to see if maybe that was why my filesystems weren’t being loaded, but that didn’t seem to change anything either.
Perhaps someone that knows more about cloud-init could point me in the right direction here? I know that there is an image-bootstrap project that creates OpenStack Arch images that work with DO (tested myself.) So, Manjaro should work, I just can’t figure out which part I’m missing here.