Golang extension to build ISOs with Luet
- mksquashfs
- xorriso
This tool generates ISO reading specfiles in the following syntax:
packages:
# Packages to be installed in the rootfs
rootfs:
- utils/busybox
# Packages to be installed in the uefi image
uefi:
- live/systemd-boot
- system/mocaccino-live-boot
# Packages to be installed in the isoimage
isoimage:
- live/syslinux
- system/mocaccino-live-boot
# This configuration isn't necessarly required. You can also just specify the repository to be used in the luet configuration file
repository:
packages:
- repository/mocaccino-micro
- repository/mocaccino-musl-universe
# Specify initramfs/kernel and avoid generation on-the-fly
# files must be present on /boot folder in the rootfs
initramfs:
kernel_file: "bzImage"
rootfs_file: "rootfs.cpio.xz"
# Specify a container remote image to pull and use for the rootfs in place of packages (optional)
rootfs_image: ""
# Image prefix. If Image date is disabled is used as the full title.
image_prefix: "MocaccinoOS-Micro-0."
image_date: true
# Luet repositories (https://luet-lab.github.io/docs/docs/getting-started/#configuration-in-etcluetreposconfd) to use.
luet:
repositories:
- name: "mocaccino-desktop-stable" # Repository name
type: "http" # Repository type, disk, docker or http are supported (disk for local path)
enable: true # Enable/Disable repo
urls: # Repository URLs
- "https://get.mocaccino.org/mocaccino-desktop-stable"
$ luet-makeiso <specfile>
Flags:
- local: Path to local luet repository to use to install packages from
A container image reference (e.g. quay.io/.../...:latest
) that will be used as a rootfs for the ISO.
A list of luet packages to install in the rootfs. The rootfs will be squashed to a rootfs.squashfs
file
A list of luet packages to be present in the efi ISO sector.
A list of luet packages to be present in the ISO image.
A list of package repository (e.g. repository/mocaccino-extra
) to be installed before luet install
commands Requirements
The kernel file under /boot/
that is your running kernel. e.g. vmlinuz
or bzImage
The initrd file under /boot/
that has all the utils for the initramfs
overlay:
isoimage: "dir"
Path to a folder which content will be copied over the ISO (before generating the ISO file).
overlay:
uefi: "dir"
Path to a folder which content will be copied over the UEFI partition (before generating the image).
overlay:
rootfs: "dir"
Path to a folder which content will be copied over the rootfs (before generating squashfs).
ISO image prefix to use
Boolean indicating if the output image name has to contain the date
A string representing the ISO final image name
A string representing the arch. Defaults to x86_64
.
Path to the luet config to use to install the packages from
Run go build
or make build
from the checkout.
Download the binary from the releases if you haven't compiled locally.
Otherwise it's available in the luet-official
repo, you can install it with:
$> luet install extension/makeiso
You don't need anything special than running the binary with the specfile as argument:
$> luet-makeiso myspec.yaml
Note: It respects TMPDIR
for setting up temporary folders