|
1 | 1 | # OCaml Arch Linux Installer |
2 | 2 | [](https://travis-ci.org/darrenldl/oali) |
3 | 3 |
|
4 | | -### Description |
| 4 | +## Warning |
| 5 | +Oali is still extremely early in development, and still WIP |
| 6 | + |
| 7 | +It is difficult to test an installer targeting a live CD automatically, so right now it's still a lot of manual testing |
| 8 | + |
| 9 | +Please do **NOT** use it for anything serious yet |
| 10 | + |
| 11 | +## Description |
5 | 12 | Oali is an installer written in OCaml which sets up a Arch Linux installation with following variations |
6 | 13 | - 3 disk layouts |
7 | 14 | - Single system disk (installer does partitioning for you) |
8 | | - - You pick the partitions for `/boot` `/` etc manually |
| 15 | + - You pick the partitions for `/boot`, `/` etc manually |
9 | 16 | - Single system partition (you pick an existing partition on a disk) + USB key (partitioned by installer) |
10 | 17 | - Optional full disk encryption |
11 | 18 | - Optional `linux-hardened` kernel installation |
12 | 19 |
|
13 | 20 | Oali aims to be smart and hassle free, so following features are included as a result |
14 | 21 | - Automatic adjustment of dialogues and settings based on whether the live CD is running in UEFI or BIOS mode |
15 | 22 |
|
16 | | -### Encryption specifics |
17 | | -In all disk layouts, system partition (i.e. `/`) is protected by a keyfile |
18 | | - |
19 | | -The keyfile is stored in within the initramfs in boot partition, which is protected by a user provided passphrase |
20 | | - |
21 | | -LUKS setup is used for all encrypted partitions. |
22 | | - |
23 | | -If in UEFI mode, the ESP partition will be present but is not (and cannot be) encrypted. |
24 | | - |
25 | | -### Post-install notes |
26 | | -After installation, several files will be present in `/root/llsh_pack` (all of the files are to be accessed/executed by root) |
27 | | -- `salt_exec.sh` allows you start the saltstack setup, present only if you answered yes to using saltstack for your further setup |
28 | | -- `oli_setup_note` contains description of the files |
29 | | -- `usb_key_mount.sh` allows you to mount your USB key easily and reliably |
30 | | -- `usb_key_umount.sh` allows you to unmount your USB key easily and reliably |
31 | | -- `useradd_helper_restructed.sh` and `useradd_helper_as_powerful.sh` allow you to add more users in the same manner as used by setup.sh |
32 | | - |
33 | | -### Misc. notes |
34 | | -Saltstack files related |
35 | | -- currently linux-lts is enabled in the salt state files as a measure to avoid lock out due to kernel updates |
36 | | - |
37 | | -### Prerequisites |
| 23 | +## Prerequisites |
38 | 24 | - Working internet connection |
39 | 25 | - Partitioning done for system partition |
40 | 26 | - USB key (data will be lost) |
41 | 27 |
|
42 | | -### Space requirement |
| 28 | +## Space requirement |
43 | 29 | - USB key (if you intend to use disk layout that utilises a USB key) |
44 | 30 | - 1 GiB USB drive will be very sufficient |
45 | 31 | - System drive |
46 | 32 | - Current salt states download/install around 10 GiB of data |
47 | 33 |
|
48 | | -### Instructions |
| 34 | +## Instructions |
49 | 35 | The OCaml code is not self contained, thus if you choose to compile it yourself, you will need to install various dependencies. |
50 | 36 |
|
51 | 37 | For deployment purposes, it is recommended that you use the static binaries provided, which you can download via [GitHub releases](https://github.com/darrenldl/ocaml-linux-installer/releases) |
52 | 38 |
|
53 | 39 | The static binaries of the installer are built via Travis CI using `ocaml/opam2:alpine` Docker image, and should be able to run on Arch Linux live CD without any further setup |
54 | 40 |
|
55 | | -### License |
| 41 | +## Specifics |
| 42 | + |
| 43 | +#### Disk layout choices |
| 44 | +**Single system disk** - Oali slices the disks into ESP (if in EFI mode), boot and root partitions automatically |
| 45 | + |
| 46 | +**Manual picking** - Oali just uses the choices you provide |
| 47 | + |
| 48 | +**Single system partition + USB key** - Oali installs ESP (if in EFI mode), boot partitions on USB key, and root partition on the provided system partition |
| 49 | + |
| 50 | +Oali will handle encryption along with other chores automatically with the disk layout you picked in mind, such as |
| 51 | +- `/etc/crypttab` is set up only if the disk layout doesn't involve USB key |
| 52 | +- `/etc/fstab` is adjusted to disable USB key partitions if disk layout uses USB key |
| 53 | + |
| 54 | +#### Encryption specifics |
| 55 | +Oali uses `cryptsetup` for LUKS setup, and allows you to toggle boot and root partition encryption separately |
| 56 | + |
| 57 | +Note that it will ask for confirmation if you choose to encrypt boot but not root (which is a silly setup, but it'll oblige if you insist) |
| 58 | + |
| 59 | +Oali will ask if you want to change the key iteration time (in millisec) and key size |
| 60 | + |
| 61 | +#### Boot partitions |
| 62 | +If in UEFI mode, the ESP partition will be present but is never (and cannot be) encrypted |
| 63 | + |
| 64 | +If boot partition encryption is enabled, then it is protected by a passphrase |
| 65 | + |
| 66 | +#### System partition |
| 67 | +If system/root partition encryption is enabled, then it is protected by a keyfile |
| 68 | + |
| 69 | +The keyfile is stored in within the initramfs in boot partition |
| 70 | + |
| 71 | +#### Post-install notes |
| 72 | +After installation, several files will be present in `/root/oali_pack` (all of the files are to be accessed/executed by root) |
| 73 | +- `salt_exec.sh` allows you start the saltstack setup, present only if you answered yes to using saltstack for your further setup |
| 74 | +- `oli_setup_note` contains description of the files |
| 75 | +- `usb_key_mount.sh` allows you to mount your USB key easily and reliably |
| 76 | +- `usb_key_umount.sh` allows you to unmount your USB key easily and reliably |
| 77 | +- `useradd_helper_restructed.sh` and `useradd_helper_as_powerful.sh` allow you to add more users in the same manner as used by setup.sh |
| 78 | + |
| 79 | +#### Misc. notes |
| 80 | +Saltstack files related |
| 81 | +- currently linux-lts is enabled in the salt state files as a measure to avoid lock out due to kernel updates |
| 82 | + |
| 83 | +## License |
56 | 84 | MIT |
0 commit comments