124 lines
4.0 KiB
Bash
124 lines
4.0 KiB
Bash
source "$GENTOO_INSTALL_REPO_DIR/scripts/protection.sh" || exit 1
|
|
source "$GENTOO_INSTALL_REPO_DIR/scripts/internal_config.sh" || exit 1
|
|
|
|
|
|
################################################
|
|
# Disk configuration
|
|
|
|
# Example 1: Single disk, 3 partitions (efi, swap, root)
|
|
create_default_disk_layout() {
|
|
local device="$1"
|
|
|
|
create_gpt new_id=gpt device="$device"
|
|
create_partition new_id=part_efi id=gpt size=128MiB type=efi
|
|
create_partition new_id=part_swap id=gpt size=8GiB type=raid
|
|
create_partition new_id=part_root id=gpt size=auto type=raid
|
|
|
|
format id=part_efi type=efi label=efi
|
|
format id=part_swap type=swap label=swap
|
|
format id=part_root type=ext4 label=ext4
|
|
|
|
DISK_ID_EFI=part_efi
|
|
DISK_ID_SWAP=part_raid
|
|
DISK_ID_ROOT=part_luks
|
|
}
|
|
|
|
create_default_disk_layout /dev/sdX
|
|
|
|
|
|
# Example 2: Multiple disks, with raid 0 and luks
|
|
# - efi: partition on all disks, but only first disk used
|
|
# - swap: raid 0 → fs
|
|
# - root: raid 0 → luks → fs
|
|
devices=(/dev/sd{X,Y})
|
|
for i in "${!devices[@]}"; do
|
|
create_gpt new_id="gpt_dev${i}" device="${devices[$i]}"
|
|
create_partition new_id="part_efi_dev${i}" id="gpt_dev${i}" size=128MiB type=efi
|
|
create_partition new_id="part_swap_dev${i}" id="gpt_dev${i}" size=8GiB type=raid
|
|
create_partition new_id="part_root_dev${i}" id="gpt_dev${i}" size=auto type=raid
|
|
done
|
|
|
|
create_raid new_id=part_raid_swap level=0 ids="$(expand_ids '^part_swap_dev\d$')"
|
|
create_raid new_id=part_raid_root level=0 ids="$(expand_ids '^part_root_dev\d$')"
|
|
create_luks new_id=part_luks_root id=part_raid_root
|
|
|
|
format id=part_efi_dev0 type=efi label=efi
|
|
format id=part_raid_swap type=swap label=swap
|
|
format id=part_luks_root type=ext4 label=ext4
|
|
|
|
DISK_ID_EFI=part_efi_dev0
|
|
DISK_ID_SWAP=part_raid_swap
|
|
DISK_ID_ROOT=part_luks_root
|
|
|
|
|
|
################################################
|
|
# System configuration
|
|
|
|
# Enter the desired system hostname here
|
|
HOSTNAME="gentoo"
|
|
|
|
# The timezone for the new system
|
|
TIMEZONE="Europe/Berlin"
|
|
|
|
# The default keymap for the system
|
|
KEYMAP="de-latin1-nodeadkeys"
|
|
#KEYMAP="us"
|
|
|
|
# A list of additional locales to generate. You should only
|
|
# add locales here if you really need them and want to localize
|
|
# your system. Otherwise, leave this list empty, and use C.utf8.
|
|
LOCALES=""
|
|
# The locale to set for the system. Be careful, this setting differs from the LOCALES
|
|
# list entries (e.g. .UTF-8 vs .utf8). Use the name as shown in `eselect locale`
|
|
LOCALE="C.utf8"
|
|
# For a german system you could use:
|
|
# LOCALES="
|
|
# de_DE.UTF-8 UTF-8
|
|
# de_DE ISO-8859-1
|
|
# de_DE@euro ISO-8859-15
|
|
# " # End of LOCALES
|
|
# LOCALE="de_DE.utf8"
|
|
|
|
|
|
################################################
|
|
# Gentoo configuration
|
|
|
|
# The selected gentoo mirror
|
|
GENTOO_MIRROR="https://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo"
|
|
#GENTOO_MIRROR="https://distfiles.gentoo.org"
|
|
|
|
# The architecture of the target system (only tested with amd64)
|
|
GENTOO_ARCH="amd64"
|
|
|
|
# The stage3 tarball to install
|
|
STAGE3_BASENAME="stage3-$GENTOO_ARCH-hardened+nomultilib"
|
|
#STAGE3_BASENAME="stage3-$GENTOO_ARCH-hardened-selinux+nomultilib"
|
|
|
|
|
|
################################################
|
|
# Additional (optional) configuration
|
|
|
|
# List of additional packages to install (will be directly passed to emerge)
|
|
ADDITIONAL_PACKAGES="app-editors/neovim"
|
|
# Install and enable dhcpcd
|
|
INSTALL_DHCPCD=true
|
|
# Install and configure sshd (a reasonably secure config is provided, which
|
|
# only allows the use of ed25519 keys, and requires pubkey authentication)
|
|
INSTALL_SSHD=true
|
|
# Install ansible, and add a user for it. This requires INSTALL_SSHD=true
|
|
INSTALL_ANSIBLE=true
|
|
# The home directory for the ansible user
|
|
ANSIBLE_HOME="/var/lib/ansible"
|
|
# An ssh key to add to the .authorized_keys file for the ansible user.
|
|
# This variable will become the content of the .authorized_keys file,
|
|
# so you may specify one key per line.
|
|
ANSIBLE_SSH_AUTHORIZED_KEYS=""
|
|
|
|
|
|
################################################
|
|
# Prove that you have read the config
|
|
|
|
# To prove that you have read and edited the config
|
|
# properly, set the following value to true.
|
|
I_HAVE_READ_AND_EDITED_THE_CONFIG_PROPERLY=false
|