commit fd281bbf52b9e771fb5176d26bfcbed1334fe831 Author: gryf Date: Mon Oct 21 21:20:27 2019 +0200 Added readme diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..ec7917d --- /dev/null +++ b/README.rst @@ -0,0 +1,66 @@ +mkinitramfs +=========== + +Simple script for generating initramfs for the encrypted root disks. + +Usage +----- + +- Create encrypted disk or partition using `cryptsetup`_ +- Create ``~/.config/mkinitramfs/disks.json`` file with similar content to: + + .. code:: json + + { + "name": { + "uuid": "disk-uuid", + "key": "key-filename" + }, + ... + } + + where every entry have disk name (**name** in this case), which have two + attributes - disk/partition UUID and key filename. +- Provide a key file for the disk/partition. Assumption is, that it is an + encrypted file using `ccrypt`_ instead of plain file or password protected + luks. Keys will be looked using provided path, i.e. + + .. code:: json + + { + "laptop": { + "uuid": "88b99002-028f-4744-94e7-45e4580e2ddd", + "key": "/full/path/to/the/laptop.key" + }, + "desktop": { + "uuid": "23e31327-1411-491c-ab00-c36f74c441f1", + "key": "desktop.key" + }, + "pendrive": { + "uuid": "1453a45e-ca3f-4d39-8fd7-a6a96873c25c", + "key": "../pendrive.key" + } + } + + so yes - it is possible to use key file in absolute or relative paths. If no + key will be found, it's been looking for in path specified by + ``--key-path | -k`` parameter, which by default is in + ``$XDG_CONFIG_HOME/mkinitramfs/keys`` (usually in + ``~/.config/mkinitramfs/keys``. +- Move ``mkinitramfs.py`` script to some location in your ``$PATH`` (like + ``~/bin``) +- Invoke ``mkinitramfs.py`` script: + + .. code:: shell-session + + # mkinitramfs.py laptop + + that command will generate initramfs, copy key, and make appropriate change + in ``init`` script and compress it with ``cpio``. + + Using ``--install | -i`` parameter, initramfs will be automatically installed + on ``/boot`` with appropriate links. Note, that old images (they have + ``.old`` suffix in the filename) will be removed in that case. + +.. _ccrypt: https://sourceforge.net/projects/ccrypt/ +.. _cryptsetup: https://gitlab.com/cryptsetup/cryptsetup/blob/master/README.md