README.md.in 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # The Void Linux live image/rootfs generator and installer
  2. ## Overview
  3. This repository contains several utilities:
  4. * [*mklive.sh*](#mklivesh) - The Void Linux live image generator for x86
  5. * [*build-x86-images.sh*](#build-x86-imagessh) - Wrapper script to generate bootable
  6. and installable live images for x86
  7. * [*mkrootfs.sh*](#mkrootfssh) - The Void Linux rootfs generator for all platforms
  8. * [*mkplatformfs.sh*](#mkplatformfssh) - The Void Linux filesystem tool to produce
  9. a rootfs for a particular platform
  10. * [*mkimage.sh*](#mkimagesh) - The Void Linux image generator for ARM platforms
  11. * [*mknet.sh*](#mknetsh) - Script to generate netboot tarballs for Void
  12. * *installer.sh* - The Void Linux el-cheapo installer for x86
  13. * *release.sh* - interacts with GitHub CI to generate and sign images for releases
  14. ### Workflow
  15. #### Generating x86 live ISOs
  16. To generate a live ISO like the officially-published ones, use
  17. [*build-x86-images.sh*](#build-x86-imagessh). To generate a more basic live ISO
  18. (which does not include things like `void-installer`), use [*mklive.sh*](#mklivesh).
  19. #### Generating ROOTFS tarballs
  20. ROOTFS tarballs contain a basic Void Linux root filesystem without a kernel.
  21. These can be useful for doing a [chroot install](https://docs.voidlinux.org/installation/guides/chroot.html)
  22. or for [chroots and containers](https://docs.voidlinux.org/config/containers-and-vms/chroot.html).
  23. Use [*mkrootfs.sh*](#mkrootfssh) to generate a Void Linux ROOTFS.
  24. #### Generating platform-specific tarballs
  25. Platform-specific ROOTFS tarballs, or PLATFORMFS tarballs, contain a basic Void
  26. Linux root filesystem including a kernel. These are commonly used for bootstrapping
  27. ARM systems or other environments that require platform-specific kernels, like
  28. Raspberry Pis.
  29. First create a ROOTFS for the desired architecture, then use
  30. [*mkplatformfs.sh*](#mkplatformfssh) to generate a Void Linux PLATFORMFS.
  31. #### Generating ARM images
  32. Platform-specific filesystem images contain a basic filesystem layout (`/` and
  33. `/boot` partitions), ready to be copied to the target drive with `dd`. These are
  34. not "live" images like those available on x86 platforms, and do not need
  35. installation like live ISOs.
  36. To generate these images, first create a PLATFORMFS for the desired platform,
  37. then use [*mkimage.sh*](#mkimagesh) to generate the image.
  38. ## Dependencies
  39. Note that void-mklive is not guaranteed to work on distributions other than Void
  40. Linux, or in containers.
  41. * Compression type for the initramfs image (by default: liblz4 for lz4, xz)
  42. * xbps>=0.45
  43. * qemu-user-static binaries (for mkrootfs)
  44. * bash
  45. ## Kernel Command-line Parameters
  46. `void-mklive`-based live images support several kernel command-line arguments
  47. that can change the behavior of the live system:
  48. - `live.autologin` will skip the initial login screen on `tty1`.
  49. - `live.user` will change the username of the non-root user from the default
  50. `anon`. The password remains `voidlinux`.
  51. - `live.shell` sets the default shell for the non-root user in the live environment.
  52. - `live.accessibility` enables accessibility features like the console screenreader
  53. `espeakup` in the live environment.
  54. - `console` can be set to `ttyS0`, `hvc0`, or `hvsi0` to enable `agetty` on that
  55. serial console.
  56. - `locale.LANG` will set the `LANG` environment variable. Defaults to `en_US.UTF-8`.
  57. - `vconsole.keymap` will set the console keymap. Defaults to `us`.
  58. ### Examples:
  59. - `live.autologin live.user=foo live.shell=/bin/bash` would create the user `foo`
  60. with the default shell `/bin/bash` on boot, and log them in automatically on `tty1`
  61. - `live.shell=/bin/bash` would set the default shell for the `anon` user to `/bin/bash`
  62. - `console=ttyS0 vconsole.keymap=cf` would enable `ttyS0` and set the keymap in
  63. the console to `cf`
  64. - `locale.LANG=fr_CA.UTF-8` would set the live system's language to `fr_CA.UTF-8`
  65. ## Usage