this post was submitted on 22 Aug 2023
23 points (87.1% liked)

Linux

48008 readers
1058 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
all 30 comments
sorted by: hot top controversial new old
[–] [email protected] 9 points 1 year ago (1 children)

The last time I needed to boot a PC that didn't have a screen, I built a NixOS installation image with SSH access. I added a user, sudo access, and prepopulated authenticated SSH keys, something similar to https://nixos.mayflower.consulting/blog/2018/09/11/custom-images/

It was about as easy as configuring my own NixOS system.

[–] [email protected] 6 points 1 year ago

It was about as easy as configuring my own NixOS system.

Probably true but also potentially misleading

[–] [email protected] 7 points 1 year ago (1 children)

Making a distro requires constant packaging, updating and bugfixing. I dont think a single person should do that

[–] [email protected] 2 points 1 year ago

Tadaaam: LinuxMint.

[–] [email protected] 7 points 1 year ago (1 children)

without using special tools like respin and archiso

What do you exactly mean with this?

  • Can we suggest any package/tool that you have to install?
  • Did you intend to convey a solution that's independent of an existing distro?
  • Do you want the custom distro/iso to only do its thing until installation? Or are you perhaps interested in something more declarative that can continue to exist and be (one of) the primary means to config your system?
  • Could you explain to us how your envisioned solution looks like?

Sorry for asking these questions, but it was either this or a very very long post satisfying all kinds of different criteria. Thanks you in advance for answering any of the questions!

[–] [email protected] 3 points 1 year ago (1 children)

I've been struggling to make a bootable iso. I did Linux from scratch and I wanted to boot it in virtual box. I found a sparse amount of info about mkisofs/genisofimage but I couldn't actually get a successful boot after following a few tutorials.

I have to imagine there are more modern tools for something like this but I didn't have any luck googling.

Sorry to hijack but it sounds like you might have an answer I need. I just want a way to put together an iso with a bootloader that works in virtual machines. (I'm good with 32bit grub but I'd work with uefi too).

[–] [email protected] 3 points 1 year ago (2 children)

Would you be fine with some tooling that enables one to make their own custom iso from an existing distro? This path still allows for a substantial amount of freedom, though it's not a blank slate by any stretch of the imagination. But it makes up for it with how relatively easy and painless it can be.

Or would you instead like to get into the nitty-gritty of things and want all the freedom you'd want? This increased freedom does come with a substantial cost in convenience and labour.

Pick your poison :P . I'll be waiting ;) .

[–] [email protected] 3 points 1 year ago (1 children)

Customizing a base distro sounds like a good place to start 👍🏽

[–] [email protected] 4 points 1 year ago (1 children)

So taking your other comment into consideration as well, I suppose the following would be the easiest good setup:

  1. Install Debian Stable using the image for a minimal network install onto a secondary device or onto a partition of your main device (multi-boot). Make sure to only include the stuff you think you'd need.
  2. Install all of your favorite tools within that Debian Stable installation.
  3. Use the excellent penguins-eggs package to make a live image out of it.
  4. Install the live image onto your favorite USB with whichever tool you like; personally I enjoy using ventoy.
  5. Profit :P .

If my proposed solution doesn't quite fit your needs, then please feel free to correct me!

[–] [email protected] 3 points 1 year ago (1 children)

This sounds like a perfectly workable solution!

I assume getting a persistent environment in a USB recovery stick is a bigger task? I'm imagining that, with your method, I would need to repeat this process any time I wanted to update the image or load specific new kernel modules/drivers?

[–] [email protected] 2 points 1 year ago (1 children)

Good questions!

I assume getting a persistent environment in a USB recovery stick is a bigger task?

I actually don't know if penguins-eggs allows persistent environments 🤔 . Though, other tools might be better fit for the job. Personally I'd recommend you to follow this guide for openSUSE Leap. A similarly good guide/documentation for Debian is absent, and openSUSE Leap is likewise a good fit due to it being supported over a longer time period as well. The steps outlined in the guide might be a bit more involved, but the team behind openSUSE have done a wonderful job to ensure accessibility.

I’m imagining that, with your method, I would need to repeat this process any time I wanted to update the image or load specific new kernel modules/drivers?

With the method outlined in my previous comment, you only have to repeat the process from scratch if you didn't save the Debian install some way or another. If you did keep the Debian install around, then you could just; open it up, apply some updates/changes or (un)install additional packages and make yet another live image out of it. Granted, the openSUSE Leap persistent Live USB that has been previously mentioned in this comment is easier to change later down the line regardless.

Btw, -to my knowledge- the persistent Live USB environment is also possible on other distros like Debian, Fedora, Ubuntu etc. So arguably it's best to first look at which distro satisfies your needs in regards to package availability. After which, in my opinion, LTS/Stable releases ought to be preferred over the others.

[–] [email protected] 2 points 1 year ago (1 children)

Thanks a ton for all the advice! 👍🏼

[–] [email protected] 2 points 1 year ago (1 children)

It has been my pleasure! I'm curious on what you'll end up doing. So please consider to report back if it isn't too much to ask :blush: !

[–] [email protected] 2 points 1 year ago

Certainly! I'm not sure when I'll get around to actually doing it, but my intent was to create an emergency boot drive to send to my elderly family members that they could plug in if the system ever started acting up, and I'll build it in such a way that it'll be able to be booted as a Linux live USB, and also have a Windows partition for any tools that I might need for remote access and in-system diagnostics.

I've built a few scripts for the Linux bootable but I can't seem to remember where I stored that particular repo at the moment, so I'll share later.

Some of my stuff is up on my GitHub (same username)

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

Going to try the penguins-eggs method you posted. I would love to be able to turn a virtual box environment into an installable medium to make my own version of debian with all my gnome tweaks.

