NixOS Feel for any OS

Allows you to have reproducible builds for your own OS setup, resembling NixOS’ behaviour, but it works for major Linux distributions and even Windows 10.

This tool seems amazing.

Could some of you please test it?

2 Likes

Having just spent the last 2 weeks learning how to make a copy of an installed OS on a bootable usb drive, this is of some interest.

Looked at github, the documentation is a bit sparse. No install hints, only example is Windows.

Will give it a try. See if it can reproduce what I have just done from CLI.

If I checked correctly, you see the implementation of how the provisioner works.

Seems like, it supports shell and ansible, in general. Which means, you can apply the Windows configuration example to any other supported OS, as well.
I also saw, that more operating systems are or will be supported, than mentioned in the README.

1 Like

Well I am glad you can interpret that stuff
I did read the README
Not deterred.
There is an install.sh script for ArchLinux. Might start by modifying that.

I’m the creator of this project, so thank you!

So far, it works best with ArchLinux, but there are still a lot of rough edges. Once everything is working 100%, I’ll improve the examples and documentation.

Actually the idea is not to modify that file and instead introduce your own provisioning scripts to customize your image.

1 Like

Thank you, I have not got to trying that yet, but it is still on my list.

What we are thinking about is setting up a generic method of making a live .iso file from an installed linux distro.
I recently made a custom .iso by hand with Void linux, and it was quite a task and there were some issues which I did not fully understand.

My thinking was that I might be able to learn from the goldboot project, or even use it or parts of it. Any suggestion would be appreciated.

Regards
Neville

Yeah, creating bootable ISOs can be a pain. So goldboot uses a custom image format kind of similar to qcow2. You can’t boot it just like an ISO, but the ‘goldboot’ CLI is able to write it to something like a USB stick which can then be booted as usual.

I don’t have a Void Linux template yet, but it’s designed to be fairly easy to add templates. Basically I would just copy the ArchLinux template and replace the ISO URL and the boot command.

So, could I use goldboot or qcow2 to share custom bootable linux images with others, particularly for use in qemu or virtualbox? You said it could be written to usb drives which are then easily made bootable.
What about hard installs from a goldboot2 image? Is it compressed like an .iso?

I will give goldboot a run. I might be able to make you a Void Linux template. I can at least try it on Debian

Regards
Neville

I plan to have a HTTP registry where you can push goldboot images to be shared with others. Kind of like docker in a way.

You can run goldboot images in QEMU pretty easily by writing the image to a plain file instead of to a disk and adding it as a raw device in QEMU. The images are compressed with zstd and optionally encrypted with AES.

Fair warning, you’ll probably encounter some issues along the way. This is still experimental stuff.

It seems like it should be possible with actual Docker.

https://people.cs.vt.edu/~butta/docs/cluster2019-dockerhub.pdf (CTRL+F for ‘largest uncompressed image’)

This way, you don’t have to deal with your own solution and the associated costs!

Thank you, It sounds like I should do an install and try some experiments.
Not worried about issues at this stage.
What we are looking for is a way of sharing images of customized Linux installs among users of the itsFOSS site. I did an experiment with an .iso… it worked, but is way too difficult for general use. The one advantage of an iso is people know how to handle an iso file. With goldboot there may be an education issue at the user end, but it sounds like it could be simpler to make

Regards
Neville

Yeah, the goldboot registry would do that pretty well. I eventually plan to run a public one at something like public.goldboot.org where people can download/install images without having to build them first. It’ll be completely FOSS of course, so anyone can host their own registry.

I just have to find the time to finish it :slight_smile: . I’m hoping by the end of the year, it’ll be much more stable. But I wouldn’t consider using it in production until it’s sufficiently battle-tested.

1 Like

I thought about having goldboot optionally generate ISOs, but that’s going to be a significant amount of work. Especially if I want to do it in pure Rust. I would probably need to find someone who is an expert on ISO9660 to do it.

I dont feel that is high priority.

That sounds like a complete solution to our little problem.
We can be patient.
I dont have the skills to offer help, other than trialling things, and I will definitely be doing that. Most of my programming experience is C and R and old Fortran, not Rust.

Will try a build shortly
Regards
Neville

It’s great to see you are attacking this issue in your project.

Thank you for your work. Keep going! :slightly_smiling_face: