CROSSHURD-IMAGE(8)

πŸ“¦ version 1.7.66, in ubuntu stonking

πŸ’Ύ crosshurd-image(8) β€” bestie edition

okay so real talk: crosshurd-image is a script (manual page CROSSHURD-IMAGE(8), in case you were wondering where you are) that ✨creates✨ a bootable disk image file with a crosshurd setup. That's it, that's the whole vibe. Read on, babe. 🫢


🌸 NAME 🌸

crosshurd-image β€” make a bootable disk image file with a crosshurd setup πŸ’…


✨ SYNOPSIS ✨

crosshurd-image [option_*]

πŸ¦‹ DESCRIPTION πŸ¦‹

The script crosshurd-image creates a bootable disk image file with a crosshurd setup. Iconic behavior, no notes. You can legit use it as the primary disk for a virtual machine, like, say, with qemu-system-x86_64. Main character disk energy fr fr. πŸ‘‘


πŸŽ€ OPTIONS πŸŽ€

  • --disk=filename β€” bestie, use filename for the disk image file instead of the default base.img. Name your child whatever you want πŸ’–
  • --size=number β€” make the disk image file be number of GiB instead of the default 40. Bigger disk = bigger slay.
  • --name=hostname β€” set up the filesystem with hostname instead of the default hurd-test. This name gets written into both /etc/hosts and /etc/hostname in the created filesystem. It's giving real identity. πŸͺͺ
  • --ip=address/bits β€” use address (ipv4) and bits (the network part bits size) instead of the default 192.168.240.2/24. Networking era πŸ’…
  • --gw=address β€” use this ipv4 address as the gateway instead of the default 192.168.240.1. The gateway, the moment, the icon.
  • --cpu=type β€” pick the cpu type for crosshurd, like i386 instead of the default x86_64. Choose your fighter βš”οΈ
  • --extlinux β€” use extlinux boot equipment instead of the default grub. Different bootloader, same destiny.
  • --mb=file β€” choose which multiboot definition file to use instead of the default /usr/share/crosshurd-image/servers.boot. Custom menu, custom meal πŸ“

🌈 NOTES 🌈

crosshurd-image runs through a straight-forward sequence of steps, and here's the whole choreography:

  1. create a blank disk image file, partitioned in a DOS table with a single partition, and formatted for GNU Hurd (ext2fs -o hurd)
  2. use crosshurd for stage-1 setup of the GNU Hurd Debian filesystem
  3. add a bootloader (syslinux or grub) to the disk image file with stage 1 boot loader, and multiboot configuration for GNU Hurd core modules
  4. finalize setup with hostname and networking setup

The disk image file is then ready to be used as the primary disk for a virtual machine with legacy bios boot. Periodt. πŸ”₯

⚠️ heads up bestie: the disk image file is created as a "holes" file, where only data blocks actually in use have been allocated in the filesystem. So the actual size initially is smaller than what, say, ls -l reports. Not a bug, just mysterious. πŸ™ˆ

🧚 MULTIBOOT DEFINITION FORMAT 🧚

The multiboot definition file is a grub multiboot snippet. The first line constitutes the parameters for the multiboot tag, and the lines following constitute subsequent module declarations separated by blank lines. This snippet will be included verbatim (except for comments and blank lines) for the grub boot option, whereas it will be translated into the syslinux parameter format for its mboot module for the extlinux boot option.

The latter is essentially the same format, except:

  • the module keyword for grub is replaced with mboot's module separator tag "---"
  • arguments are stripped of their surrounding single-quotes
  • the line breaks are replaced by spacing, since the mboot arguments need to be on a single line

Same energy, different syntax. Translating is an art form bestie. πŸ’œ


πŸ‘‘ AUTHOR πŸ‘‘

Ralph Ronnquist <rrq@rrq.au>


🌸 that's the whole page, love you, bye 🌸 β€” this cutie was brought to you by the crosshurd-image(8) source, version dated 2026-03-15. go build that disk image, bestie, you're gonna ate πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from