Git Product home page Git Product logo

gentoo-install's Introduction

About gentoo-install

This project aspires to be your favourite way to install gentoo. It aims to provide a smooth installation experience, both for beginners and experts. You may configure it by using a menuconfig-inspired interface or simply via a config file.

It supports the most common disk layouts, different file systems like ext4, ZFS and btrfs as well as additional layers such as LUKS or mdraid. It also supports both EFI (recommended) and BIOS boot, and can be used with systemd or OpenRC as the init system. SSH can also be configured to allow using an automation framework like Ansible or Fora to automate beyond system installation.

Usage | Overview | Updating the Kernel | Recommendations | FAQ

This installer might appeal to you if

  • you want to try gentoo without initially investing a lot of time, or fully committing to it yet.
  • you already are a gentoo expert but want an automatic and repeatable best-practices installation.

Of course, we do encourage everyone to install gentoo manually. You will learn a lot if you haven't done so already.

Usage

First, boot into a live environment of your choice. I recommend using an Arch Linux live ISO, as the installer will then be able to automatically download required programs or setup ZFS support on the fly. Afterwards, proceed with the following steps:

pacman -Sy git  # (Archlinux) Install git in live environment, then clone:
git clone "https://github.com/oddlama/gentoo-install"
cd gentoo-install
./configure     # configure to your liking, save as gentoo.conf
./install       # begin installation

Every option is explained in detail in gentoo.conf.example and in the help menus of the TUI configurator. When installing, you will be asked to review the partitioning before anything critical is done.

The installer should be able to run without any user supervision after partitioning, but depending on the current state of the gentoo repository, you might need to intervene in case a package fails to emerge. The critical commands will ask you what to do in case of a failure. If you encounter a problem you cannot solve, you might want to consider getting in contact with some experienced people on IRC or Discord.

If you need to enter an installed system in a chroot to fix something (e.g. after rebooting your live system), you can always clone the installer, mount your main drive under /mnt and use ./install --chroot /mnt to just chroot into your system.

Overview

The installer performs the following main steps (in roughly this order), with some parts depending on the chosen configuration:

  1. Partition disks (highly dependent on configuration)
  2. Download and extract stage3 tarball (with cryptographic verification) [Continues in chroot from here]
  3. Setup portage (initial rsync/git sync, run mirrorselect, create zz-autounmask files)
  4. Base system configuration (hostname, timezone, keymap, locales)
  5. Install required packages (git, kernel, ...)
  6. Make system bootable (generate fstab, build initramfs, create efibootmgr/syslinux boot entry)
  7. Ensure minimal working system (automatic wired networking, install eix, set root password)
    • (Optional) Install sshd with secure config (no password logins)
    • (Optional) Install additional packages provided in config

The goal of the installer is just to setup a minimal gentoo system following best-practices. Anything beyond that is considered out-of-scope (with the exception of configuring sshd). Here are some things that you might want to consider doing after the system installation is finished:

  1. Read the news with eselect news read.
  2. Compile a custom kernel and remove gentoo-kernel-bin
  3. Adjust /etc/portage/make.conf
    • Set CFLAGS to <march_native_flags> -O2 -pipe for native builds by using the resolve-march-native tool
    • Set CPU_FLAGS_X86 using the cpuid2cpuflags tool
  4. Use a safe umask like umask 077

(Optional) sshd

The script can provide a fully configured ssh daemon with reasonably good security settings. It will by default only allow ed25519 keys, restrict key exchange algorithms to a reasonable subset, disable any password based authentication, and only allow root to login.

You can provide keys that will be written to root's .ssh/authorized_keys file. This will allow you to directly continue your setup with your favourite infrastructure management software.

(Optional) Additional packages

You can add any amount of additional packages to be installed on the target system. These will simply be passed to a final emerge call before the script is done, where autounmasking will also be done automatically. It is recommended to keep this to a minimum, because of the quite "interactive" nature of gentoo package management ;)

Updating the kernel

By default, the installed system uses gentoo's binary kernel distribution (sys-kernel/gentoo-kernel-bin) together with an initramfs generated by dracut. This ensures that the installed system works on all common hardware configurations. Feel free to replace this with a custom-built kernel (and possibly remove/adjust the initramfs) when the system is booted.

The installer will provide the convenience script generate_initramfs.sh in /boot/efi/ or /boot/bios which may be used to generate a new initramfs for the given kernel version. Depending on whether your system uses EFI or BIOS boot, you will also find your kernel and initramfs in different locations:

