/quickstart-1

An installer for Gentoo Linux written in POSIX sh

Primary LanguageShell

Quickstart

Back in October 2006, I got bored one weekend and decided that GLI ("the installer") sucked and was no longer on track to achieve its original goal of acting as an installer for automated deployments of Gentoo to multiple machines. I decided that I would address one of the chief complaints about GLI (that python was too bloated to fit in a netboot image) by writing my replacement in POSIX sh, so that it could run with busybox ash. Thus, Quickstart was born.

The first version had a very cumbersome config syntax (defining vars in a "profile" which was sourced by install.sh). Newer versions use a config syntax that's modeled on Kickstart's config syntax. Under the hood, it's still the same arcane variables, but now they're hidden by pretty "wrapper" functions that set the variables appropriately based on the options passed to them.

*NOTE* This project was forked a few years ago and hasn't been touched by me, but I wanted to put this on GitHub so it didn't just rot on my private git server..

Supported Architectures

* x86
* x86_64 (amd64)
* pa-risc (hppa)
* sparc64

Features

* partitioning from a blank disk (drive is wiped)
* specify partition sizes in MB, GB, % of remaining, or + (all remaining)
* creation of md raid arrays
* creation of lvm2 volumes
* ability to format partitions as ext2, ext3, swap, reiserfs, xfs, or jfs
* specify local filesystems to be mounted during the install
* specify network shares to be mounted during the install
* choose your bootloader
* automatic bootloader configuration (currently grub, palo, and silo)
* specify device bootloader is installed to
* choose your logger (or none)
* choose your cron daemon (or none)
* choose your root password (plain-text or pre-encrypted)
* specify URI for stage 3 tarball (file, http, https, ftp, or rsync)
* specify method for getting a portage tree (sync, webrsync, or snapshot)
* specify the directory that is used for the chroot
* specify extra packages to be emerged after the base system
* specify extra options passed to genkernel
* specify URI for pre-made kernel config
* choose which kernel sources package to use to build your kernel
* choose your timezone
* choose which services to add to which runlevels
* choose which services to remove from which runlevels
* specify basic networking configuration
* run custom code using pre-/post-install step hooks in the config file (it's just a sh file)
* many more things that I just can't think of