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`. despite
  34. the naming, they are not traditional "live" images like those available on x86
  35. platforms, and do not need 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