# EFI
kernel="/boot/efi/vmlinuz.efi"
initrd="/boot/efi/initramfs.img"
# BIOS
kernel="/boot/bios/vmlinuz-current"
initrd="/boot/bios/initramfs.img"

In both cases, the update procedure is as follows:

  1. Emerge new kernel
  2. eselect kernel set <kver>
  3. Backup old kernel and initramfs (mv "$kernel"{,.bak}, mv "$initrd"{,.bak})
  4. Generate new initramfs for this kernel generate_initramfs.sh <kver> "$initrd"
  5. Copy new kernel cp /boot/kernel-<kver> "$kernel" (for systemd) or cp /boot/vmlinuz-<kver> "$kernel" (for openrc)

Recommendations

This project started out as a way of documenting a best-practices installation for myself. As the project grew larger, I've added more configuration options to suit legacy needs. Below I've outlined several decisions I've made for this project, or decisions you have during configuration. If you intend on setting up a modern system, you might want to check them out. Please keep in mind that those are all based on my personal opinions and experience. Your mileage may vary.

EFI vs BIOS

Use EFI. BIOS is old and deprecated for a long time now. Only certain VPS hosters may require you to use BIOS still (time to write to them about that!)

EFIstub booting

Don't install a bootloader when this script is done, except you absolutely need one. The kernel can directly be booted by EFI without need for a bootloader. By default, this script will use efibootmgr to add a bootentry directly to your "mainboard's bootselect" (typically F12). Nowadays, there's just no reason to use GRUB, syslinux, or similar bootloaders by default. They only add additional time to your boot, and even dualbooting Windows works just fine without one. Only if you require frequent editing of kernel parameters, or want kernel autodiscovery from attached media you might want to consider using one of these. For the average (advanced) user this isn't necessary.

If you want to add more boot options or want to learn about efibootmgr, refer to this page on the gentoo wiki.

Modern file systems

I recommend using a modern file system like ZFS, both on desktops and servers. It provides transparent block-level compression, instant snapshots and full-disk encryption. Generally, encrypting your root fs doesn't cost you anything and protects your data in case you lose your device.

Systemd vs OpenRC

I will not entertain the religious eternal debate here. Both are fine init systems, and I've been using both a lot. If you cannot decide, here are some objective facts:

  • OpenRC is a service manager. Setting up all the other services is a lot of work, but you will learn a lot.
  • Systemd is an OS-level software suite. It brings an insane amount of features with a steep learning curve.

Here's a non-exhaustive list of things you will do manually learn when using OpenRC, that are already provided for in systemd: udev, dhcp, acpi events (power/sleep button), cron jobs, reliable syslog, logrotate, process sandboxing, persistent backlight setting, persistent audio mute-status, user-owned login sessions, ...

Make of this what you will, both have their own quirks. Choose your poison.

Miscellaneous

  • Use the newer iwd for WiFi instead of wpa_supplicant
  • (If systemd) Use timers instead of cron jobs

Troubleshooting and FAQ

After the initial sanity check, the script should be able to finish unattendedly. But given the unpredictability of future gentoo versions, you might still run into issues once in a while.

The script checks every command for success, so if anything fails during installation, you will be given a proper message of what went wrong. Inside the chroot, most commands will be executed in a checked loop, and allow you to interactively fix problems with a shell, to retry, or to skip the command. You can report issues specific to this script on the issue tracker. To seek help regarding gentoo in general, visit the official IRC or Discord.

If you experience any issues after rebooting and need to fix something inside the chroot, you can use the installer to chroot into an existing system. Run ./install --help for more infos.

Q: ZFS cannot be installed in the chroot due to an unsupported kernel version

A: The newest stable ZFS module may require a kernel version that is newer than what is provided on gentoo stable. If you encounter this problem, you might be able to fix the problem by switching to testing by dropping to a shell temporarily:

# Press S<Enter> when asked about what to do next.
# This opens an emergency shell in the chroot.
echo 'ACCEPT_KEYWORDS="~amd64"' >> /etc/portage/make.conf # Enable testing for your architecture.
emerge -v gentoo-kernel-bin                               # Update kernel to newest version
exit # Ctrl-D
# Now select 'retry' when asked about what to do next.

Q: I get errors after partitioning about blkid not being able to find a UUID

A: Be sure that all devices are unmounted and not in use before starting the script. Use wipefs -a <DEVICE> on your partitions or fully wipe the disk before use. The new partitions probably align with previously existing partitions that had filesystems on them. Some filesystems signatures like those of ZFS can coexist with other signatures and may cause blkid to find ambiguous information.

