Forked from idvoretskyi/Arch Linux step-by-step installation on btrfs
Last active
May 2, 2018 13:25
-
-
Save frankenstein91/03279183008c447ef378b8c12f6b6a3d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
= Arch Linux step-by-step installation = | |
= http://blog.fabio.mancinelli.me/2012/12/28/Arch_Linux_on_BTRFS.html = | |
== Boot the installation CD == | |
loadkeys de | |
== Create partition == | |
gdisk /dev/sda | |
Part 1#: SWAP (8200) RAM + 4GB | |
Part 2#: EFI (EF00) 600MiB | |
Part 3#: /boot (8300) 3GiB | |
Part 4#: / (8300) all the rest | |
== Format the partition == | |
mkswap /dev/sda1 | |
mkfs.fat -F32 /dev/sda2 | |
mkfs.btrfs -L "Arch Linux" /dev/sda4 | |
mkfs.ext4 -L "Arch Linux Boot" /dev/sda3 | |
== Mount the partition == | |
mkdir /mnt/btrfs-root | |
mount -o defaults,discard,ssd,nodev,nosuid,compress=zstd /dev/sda4 /mnt/btrfs-root | |
== Create the subvolumes == | |
mkdir -p /mnt/btrfs-root/__snapshot | |
mkdir -p /mnt/btrfs-root/__current | |
btrfs subvolume create /mnt/btrfs-root/__current/root | |
btrfs subvolume create /mnt/btrfs-root/__current/home | |
== Mount the subvolumes == | |
mkdir -p /mnt/btrfs-current | |
mount -o defaults,discard,ssd,nodev,compress=zstd,subvol=__current/root /dev/sda4 /mnt/btrfs-current | |
mkdir -p /mnt/btrfs-current/home | |
mkdir -p /mnt/btrfs-current/boot | |
mount -o defaults,discard,ssd,nodev,compress=zstd,nosuid,subvol=__current/home /dev/sda4 /mnt/btrfs-current/home | |
mount /dev/sda3 /mnt/btrfs-current/boot | |
mkdir -p /mnt/btrfs-current/boot/efi | |
mount /dev/sda2 /mnt/btrfs-current/boot/efi | |
== Install Arch Linux == | |
nano /etc/pacman.d/mirrorlist | |
* Select the mirror to be used | |
== internet needed from here == | |
pacstrap /mnt/btrfs-current base base-devel efibootmgr dosfstools gptfdisk intel-ucode networkmanager btrfs-progs zsh zsh-systax-highlighting wget git | |
genfstab -U /mnt/btrfs-current >> /mnt/btrfs-current/etc/fstab | |
nano /mnt/btrfs-current/etc/fstab | |
* copy the partition info for / and mount it on /run/btrfs-root (remember to remove subvol and subvolid parameter! and add nodev,nosuid,noexec parameters) | |
* remove 2nd subvol params | |
== Configure the system == | |
arch-chroot /mnt/btrfs-current /bin/bash | |
nano /etc/locale.gen | |
* Uncomment de_DE.UTF-8 and de_DE* | |
locale-gen | |
echo LANG=de_DE.UTF-8 > /etc/locale.conf | |
export LANG=de_DE.UTF-8 | |
echo "KEYMAP=de-latin1" > /etc/vconsole.conf | |
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime | |
hwclock --systohc --utc | |
echo 'hackbook-ng' > /etc/hostname | |
nano /etc/hosts | |
127.0.0.1 localhost hackbook-ng | |
::1 localhost hackbook-ng | |
systemctl enable NetworkManager.service | |
nano /etc/mkinitcpio.conf | |
* Remove fsck and add btrfs to HOOKS | |
mkinitcpio -p linux | |
passwd | |
== Install boot loader == | |
pacman -S grub | |
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB | |
nano /etc/default/grub | |
* Edit settings (e.g., disable gfx, quiet, etc.) | |
grub-mkconfig -o /boot/grub/grub.cfg | |
exit | |
== Unmount and reboot == | |
umount /mnt/btrfs-current/home | |
umount /mnt/btrfs-current/boot/efi | |
umount /mnt/btrfs-current/boot | |
umount /mnt/btrfs-current | |
umount /mnt/btrfs-root | |
swapoff -a | |
reboot | |
== Post installation configuration == | |
sudo nano /etc/pacman.conf | |
#Color. Uncomment it by removing the hashtag (#) infront, and directly below write ILoveCandy | |
https://steemkr.com/tutorial/@dimitrisp/useless-but-fun-linux-terminal-tips-arch-pacman-and-pac-man-also-pi | |
=== Hardening === | |
chmod 700 /boot /etc/{iptables,arptables} | |
nano /etc/sysctl.d/01-icmp-Hardening.conf | |
* net.ipv4.icmp_echo_ignore_broadcasts = 1 | |
=== Snapshot === | |
echo $(date "+%Y%m%d-%H%M%S") > /run/btrfs-root/__current/root/SNAPSHOT | |
echo "Fresh install" >> /run/btrfs-root/__current/root/SNAPSHOT | |
btrfs subvolume snapshot -r /run/btrfs-root/__current/root /run/btrfs-root/__snapshot/ROOT@$(head -n 1 /run/btrfs-root/__current/root/SNAPSHOT) | |
cd /run/btrfs-root/__snapshot/ | |
ln -s ROOT@$(cat /run/btrfs-root/__current/root/SNAPSHOT) fresh-install | |
rm /run/btrfs-root/__current/root/SNAPSHOT | |
==== Software Installation === | |
visudo | |
* Enable sudo for wheel | |
groupadd frank | |
useradd -m -g frank -G users,wheel,storage,power,network,audio -s /bin/zsh -c "Frank Name" frank | |
passwd frank | |
mkdir -p /tmp/pacaur_install | |
cd /tmp/pacaur_install | |
pacman -S terminology | |
pacman -Syu | |
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=cower | |
makepkg PKGBUILD --skippgpcheck --install --needed | |
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=pacaur | |
makepkg PKGBUILD --install --needed | |
cd ~ | |
rm -r /tmp/pacaur_install | |
shutdown -r now | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment