Arch BaseInstall

From wikinotes

WARNING:

Careful, this is very out of date. (2012-ish)

Creating a Bootable USB stick

Do not use Unetbootin to create a bootable USB stick. Instead use: http://sourceforge.net/projects/win32diskimager/ (it does not use .iso by default, but if you type it in manually, it works). On unix derivatives, use dd.

dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx && sync

BIOS/UEFI Settings

The computer must be set to UEFI only for the arch-install media to be started with UEFI support. Once you have started the install media, confirm the following location exists (which means EFI has loaded).

See systemd-boot.

ls /sys/firmware/efi

Partition + Format

For More Information See the EFI under bootloaders.

sudo pacman -S gptfdisk parted
sgdisk --zap-all /dev/mmcblk0   # wipe all partitions, (but leaves protective MBR)
gdisk /dev/mmcblk0
'o'                             # wipe all partitions, and create GUID partition

EFI

sudo cfdisk /dev/mmcblk0     # create partitions/partition types
sudo fdisk -l                # fdisk shows gpt partitions!
sudo gdisk -l /dev/mmcblk0   # show partitions on mmcblk0

/dev/sda1   EFI   200M (been okay with 126M)
/dev/sda2   Linux  -- 
mkfs.msdos -F 32 /dev/sda1
mkfs.ext4 /dev/sda2

MBR

# Create the Partition Table in cfdisk. Do not worry about 
# the format, just define your partition.
cfdisk /dev/sda                  # create partition table (MBR)            
mkfs /dev/sda2 -t ext4           # create filesystem

Internet (install media)

Ethernet

* Plug in internet, and test connection
** ping -c 3 www.google.com

Manual Wireless

pacman -S wireless_tools wpa_supplicant wpa_actiond dialog

Finding an available Network

# Find the name of your wireless interface (ex: wlan0)
ls /sys/class/net

# Activate wireless
ip link set wlan0 up

# scan for networks
iwlist wlan0 scanning | less

# Note these settings if you are having trouble connecting:
## ESSID
## Group Cipher
## Pairwise Cipher
## Authentication Suites
# connect to wireless w/o encryption:
iwconfig wlan0 essid "Holocron"

# connect to WEP:
iwconfig wlan0 essid "Holocron" key 12345678

# connect to WPA/WPA2:
ip link wlan0 up

# You will want to ensure that only root can access this file, since it contains your password.
# This will create a profile for Molly Net in '/etc/wpa_supplicant.conf' (only needs to be done once)
wpa_passphrase "Molly Net" "12345" >> /etc/wpa_supplicant.conf

# This will search and connect to any ESSID specified in the searched file.
wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf

# Wait approx 10s, then Request an ip address:
dhcpcd wlan0

Install

ZFS Install

To install archlinux with zfs on root, consult the ZFS page (highly recommended): ZFS archlinux install

Ext4 Install

mount /dev/sda2 /mnt

pacstrap -i /mnt base
arch-chroot /mnt
pacman -S efivar efibootmgr dosfstools vim

Settings

Choose Mirror

# /etc/pacmand.d/mirrorlist
# Uncomment Mirrors that are close to you

fstab

/etc/fstab mounts performed at boot
/etc/sysctl.conf Set all kinds of system controls such as swappiness and laptop-mode
# generate your fstab
genfstab -p /mnt >> /mnt/etc/fstab

# If there is an SSD, add discard to the mount flags
  ex: defaults,noatime,discard

# Create Swap Mountpoint
If you plan to use swap you should add your swap partition to the fstab as well.

# Test Swap
swapon -s					#test if swap was correctly entered in fstab

Define Locale

/etc/locale.conf
/etc/locale.gen
# /etc/locale.conf
#
#   echo locale > /etc/locale.conf
LANG=en_US.UTF-8
# enable locale
locale -a
# Uncomment your locale of choice in /etc/locale.gen (it contains all 
# locales that can be used on your system. You can display the locale 
# currently in use with the command "locale"
#   I use:		en_CA_.UTF-8, fr_CA.UTF-8, ja_JP.UTF-8
locale-gen

# You will also want to change locale.conf to mirror the settings chosen 
# in locale.gen. Enter 'LANG=' followed by the first part of your selected 
# language (omit the second UTF-8 separated by a space)
echo LANG=en_CA.UTF-8 > /etc/locale.conf

Define Computer Name (hostname)

echo agnes > /etc/hostname

Define Computer TimeZone

ln -s "/usr/share/zoneinfo/Canada/Eastern" "/etc/localtime"

Set up temporary RamDisk (pre boot)

you can use /etc/mkinitcpio.conf to setup a ramdisk that is loaded before init to send special instructions before boot

I left it as is. Systemd is riggoddamn fast.

Console Keymap + Font

/etc/vconsole.conf config file
/usr/share/kbd/keymaps/i386/qwerty keymaps
/usr/share/kbd/consolefonts/ console fonts

vconsole.conf is a two line file where you set your keyboard map (if you are using non-us english keys) and also where you set up your console font. These fonts are listed in /usr/share/kbd/consolefonts/. You may test them in an active console by using the command: setfont Lat2-Terminus16.

You may test the keymap in a console with loadkeys us.map

# example /etc/vconsole.conf
KEYMAP=us.map
FONT=Lat2-Terminus16

source:
https://wiki.archlinux.org/index.php/Fonts#Font_packages

UTC vs GMT

It is recommended that you use UTC in both linux and windows, or else you will have to log into windows periodically to have it fix the hardware clock. Setting the hardware clock can be a bit of a pain.

hwclock --hctosys --utc

Journal

Systemd uses journald instead of the traditional syslog. I still need to get using it properly.

# /etc/systemd/journald.conf
SystemMaxUse=50M									## By default, journald uses 10% of partition size

Configure pacman

# /etc/pacman.conf
CleanMethod = KeepCurrent
Color
[multilib]
Include = /etc/pacman.d/mirrorlist

Install ABS

ABS is the arch build system (inspired by BSD ports)

# Install ports
pacman -S abs    #install ports
sudo abs         #sync ports

# create a build directory
mkdir /home/abs

# create build directory for the package you want to build
cp -R /var/abs/extra/vim /home/ABS

# Edit the CFLAGS in the PKGBUILD file if you like
# (in this case change --disable-python to --enable-python)
makepkg

# Install the newly generated package file
pacman -U *.pkg.tar.gz

Set the root password

passwd
passwd will

Bootloader/BootManager

There are two components to booting your linux distrobution. The bootmanager which interacts with your bios/efi to choose a hard drive to load, and the bootloader which loads a kernel from a partition.

EFI

systemd-boot
grub2-efi

BIOS

grub
grub2

reboot

reboot into your freshly configured system, then continue in: Arch_PostInstall

exit 
umount /mnt
reboot