I think it’s a neat idea and shows a very solid understanding of many different concepts. I also have a lot of this kind of knowledge, but fuck me if I would have been able to put all the pieces together like this without a specific need/driver.
Similarly, I've used a project called nixos-infect(1) to install NixOS on cloud providers that don't natively offer it. It's worked well on the handful of boxes I've ran it on.
This will come in very handy, since many providers don't natively provide NetBSD.
I've played similar tricks mounting a ramdisk, copying things in to it, starting daemons from it, then force-remounting rootfs read-only, then doing things you can't normally do. This takes things quite a bit further, and I like it.
I've never quite understood the details of Linux boot methods. This article is wonderful because it doesn't just say what to do, but explains what's going on, and in detail. Can't wait to try!
I’d like to note that there are a lot of cheap, reliable providers that support BSD, either with KVM templates already, installation with an available ISO, or many have custom ISO where you can upload or give the URI to any iso you wish to use. Obviously this will usually be KVM virtualization.
Some providers off the top of my head:
prgmr.com (now tornado vps apparently) - long-standing provider - they used to have netbsd dom0’s but now it’s all Linux based it looks like so appears you have to netinstall netbsd in your vm now)
buyvm.net - reasonable pricing and have bsd available to install (can’t remember if template or iso ready to mount/install)
Thanks for this comprehensive list which I hope will help people in search of such offerings.
I've been told panix.com does also provides such service.
I wrote that article because in specific locations that are out of the US and Europe, the offering might be even narrower.
This was not made out of despair finding a nice provider, but because I found the technical challenge interesting (enough to share).
Cute and scary. Reminds me of a time where i manually converted a remote Linux box to full disk encryption via SSH about 15 years ago. It worked, despite bugs in the debian start scripts. But it was, once again, very scary.
One of the things I've done in the past that is quick and easy is to use grub to chainload another bootable volume. Scp an iso or other disk image over, chainload to that, run the installer inside it as though it had just been pxebooted or booted from a flash drive. If you can netinstall from there, then you're good to go with the OS of your choice.
There's lots of ways if you have access to common cloud primatives (replacement root volume, etc) and have some creativity.
I did appreciate this post though because it's for a way I haven't used before.
Compliments to the author for clearly explaining all of the steps involved. I've never gone this deep, although I have previously converted remote headless Linux servers to full disk encryption using similar techniques. Thanks for sharing!
Obviously the only reason they even wrote a shell script in the first place was so that they could name a repo after it, so that it would have the side effect of making a directory of the same name, so that they could enact their plan to trick you into...something.
The method mentioned in the link you shared is indeed interesting and probably also works with NetBSD among others, but relies on having third party controls
(such as having to select a grub entry and run the installer steps from a cloud control panel).
The reason I experimented and wrote this article was because I thought interesting to find a way to avoid having to rely on any external controls.
Thus this works even on bare metal servers and thanks to QEMU to install absolutely any OS that can boot on QEMU.
After reading all the comments, I believe I must precise, that I am aware of most of the mentioned alternative techniques.
Most of these only work as long as remote screen/keyboard control access is possible throughout a cloud panel (VNC).
My goal with this article was to avoid any third party control and making it to works even on a remote linux desktop pc used as a server.
Thanks for all the feedbacks, I appreciate it.