cheat-sheet/my-arch-install-cheat-sheet.md

282 lines
4.9 KiB
Markdown
Raw Normal View History

2020-12-13 11:20:03 +01:00
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/<point>
```
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
```