commit a05e2d906e160762e10bbfa781ea28a0a97255c1 Author: Јован Ђокић-Шумарац Date: Sun Dec 13 10:20:03 2020 +0000 Update my-arch-install-cheat-sheet.md diff --git a/my-arch-install-cheat-sheet.md b/my-arch-install-cheat-sheet.md new file mode 100644 index 0000000..6235ddd --- /dev/null +++ b/my-arch-install-cheat-sheet.md @@ -0,0 +1,281 @@ +Install Arch Linux +================== + +This is my personal setup almost every time I install Arch Linux. +This is meant for me as being something I can quickly reference. + +Change localkeys to my keyboard layout +-------------------------------------- + +In my case I have a Danish keyboard layout. + +```bash +loadkeys dk +``` + +You can find your keymap file by using localectl: + +```bash +localectl list-keymaps +``` + +Or by simply looking inside the /usr/share/kbd/keymaps/ directory. + +```bash +find /usr/share/kbd/keymaps/ -type f +``` + +Create Partitions +----------------- + +```bash +cfdisk +``` + +Set up the partions, mount and use swap +--------------------------------------- + +Let us say you have a simple setup: + +- /boot partition (ext2) +- / partition (ext4) +- /home partition (ext4) +- /var partition (ext4) +- /tmp partition (ext4) +- swap partition [swap] + +NOTE: `lsblk` is a very nice tool to doublecheck your partition(s) structure. + +First we format to the file systems we want: + +```bash +mkfs.ext2 /dev/sdaxY (/boot) +mkfs.ext4 /dev/sdaxY (/, /home, /var, /tmp) +``` + +Why do I use ext2 for the boot partition? No need to have a journal. + +Create /mnt structure, one-liner: + +```bash +mkdir -p /mnt/{boot,home,var,tmp} +``` + +And then mount the file systems to /mnt: + +```bash +# Mount / (root) +mount /dev/sdaxY /mnt +# Mount /boot, /home, /var, /tmp +mount /dev/sdaxY /mnt/ +``` + +Let us not forget to make ("format") our swap and mount it as well: + +```bash +mkswap /dev/sdaxY +swapon /dev/sdaxY +``` + +Installing the actual base system and sudo +------------------------------------------ + +Install the base system, with sudo as well. + +```bash +pacstrap /mnt base base-devel sudo +``` + +Generate the fstab (so it knows how things are mounted) +------------------------------------------------------- + +This is why we had to mount everything as first, so genfstab +would know what to do when generating the fstab. + +```bash +genfstab -U -p /mnt >> /mnt/etc/fstab +``` + +chroot into the installed system with /bin/bash +----------------------------------------------- + +```bash +arch-chroot /mnt /bin/bash +``` + +Locale (system language) +------------------------ + +Depending on what you want, you change the /etc/locale.gen file: + +```bash +nano /etc/locale.gen +``` + +NOTE: Use UTF-8 whenever possible. + +DOUBLE NOTE: If you are from America, you don't need to change the file. + +When done, you simply generate the locales you want and tell the system what you +want to use. + +Generate: + +```bash +locale-gen +``` + +Tell the system what we use: + +```bash +echo LANG=en_GB.UTF-8 > /etc/locale.conf +export LANG=en_GB.UTF-8 +``` + +Timezone +-------- + +Symlink/Set your timezone: + +```bash +ln -s /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime +``` + +Set system to the Hardware Clock +-------------------------------- + +```bash +hwclock --systohc --utc +``` + +Hostname +-------- + +Choose an awesome hostname: + +```bash +echo myhostname > /etc/hostname +``` + +Setting up DHCP for my Internet Card +------------------------------------ + +systemd setup of your dhcp interface: + +```bash +ip link +systemctl enable dhcpcd@my-device.service +``` + +Just simply using `systemctl enable dhcpcdeth0.service` won't work anymore. +So I'm getting the correct device with ip link. (Usually the entry under the loop.) + +Ramdisk +------- + +Initial ramdisk environment. + +```bash +mkinitcpio -p linux +``` + +This actually ran under the pacstrap process, I just like to be safe. + +Root Password +------------- + +Be stronk: + +```bash +passwd +``` + +Grub (Bootloader) +----------------- + +Well, we need a bootloader: + +```bash +pacman -S grub +``` + +If I'm having **Windows** as well on another Partition, I'll also install ***os-prober***. + +```bash +grub-install --target=i386-pc --recheck /dev/sda +grub-mkconfig -o /boot/grub/grub.cfg +``` + +Exit arch-chroot +---------------- + +```bash +exit +``` + +Umount /mnt and reboot +---------------------- + +Unmount EVERYTHING and reboot the system. + +```bash +umount /dev/sdaxY +reboot +``` + +NOTE: You can use `umount -R /mnt` to recursively unmount everything in /mnt + +Login as Root to Arch Linux and permantly set the keymap (keyboard) +------------------------------------------------------------------- + +Now we want to make our keyboard layout permanent: + +```bash +localectl set-keymap --no-convert dk +``` + +I obviously have "dk" for Danish layout. Substitute with your own layout. + +NOTE: If you are a bloody American, you don't need to do this. US is default. + +Check for updates, there's probably none +---------------------------------------- + +```bash +pacman -Syy +pacman -Syu +``` + +Add User and set Password +------------------------- + +```bash +useradd -m -g users -G lp,scanner,audio,video,optical,network,games,wheel -s /bin/bash username +passwd username +``` + +Change sudoers file using nano +------------------------------ + +```bash +EDITOR=nano visudo +``` + +Uncomment wheel group. + +`# %wheel ALL=(ALL:ALL) ALL` + +Logout of Root +-------------- + +```bash +exit +``` + +Login as your username and test sudo with pacman +------------------------------------------------ + +```bash +sudo pacman -Syy +sudo pacman -Syu +```