References

gentoo-install's People

Contributors

cpradog avatar kasperfm avatar math-gout avatar min-xu-ai avatar nmbooker avatar oddlama avatar oskarniziol avatar thiblizz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gentoo-install's Issues

add eselect repos...

( REF:https://wiki.gentoo.org/wiki/Eselect/Repository app-eselect/eselect-repository)

Add repos to config

INSIDE : eselect repository enable foo else list of insider repos

eselect repository enable name nameb etc..

Outside : more than likely on arm64 or Own repos... name: / path
ie.. git svn etc...

eselect repository add oddlama-lay git https://github.com/oddlama/overlay

add emerge --sync {$overlay/s}

add list/s of overlays to add or enable...

emerge foo:???overlay and done.. to add packages...

Can't install to an already partitioned hard drive with multiple partitions

Output of fdisk -l:

Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB                     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: A32218FA-A5DA-449A-89C8-A351A0A01134

Device             Start        End    Sectors   Size Type
/dev/nvme0n1p1      2048  234424319  234422272 111.8G Linux filesystem
/dev/nvme0n1p2 234424320 1953523711 1719099392 819.7G Linux filesystem

gentoo.conf is:

oznt@yeni2:~/Software/gentoo-install [±|main U:1 ?:3 ✗|] $ grep nvme gentoo.conf
	create_classic_single_disk_layout swap='8GiB' type='bios' luks='true' root_fs='ext4' '/dev/nvme0n1p2' ;

The install:

oznt@yeni2:~/Software/gentoo-install [±|main U:1 ?:3 ✗|] $ sudo ./install 
[+] You have enabled encryption, but haven't specified a key in the environment variable GENTOO_INSTALL_ENCRYPTION_KEY.
Do you want to enter an encryption key now? (Y/n) 
Enter encryption key: 
Repeat encryption key: 
[+] Preparing installation environment
[+] Syncing time
 9 Feb 13:54:46 ntpd[1642]: ntpd [email protected] Mon Aug  2 08:10:11 UTC 2021 (1): Starting
 9 Feb 13:54:46 ntpd[1642]: Command line: ntpd -g -q
 9 Feb 13:54:46 ntpd[1642]: ----------------------------------------------------
 9 Feb 13:54:46 ntpd[1642]: ntp-4 is maintained by Network Time Foundation,
 9 Feb 13:54:46 ntpd[1642]: Inc. (NTF), a non-profit 501(c)(3) public-benefit
 9 Feb 13:54:46 ntpd[1642]: corporation.  Support and training for ntp-4 are
 9 Feb 13:54:46 ntpd[1642]: available at https://www.nwtime.org/support
 9 Feb 13:54:46 ntpd[1642]: ----------------------------------------------------
 9 Feb 13:54:46 ntpd[1642]: proto: precision = 0.194 usec (-22)
 9 Feb 13:54:46 ntpd[1642]: basedate set to 2021-07-21
 9 Feb 13:54:46 ntpd[1642]: gps base set to 2021-07-25 (week 2168)
 9 Feb 13:54:46 ntpd[1642]: Listen and drop on 0 v6wildcard [::]:123
 9 Feb 13:54:46 ntpd[1642]: Listen and drop on 1 v4wildcard 0.0.0.0:123
 9 Feb 13:54:46 ntpd[1642]: Listen normally on 2 lo 127.0.0.1:123
 9 Feb 13:54:46 ntpd[1642]: Listen normally on 3 wlp2s0 192.168.1.116:123
 9 Feb 13:54:46 ntpd[1642]: Listen normally on 4 lo [::1]:123
 9 Feb 13:54:46 ntpd[1642]: Listen normally on 5 wlp2s0 [2a01:c23:c40f:4301:555d:4f3a:ba5e:740a]:123
 9 Feb 13:54:46 ntpd[1642]: Listen normally on 6 wlp2s0 [fe80::45ad:ae6a:5bc:9308%3]:123
 9 Feb 13:54:46 ntpd[1642]: Listening on routing socket on fd #23 for interface updates
 9 Feb 13:54:54 ntpd[1642]: ntpd: time slew +0.002187 s
ntpd: time slew +0.002187s
[+] Current date: Wed Feb  9 13:54:54 CET 2022
[+] Writing time to hardware clock
[+] Current lsblk output:
[+] NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
[+] sda                                             8:0    0 931.5G  0 disk  
[+] ├─sda1                                          8:1    0     1G  0 part  /boot
[+] └─sda2                                          8:2    0 930.5G  0 part  
[+]   └─luks-715fb640-a70d-4990-a2c6-120356c93182 253:0    0 930.5G  0 crypt 
[+]     ├─vg0-root                                253:1    0    33G  0 lvm   /
[+]     ├─vg0-var                                 253:2    0    42G  0 lvm   /var/lib/docker
[+]     │                                                                    /var
[+]     ├─vg0-swap                                253:3    0     8G  0 lvm   [SWAP]
[+]     └─vg0-home                                253:4    0 847.5G  0 lvm   /home
[+] nvme0n1                                       259:0    0 931.5G  0 disk  
[+] ├─nvme0n1p1                                   259:3    0 111.8G  0 part  
[+] └─nvme0n1p2                                   259:4    0 819.7G  0 part  
[+] 
[+] Configured disk layout:
[+] ────────────────────────────────────────────────────────────────────────────────
[+] NODE                       ID                           OPTIONS
[+] ────────────────────────────────────────────────────────────────────────────────
[+] /dev/nvme0n1p2 (gpt)       gpt                          
[+] ├─part (bios)              part_bios ← bios             size=256MiB    
[+] │ └─bios (fs)                                           label=bios     
[+] ├─part (swap)              part_swap ← swap             size=8GiB      
[+] │ └─swap (fs)                                           label=swap     
[+] └─part (linux)             part_root                    size=remaining 
[+]   └─luks                   part_luks_root ← root        
[+]     └─ext4 (fs)                                         label=root     
[+] ────────────────────────────────────────────────────────────────────────────────
Do you really want to apply this disk configuration? (Y/n) 
Applying in 5 4 3 2 1 
[+] Applying disk configuration
[+] Creating new gpt partition table (gpt) on /dev/nvme0n1p2
Error: Partition(s) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 on /dev/nvme0n1p2 have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.
error: Could not find PTUUID=... in lsblk output
error: Could not resolve device with id=gpt

stuck at 'fb0: switching to amdgpu from EFI VGA'

The script ran without problems,
but when I tried to boot Gentoo,
it froze at 'fb0: switching to amdgpu from EFI VGA'

My system:
AMD A6-9225
Gentoo AMD64, systemd
default disk config

(sorry i dont have a screenshot, and i reinstalled manjaro after troubleshooting for 2 hours)

Add EFI detection

Disable EFI option in configurator when efi cannot be detected, and abort any installs with efi in the config.

Error on Linux Mint XFCE bootable iso

[+] Preparing installation environment
[+] Syncing time
 6 Jun 16:36:30 ntpd[8354]: ntpd [email protected] (1): Starting
 6 Jun 16:36:30 ntpd[8354]: Command line: ntpd -g -q
 6 Jun 16:36:30 ntpd[8354]: proto: precision = 0.043 usec (-24)
 6 Jun 16:36:30 ntpd[8354]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): good hash signature
 6 Jun 16:36:30 ntpd[8354]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): loaded, expire=2021-06-28T00:00:00Z last=2017-01-01T00:00:00Z ofs=37
 6 Jun 16:36:30 ntpd[8354]: leapsecond file ('/usr/share/zoneinfo/leap-seconds.list'): will expire in less than 22 days
 6 Jun 16:36:30 ntpd[8354]: unable to bind to wildcard address :: - another process may be running - EXITING
error: Could not sync time with remote server

my config file:

# This file will be interpreted by /bin/bash.


################################################
# Disk configuration

function disk_configuration() {
	create_classic_single_disk_layout swap='8GiB' type='efi' luks='false' root_fs='ext4' '/dev/nvme0n1' ;
}


################################################
# System configuration

HOSTNAME='gentoo'
TIMEZONE='America/Sao_Paulo'
KEYMAP='us'
KEYMAP_INITRAMFS='us'

LOCALES=''
LOCALE='pt_BR.utf8'


################################################
# Gentoo configuration

SYSTEMD='false'
PORTAGE_SYNC_TYPE='git'
PORTAGE_GIT_FULL_HISTORY='false'
PORTAGE_GIT_MIRROR='https://anongit.gentoo.org/git/repo/sync/gentoo.git'
GENTOO_MIRROR='https://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo'
GENTOO_ARCH='amd64'
STAGE3_BASENAME="stage3-$GENTOO_ARCH"
SELECT_MIRRORS='true'
SELECT_MIRRORS_LARGE_FILE='false'


################################################
# Additional (optional) configuration

ADDITIONAL_PACKAGES=()
INSTALL_SSHD='false'
ROOT_SSH_AUTHORIZED_KEYS=''


################################################
# Prove that you have read the config