I would also love a solution that doesn't require booting into the OS first. So that I can take a root dir and turn it into a bootable iso. I tried a bunch of old tutorials for making a boot.iso and linking it into mkisofs with -b but it never worked.

I am willing to learn/use any free tooling. Not picky at all.

[–] [email protected] 1 points 1 year ago (1 children)

Going to try the penguins-eggs method you posted. I would love to be able to turn a virtual box environment into an installable medium to make my own version of debian with all my gnome tweaks.

Good choice! The "penguins-eggs method" should fit the bill ;) !

I would also love a solution that doesn’t require booting into the OS first. So that I can take a root dir and turn it into a bootable iso.

Few questions :P :

  1. If I understood you correctly, you mean that all of the files that will make up the bootable iso are contained -presumably under FHS- within a root dir of another distro? Or did you mean it as a partition? Or did you mean any tool that can build your iso from within another system based on (declarative) instructions?
  2. Are we still talking about Debian with all your GNOME tweaks?
  3. Is Debian a hard requirement? Or would you be open to say something like Fedora?
  4. Is Live USB a hard requirement?
  5. Might seem random, but what's your stance on declarative distros?

I tried a bunch of old tutorials for making a boot.iso and linking it into mkisofs with -b but it never worked.

Small nitpick; I generally recommend using xorriso over mkisofs, the latter is only packaged in most distros as part of xorriso anyways*. While genisoimage does 'provide' mksisofs as well, genisoimage is unmaintained and should therefore not be used.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

So eggs is great for Debian with my Gnome stuff.

As for xorriso I have a LFS dir that very much resembles a Linux root dir (without a DE or any distro specific software) and I can chroot into it mounting /dev, /sys, /run, /proc from my host system.

I would like to compress that LFS dir into an iso combined with a boot loader.

That LFS dir is on a separate partition and does have a boot loader installed on that partition's hard drive. But I'd rather boot it in a virtual machine and I didn't want to give the vm raw hard drive access.

I hope that helps but I'm happy to answer more questions.

Booting into a live CD isn't a hard requirement because I can probably just use eggs after I get it to boot in a vm.

Edit: also thanks for the insight about xorriso I had real trouble finding much info about the differences between the three.

Edit 2: I'm going to run LFS on the exact same hardware it compiled on so I can probably use grub installed on my host system.

That said I did try using grub-mkimage on my host system and when passing that iso into mkisofs -b I still couldn't get a boot. (No bootable medium found.)

[–] [email protected] 1 points 1 year ago (1 children)

Thanks for answering! Now I've got a better picture of what you're trying to achieve. However, unfortunately, I've yet to dabble into LFS. So I'm afraid that I might not be that helpful 😭. Wish you the best of luck though!

[–] [email protected] 2 points 1 year ago (1 children)

Alright thanks. Well if you know of any good resources for xorriso particularly with the -b (boot) flag I'd like to read them.

Google has been mostly serving me 15 year old SO posts that aren't relevant to modern Linux anymore.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

The official manual page for xorriso is probably the best place to start. Unfortunately it mostly glosses over how it's compatible with mkisofs and doesn't further delve too much into what mkisofs does and thus how to engage with the -b flag. Fortunately, that information can be found on the related manual page for xorrisofs.

Please feel free to notify me if I can be of further help :blush: !

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

Thanks. I see the word boot is referenced 200 times on the related manual page. So I suspect a thorough read through of that page will help me.

[–] [email protected] 2 points 1 year ago (1 children)

Yeah lol 🤣 . Consider reporting back after testing your findings. Thanks in advance!

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Edit: For anyone reading this in the future ECMA-119 is freely distributable and seems to conform to ISO 9660. ECMA also have versions of some of the specs referenced by ISO 9660. (ECMA-6, ECMA-35, ECMA-43)


Will do. I was gonna start by reading ISO 9660 and I found out it costs 200 dollars from standards.iso.org. Which is a shame because there's a bunch of other ISO standards referenced in 9660 which would cost even more money to read. I always heard people reference these standards but I had no idea they were so inaccessible to regular users. But I think I found some kind of annotated copy of the spec to read,

[–] [email protected] 4 points 1 year ago (1 children)

What do you need to accomplish by creating a new distro? Because it can vary depending on the edits you do on the base distro

[–] [email protected] 5 points 1 year ago (2 children)

Hijacking for my own idea: what if I wanted to make my own updated version of say, hiren's Linux environment that included tools for data recovery and drive administration among other things. I would love to basically build my own custom recovery environment preloaded with all my favorite tools.

Tbf, with a few hours of googling, I could probably figure this out for myself so don't go through a bunch of trouble unless you want to document for others. I'm mainly posting because I saw OP and wondered if something easy already existed?

[–] [email protected] 3 points 1 year ago

Well if you want to make a completely independent distro you could try linux from scratch and package the distro as an ISO with the packages you want and maybe try to add a package manager if you can. However i doubt that would be worth it as linux from scratch takes a lot of time and efforts to build and will rarely be better than just building a custom arch or debian ISO

[–] [email protected] 4 points 1 year ago

Unless you're trying to build custom AMIs for a cloud environment (packer is the answer for this job) then it sounds like a nightmare of a project to maintain long term. You'd be much better off using config management and a more or less vanilla base distro.

[–] [email protected] 2 points 1 year ago

If you want a kali-based live environment, you can follow this tutorial: https://www.kali.org/docs/development/live-build-a-custom-kali-iso/ You can configure a lot of options and most of the building process is just downloading packages.

[–] [email protected] 2 points 1 year ago

Do you want to distribute it (in mass)? Otherwise i don't see the point you can run a script that you use every time you install the OS