July 23rd, 2024

From Linux to NetBSD, with SSH Only

CloudBSD.xyz offers a method to swap a remote Linux server's OS using SSH with takeover.sh script. Caution is advised, requiring components like busybox, fakeinit.c, and NetBSD ISO. Leveraging initrd and pivot_root, users can install NetBSD while maintaining remote access.

Read original articleLink Icon
AppreciationCuriosityCaution
From Linux to NetBSD, with SSH Only

CloudBSD.xyz provides a method to swap the operating system of a remote Linux server using SSH access. The process involves using a script called takeover.sh, which allows for the installation of NetBSD over an existing Debian Linux system. The article emphasizes the need for caution and understanding of the implications before attempting such actions on owned or authorized infrastructure. The procedure involves preparing components like a statically built busybox, compiling fakeinit.c, and having the NetBSD ISO ready for installation. The method leverages concepts like initrd and pivot_root to gain control of the main volume and install the new operating system while retaining remote access. The process requires public access to SSH ports and a sufficient amount of RAM to accommodate the new system's installation files. By following the outlined steps and utilizing the provided tools, users can effectively switch the operating system of their choice on remote servers, expanding the possibilities for hobbyists and enthusiasts interested in exploring different operating systems.

AI: What people are saying
The comments reflect a mix of appreciation, personal experiences, and alternative methods related to the article's topic of installing NetBSD on a remote Linux server.
  • Many commenters commend the author for the clarity and depth of the article.
  • Several users share their own experiences with similar techniques for OS installation or conversion.
  • Some highlight the availability of providers that support BSD installations, suggesting alternatives to the method described.
  • There are mentions of historical methods and projects related to OS installations, indicating a shared interest in creative solutions.
  • Concerns about the risks involved in such operations are noted, with some recalling past experiences that were challenging.
Link Icon 12 comments
By @naguam - 3 months
Hi, author of the article here.

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.

By @DocChi77 - 3 months
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.

(1): https://github.com/elitak/nixos-infect

By @johnklos - 3 months
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!

By @indigodaddy - 3 months
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)

https://www.netcup.eu/vserver/ - excellent value / been around forever (they offer custom iso)

I will add more here as I think of them..

By @doubled112 - 3 months
I've installed Debian (on ZFS with debootstrap and chroot) from inside a CentOS install over SSH before, but this is different.
By @Tepix - 3 months
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.
By @darkhelmet - 3 months
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.

By @xolox - 3 months
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!
By @gslin - 3 months
This reminds me some other interesting things (but from Linux to FreeBSD) around 15-20 years ago:

* https://www.daemonology.net/depenguinator/

By @lagniappe - 3 months
Im watching the asciinema and wondering whats that first `ls` move? is that expanding files with `ls` somehow?
By @j_not_j - 3 months
Offtopic:

OpenBSD has an installation ramdisk. Just boot that.

See https://raby.sh/installing-openbsd-on-ovhs-vps-2016-kvm-mach...

I've also seen "dd if=path/to/install/ramdisk /dev/sd0" and reboot; depends on being classic BIOS not uefi. Can't find the link tho.