Update my-arch-install-cheat-sheet.md
This commit is contained in:
commit
a05e2d906e
281
my-arch-install-cheat-sheet.md
Normal file
281
my-arch-install-cheat-sheet.md
Normal file
|
@ -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/<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
|
||||
```
|
Loading…
Reference in a new issue