Operating System Image Tools
Go to file
Luke T. Shumaker 43e3a10c96 Document the osi-mk module interface 2023-10-31 02:45:56 -06:00
lib osi.sh: Use gprintf instead of print in error() 2023-10-30 12:37:42 -06:00
mypy-stubs Write a `pacman-choices` program 2023-10-30 12:37:42 -06:00
osi-mk.d add openrc support for osi-shell, build an openrc base image 2018-08-20 11:56:11 -04:00
.gitignore rename things 2018-08-05 21:56:44 -04:00
COPYING.AGPL.txt copyright statements/identifiers 2018-08-18 14:42:42 -04:00
COPYING.md Update README.md and COPYING.md 2023-10-28 14:18:45 -06:00
Makefile Document the osi-mk module interface 2023-10-31 02:45:56 -06:00
README.md Update README.md and COPYING.md 2023-10-28 14:18:45 -06:00
TODO.md Some of the tests require UTF-8. 2018-08-17 22:23:02 -04:00
osi-extract Define $EXIT_ constants to use instead of littering magic numbers 2023-10-30 12:37:42 -06:00
osi-mk osi-mk: Add a pre_install hook too 2023-10-30 15:10:08 -06:00
osi-mk.md Document the osi-mk module interface 2023-10-31 02:45:56 -06:00
osi-mount Define $EXIT_ constants to use instead of littering magic numbers 2023-10-30 12:37:42 -06:00
osi-shell Define $EXIT_ constants to use instead of littering magic numbers 2023-10-30 12:37:42 -06:00
pacman-choices osi-mk: Have the user explicitly make pacman choices 2023-10-30 15:10:08 -06:00

README.md

osi-tools: Operating System Image Tools

Usage

$ ./osi-mk [FLAGS] SYS.img                               # to build an image
$ ./osi-shell SYS.img                                    # launch an interactive shell in an emulator
$ sudo ./osi-mount --{root|user} SYS.img COMMAND         # run command with SYS.img mounted
$ sudo ./osi-extract SYS.img IMAGE_SRC_DIR HOST_DST_DIR  # to extract files from an image

Dependencies

I believe the complete list of dependencies is (along with what I believe is the newest feature that is depended on):

  • arch-install-scripts
  • btrfs-progs
  • GNU Bash 4.4 (needs @Q)
  • GNU coretutils 8.15 (needs realpath)
  • GNU gettext
  • QEMU (needs qemu-system-x86_64)
  • sed
  • sudo
  • util-linux-ng 2.18 or newer (needs automatic loop devices in mount)

This can be install on a Parabola Parabola GNU/Linux-libre system with the following command:

sudo pacman -S --needed arch-install-scripts btrfs-progs bash coreutils gettext qemu-system-x86 sed sudo util-linux

Developing

You can lint the code in this repository by running make lint, which requires the shellcheck command.