forked from extern/nix-config
200d2b9e7a
Instead of running two systemctl commands (start and enable), one can simply use `systemctl enable --now` instead. The grub command was removed since I never used it and haven't found a need to do so.
59 lines
1.9 KiB
Bash
59 lines
1.9 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Once this script finishes, change the root password with passwd,
|
|
# then unmount /mnt (with umount) and restart the system.
|
|
#
|
|
# https://wiki.archlinux.org/index.php/Installation_guide
|
|
|
|
set -xe
|
|
|
|
echo -n "Enter a hostname for this machine: "
|
|
read HOSTNAME
|
|
|
|
# Generate the fstab file (so the filesystem is mounted on boot)
|
|
genfstab -U /mnt > /mnt/etc/fstab
|
|
|
|
# Set the timezone
|
|
arch-chroot /mnt ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
|
|
|
|
# Generate /etc/adjtime
|
|
arch-chroot /mnt hwclock --systohc
|
|
|
|
# Set the hostname
|
|
echo "$HOSTNAME" > /mnt/etc/hostname
|
|
|
|
# Configure the hosts file (if your system has a permanent IP address, use that instead of 127.0.1.1)
|
|
echo "127.0.0.1 localhost" >> /mnt/etc/hosts
|
|
echo "::1 localhost" >> /mnt/etc/hosts
|
|
echo "127.0.1.1 $HOSTNAME.localdomain $HOSTNAME" >> /mnt/etc/hosts
|
|
|
|
# Set the language to English and use the en_US.UTF-8 locale.
|
|
echo "LANG=en_US.UTF-8" > /mnt/etc/locale.conf
|
|
echo "en_US.UTF-8 UTF-8" > /mnt/etc/locale.gen
|
|
|
|
# Generate the locale.
|
|
arch-chroot /mnt locale-gen
|
|
|
|
# Explicitly set the keymap to US.
|
|
echo "KEYMAP=us" > /mnt/etc/vconsole.conf
|
|
|
|
# Change the terminal font to a larger one (`latarcyrheb-sun32` is also an option)
|
|
echo "FONT=ter-132n" >> /mnt/etc/vconsole.conf
|
|
|
|
# Install grub to the primary partition.
|
|
arch-chroot /mnt grub-install /dev/sda
|
|
|
|
# Prevent the GRUB window from showing at boot, ideal for single OS machines (undo with chroot and mkconfig)
|
|
sed -i '/GRUB_TIMEOUT/c\GRUB_TIMEOUT=0' /mnt/etc/default/grub
|
|
|
|
# Make the configuration file for grub.
|
|
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
|
|
|
# Change the shell of the root account to fish.
|
|
arch-chroot /mnt chsh -s /usr/bin/fish
|
|
|
|
# Save our hardware information with mkinitcpio. This creates
|
|
# an initial ramdisk environment that allows us to boot the
|
|
# Linux kernel.
|
|
arch-chroot /mnt mkinitcpio -p linux
|