I_HAVE_READ_AND_EDITED_THE_CONFIG_PROPERLY=true```

?rhash incorrect?

Thanks for this awesome tool first! Really saving a lot of time for me to test gentoo on different systems.

This line:

I am on pop_os, which is ubuntu based. I am in the live CD env and I apt installed the rhash package and it is in the path. However, the install script complains that it is not found. I found change ?rhash on that line to just rhash seems to solve the problem for me. Don't know what's the ? really for?

more Disk/parts

can predefine parts in the config names/labels

ie bios_grub 1-5MiB , (legacy-fallback grub loader)
/boot/efi size 100 ( grub loader)/ moktils/shim loader /tools etc)
/boot ext3 650 Ext3/4 adds encryption options and fail over recovery... room for a good few kernels
/ btrfs / ??? else/choice N-Gigs Auto/expand as needed / ie just enough to install / first-boot expand perhaps..
(ie upgrade to larger ssd ) general layout is good....
/swap 8-N gigs ???

it would be nice to have some basic layout define-able....

No Linux firmware

Hello,
When I installed it from Arch release 2022.07.01, it said missing Linux firmware while installing. How can I install it?
Thanks in advance!

Give the option to install linux-firmware and set minimal USE flags

This install script is hard to use on hardware that is not fully supported by the kernel (e.g. new laptops with custom usb controllers and thus by default not-working keyboards).
=> Give a config option to install linux-firmware and ideally also allow the setting of USE flags to install the correct drivers (e.g. amdgpu).

While this could be solved by manually chrooting and handling this yourself, this repository tries to bring your installation to a minimal running system, which was not achieve in my case EXCEPT for manually chrooting :)

Not generating initramfs

[+] Generating initramfs
dracut: Configuration file '/dev/null' not found.
dracut --conf /dev/null --confdir /dev/null --kver 5.17.11-gentoo-dist --no-compress --no-hostonly --ro-mnt --add bash btrfs --force /boot/efi/initramfs.img
Last command failed with exit code 1
Specify next action (Shell/retry/abort/continue/print)

custom stage3

can the option to have a custom stage3 be added? or at least a graphical one like plasma or gnome?

Error: Checksum mismatch

Was doing on Linux Mint xfce:

gpg: Signature made Sun Oct 31 17:41:05 2021 UTC
gpg:                using RSA key 534E4209AB49EEE1C19D96162C44695DB9F6043D
gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD  B1BA BB57 2E0E 2D18 2910
     Subkey fingerprint: 534E 4209 AB49 EEE1 C19D  9616 2C44 695D B9F6 043D
[+] Verifying tarball integrity

--( Verifying /dev/fd/63 )------------------------------------------------------
stage3-amd64-openrc-20211031T170530Z.tar.xz         ERR
stage3-amd64-openrc-20211031T170530Z.tar.xz         OK 
--------------------------------------------------------------------------------
Errors Occurred: Errors:1   Miss:0   Success:1   Total:2  
error: Checksum mismatch!

Suggestion: Encrypted Swap

Could you add an option for an encrypted swap partition inside the luks/lvm partition? Alternatively, whatever the current gentoo best practices are for an encrypted swap partition would be great.

GPG2

is it possible to use gpg2?

Custom USE flags

I've ran into a problem,

When installing a bunch of software it results in USEflag collision

i had to do some scripting to get it working

Add bootloader selection

Good time!
If it's not difficult and appropriate, please add the bootloader selection to the script

Initial Boot Problems

Hey oddlama!
I have this weird bug, that when I boot after installing Gentoo, openrc is getting stuck at mounting security filesystem
I don't know, if it has to do with screen resolution, I have 1080p, or with some faulty config file. I hope you can elaborate. I can shoot a video if that helps you.

Pause Keybinding

I need to pause the script so i can edit my /etc/portage/make.conf. Ctrl D and Ctrl C do nothing but ctrl c cancels the install.

Failiure after extracting stage 3 tarball: could not mount efivars

I tried running the installer on virtualbox with an arch installation iso. Everything works normally until the tarball is extracted. The installer then says Mounting efivars and then:
mount: sys/firmware/efi/efivars: mount point does not exist
error: Could not mount efivars

I've also tried on a Gentoo livegui and I get the same issue.

install failure with ROOT_HOME: unbound variable

Hi,

First of all, thanks for this repo. The Gentoo guide is painfully verbose for someone who isn't a beginner, and this repo does 95% of what I was looking for in an automated install script. Unfortunately, I've hit a few issues so far trying to use it from an Ubuntu live environment. I've filed this issue because this is the first absolute showstopper that appears to be solely due to a code issue.

The problem I'm hitting is this particular line:

echo "$ROOT_SSH_AUTHORIZED_KEYS" > "$ROOT_HOME/.ssh/authorized_keys" \

I have never seen this envvar before in 20+ years of using Linux so I'm assuming this is a distro-specific thing. It's not referenced anywhere else in the scripts. Since the lines directly above and below just use /root for root's home, I don't see why there's a variable here in the first place.

I'll open a PR to address this.

Thanks again for this repo!

"rhash" is missing

Gentoo 202, amd64, btrfs, ...:

livecd ~/gentoo-install-main # ./install
[+] Preparing installation environment
[+] The following programs are required for the installer to work, but are currently missing on your system:
[+] rhash
error: Aborted installer because of missing required programs.

Suggestion: sync make.conf and some portage config

I really wanna something like arch (so bad). I wish I can restore full of my /etc root settings to the new installation. Maybe installing full package from start point could be mad, I suggest some important configs like make.conf, package.accept_keywords or even some overlays should be sync from personal file
May I miss some point. Looking for a great automation installation for Gentoo

Website

Now that this installer is Bugfixed and works quite fine, i would love to make a website !

We (ucode.space) will host it :)
(haven't asked the dudes yet but a website is like no load at all)

  • ask the main owner of the server
  • find/choose a domain
  • optimize the download of the repo

Make LUKS even better

Some ideas in my head remain,

The echo >tmp/keyfile thing is ok but this can be made better
There should be a prompt after the question and diagram for the wiping of the drive

(since this has to be a task anyway, we can provide that)
Somewhere a

echo -n "enter passphrase for "$root": "
read verysecurekey 

Alternatively a premade empty keyfile which we remove newline (with sed) ??

label mix-up systemd/openrc in configure script

Hi OddLama,
Screenshot_20220701_171007

In your Select stage3 variant step in the configure script
you seem to have a mix-up: left part says desktop-systemd,
while the right part of the selection frame says OpenRC,
and left part says desktop-openrc to the left, but systemd to the right.
See enclosed screenshot.

Apart from that, everything seems to work just fine :-)

Installing with BIOS fails

var/db/repos/git/gentoo-install/scripts/functions.sh: line 37: DISK_ID_EFI: unbound variable

This can be replicated by setting type to bios in the configuration script or the gentoo.conf

A copy of the resulting bootentry cmdline should be saved.

If a complicated setup has been chosen, it is a lot of work to infer this information later when building a new kernel / initramfs, especially when you delete the previous bootentry without thinking twice. The resulting could have a directory /etc/gentoo-install/ or maybe /root/gentoo-install which contains the backup information.

ROOT_HOME: unbound variable

ROOT_HOME: unbound variable,

I added my SSH keys to configuration and after a long compile time I got the following error:

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

 * IMPORTANT: 12 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.

[+] Installing sshd
 * service sshd added to runlevel default
[+] Adding authorized keys for root
/tmp/gentoo-install/bind/scripts/main.sh: line 108: ROOT_HOME: unbound variable

Here is the relevant snippet from my config:

$ grep SSH gentoo.conf
INSTALL_SSHD='true'
ROOT_SSH_AUTHORIZED_KEYS=$'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIj3+Q0uK0lVNqYrqUUFMBajoUtFcLPHES2Xk0x8BvlV\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMNVwPd5yAA5bKCw9E0e7Of4LJkEVWEpc/scfbKytJLH'

amdgpu doesn't work

I don't know if this is an issue with the installer, but I went through all the installation steps, and now when I attempt to boot the installed gentoo system, it says some systemd stuff and freezes up.
Code:
[ 3.179191] mc: Linux media interface: v0.10
[ 3.189664] [drm] amdgpu kernel modesetting enabled.
[ 3.205061] amdgpu: Topology: Add APU node [0x0:0x0]
[ 3.205150] fb0: switching to amdgpu from EFI VGA

After install issues

Idk if its me being dumb and new to gentoo but after installing with this script, I can't install plasma, gnome or anything, it spits out errors left and right, maybe i'm missing something? maybe we should do something after install that I'm not aware of?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.