Configuration file format

Configuration file format

Concise GNOS install rules

  1. GNOS Core
    1. General
      1. UBUNTU_RELEASE
      2. HOST_HOSTNAME
      3. HOST_TIMEZONE
      4. USER_USERNAME
      5. USER_PASSWORD
      6. KEYBOARD_MODEL, KEYBOARD_LAYOUT & KEYBOARD_VARIANT
    2. General Storage
      1. STORAGE_OPTIONS
      2. UEFI_PARTITION
      3. BOOT_PARTITION
      4. SWAP_PARTITION
      5. GRUB_DEVICE
      6. POOL_TOPOLOGY
        1. Unique EXT4 partiton
        2. Multiple EXT4 partitons on Linux MD-RAID array
        3. ZFS volume management
    3. Crypto Storage
      1. LUKS_PASSWORD
      2. LUKS_FORMAT_OPTS
      3. IRFS_IP
    4. ZFS Storage
      1. ZFS_POOL_OPTS
      2. ZFS_POOL_NAME
      3. ZFS_ROOT_DSET
      4. ZFS_DATA_DSET
  2. GNOS Components
    1. INSTALL_BUNDLES
  3. GNOS GUI Specific
    1. INSTALL_DRIVERS

GNOS Core

General

UBUNTU_RELEASE

Supports either bionic or xenial Ubuntu LTS releases.

HOST_HOSTNAME

Defaults to gnos.

HOST_TIMEZONE

eg. Europe/Paris

USER_USERNAME

Defaults to user.

USER_PASSWORD

KEYBOARD_MODEL, KEYBOARD_LAYOUT & KEYBOARD_VARIANT

General Storage

STORAGE_OPTIONS

Space-delimited tag list

Value Requires Description
UEFI   Boot using UEFI 2
APPLE UEFI Boot using Apple EFI 1.5
ZFS   Use ZFS for root filesystem and volume management. See  ZFS root filesystem
BOOTCLONE ZFS Enables  Multiroot and  Bootable clones
CRYPTO_ROOT   Use LUKS encryption, see  Full Disk Encryption
RANDOM CRYPTO_ROOT Randomize encrypted partitions
CRYPTO_BOOT CRYPTO_ROOT Additional LUKS-encrypted boot partition (ext4 formatted), required to achieve single password prompt when using several encrypted devices
PLAIN_BOOT CRYPTO_ROOT Additional plain-text boot partition (ext4 formatted)
SSH_UNLOCK PLAIN_BOOT  Remote LUKS password prompt, usefull for booting encrypted servers without KVM

UEFI_PARTITION

UEFI target partition(s), multiple means MD-RAID mirror.

BOOT_PARTITION

BOOT target partition(s), multiple means MD-RAID mirror.

SWAP_PARTITION

SWAP target partition(s), multiple means MD-RAID mirror.

GRUB_DEVICE

GRUB target device(s).

When using GUID partition table, select the disk(s) containing the GPT partition.

When using Master boot record, select the disk(s) starting with reserved free space (8mb recommended).

Installing GRUB to custom partition(s) is not recommended and not tested.

POOL_TOPOLOGY

Read  Partitioning guide.

For device names, simply use legacy names (eg. /dev/sdaX), the installer will automatically translate to UUIDs when necessary.

If you plan to use numerous disks for the root pool, RAID 1/10 mirrors are generally recommended over RAID 4/5/6/Z stripes, but hey! it’s your choice.

Unique EXT4 partiton

Just the plain partition device name (eg. /dev/sda2).

Multiple EXT4 partitons on Linux MD-RAID array

Any of the words defined below followed by partition device names (eg. raid10 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 for RAID 10).

MD_TOPOLOGY_WORDS='linear|stripe|mirror|raid0|raid1|raid4|raid4|raid5|raid6|raid10|0|1|4|5|6|10'
ZFS volume management

Requires ZFS

Pool topology definition suitable for zpool create.

A structured combination of words defined below followed by disk or partition device names (eg. mirror /dev/sda2 /dev/sdb2 mirror /dev/sdc2 /dev/sdd2 for RAID10 or mirror /dev/sda /dev/sdb mirror /dev/sdc /dev/sdd to use ZFS whole disks - a 5th device required for booting).

ZFS_TOPOLOGY_WORDS='mirror|raidz|raidz1|raidz2|raidz3|logs|spares|spare'

Crypto Storage

Requires CRYPTO_ROOT

See  Full Disk Encryption.

LUKS_PASSWORD

LUKS main encryption slot passphrase.

Note If you don’t use a separated PLAIN_BOOT, GRUB will ask for the password at the very begining, using US Keymap.

LUKS_FORMAT_OPTS

Disk encryption options for cryptsetup luksFormat, by default:

--cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000

IRFS_IP

Requires SSH_UNLOCK

Initramfs network configuration for ethernet interface (no Wifi support).

nfsroot format description:

[host ip]::[gateway ip]:[netmask]:[hostname]:[device]:[autoconf]

DHCP example:

IRFS_IP=":::::eth0:dhcp"

Static example:

IRFS_IP="192.168.1.68::192.168.1.1:255.255.255.0::eth0:off"

ZFS Storage

Requires ZFS

See  ZFS root filesystem.

ZFS_POOL_OPTS

ZFS pool options for zpool create, by default:

-o ashift=13 -o autoexpand=on -O atime=off -O compression=lz4 -O normalization=formD

ZFS_POOL_NAME

Defaults to pool.

ZFS_ROOT_DSET

Relative to ZFS_POOL_NAME/, defaults to root/gnos.

ZFS_DATA_DSET

Relative to ZFS_POOL_NAME/, defaults to data.

GNOS Components

INSTALL_BUNDLES

Space-delimited tag list, containing:

GNOS GUI Specific

INSTALL_DRIVERS

Ubuntu packages or GNOS GUI drv::* drivers names.

Optionally prefixed with - to prevent installation.