UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

152 lines (98 loc) 3.96 kB
Related articles * [systemd](/index.php/Systemd "Systemd") * [systemd-nspawn](/index.php/Systemd-nspawn "Systemd-nspawn") * [Linux Containers](/index.php/Linux_Containers "Linux Containers") * [Docker](/index.php/Docker "Docker") **[mkosi](https://github.com/systemd/mkosi)** stands for *Make Operating System Image*, and is a tool for generating an OS tree or image that can be booted. ## Contents * [1 Installation](#Installation) * [2 Basic usage](#Basic_usage) * [2.1 Example: Create and boot a Debian-Image](#Example:_Create_and_boot_a_Debian-Image) * [2.2 2\. Example: Using Config-files](#2._Example:_Using_Config-files) * [2.3 Configurations](#Configurations) * [3 See also](#See_also) ## Installation Install [mkosi](https://aur.archlinux.org/packages/mkosi/) or [mkosi-git](https://aur.archlinux.org/packages/mkosi-git/). Depending on what Distribution you want to build install further packages: | Distribution | Package | | Arch | [arch-install-scripts](https://www.archlinux.org/packages/?name=arch-install-scripts) | | Debian | [debootstrap](https://www.archlinux.org/packages/?name=debootstrap), [debian-archive-keyring](https://www.archlinux.org/packages/?name=debian-archive-keyring) | | Ubuntu | | Fedora | [dnf](https://aur.archlinux.org/packages/dnf/) | | OpenSUSE | [zypper-git](https://aur.archlinux.org/packages/zypper-git/) | ## Basic usage You can create an image by calling mkosi as root ``` # mkosi ``` You can specify option as arguments or by editing files in the current folder. ### Example: Create and boot a Debian-Image The following command will create a bootable image with latest debian-version and the package openssh-clients installed: ``` $ mkosi -d debian -t raw_gpt -b --checksum --password password --package openssh-clients,vim -o image.raw ``` you can boot it with systemd-nspawn: ``` # systemd-nspawn -b -i image.raw ``` or boot it virtualized with qemu and ``` $ qemu-system-x86_64 -m 512 -smp 2 -bios /usr/share/ovmf/x64/OVMF_CODE.fd -drive format=raw,file=image.raw ``` You can also write this image to an usb-drive and use it to boot you computer. ### 2\. Example: Using Config-files The same image can be created by creating a config-file: `mkosi.default` ``` [Files] [Distribution] Distribution=debian Release=stretch [Output] Format=raw_gpt Bootable=yes Output=image.raw [Packages] Packages= openssh-client vim [Validation] Password=password ``` **Tip:** If you create a folder mkosi.cache in current working dir, mkosi will save all downloaded packages there, so you can recreate images faster. ### Configurations Basic options can be specified as commandline argument or in a file called mkosi.default in your current folder. Most important Options: | Argument | Option in mkosi.default | Description | | -d | [Distribution] Distribution= | Wich distribution should be installed: fedora,debian,ubuntu,arch,opensuse | | -r | [Distribution] Release= | The version of the distribution: jessie, 21, … | | -t | [Output] Format= | Format of the image to create: * **raw_gpt**: Imagefile with GPT-Partiontable and ext4-Filesystem * **raw_btrfs**: Imagefile with GPT-Partiontable and btrfs-Filesystem * **raw_squashfs**: Imagefile with GPT-Partiontable and squashfs-Filesystem * **directory**: A plain directory * **subvolume**: A btrfs subvolume * **tar**: A tar-ball of a plain directory | | -b | [Output] Bootable=yes | make the image bootable | | --root-size | [Output] RootSize= | Size of the root-filesystem | | -p | [Packages] Packages= | List of packages to be installed into the image | | -o | [Output] Output= | File/directory-Name | | --password | [Validation] Password=test | Set the initial Root-Password | ## See also * [Mkosi on Github](https://github.com/systemd/mkosi) * [Longer introduction](http://0pointer.net/blog/mkosi-a-tool-for-generating-os-images.html)