mirror of
https://github.com/tiyn/wiki.git
synced 2025-04-02 15:07:45 +02:00
installation updated
This commit is contained in:
parent
c40406e070
commit
96118b9e35
@ -8,19 +8,19 @@ At the end of this guide a fully functional Arch Linux will be installed.
|
||||
## 1. Preparation
|
||||
|
||||
Ahead of the installation an Arch boot-stick has to be created. The iso-file can be found on the [official website](https://www.archlinux.org/download/).
|
||||
The iso can be written on an USB-stick using ```dd```.
|
||||
The iso can be written on an USB-stick using `dd`.
|
||||
After that the USB can be plugged in the system on which Arch should be installed.
|
||||
Boot the target system and select ```Boot Arch Linux (x86_64)```.
|
||||
Boot the target system and select `Boot Arch Linux (x86_64)`.
|
||||
|
||||
If you need to set the keyboard layout to anything other than english you can temporarily do so by using the ```loadkeys``` command.
|
||||
This has to be followed by your country id (for example a german keyboard layout would be ```de```,```de-latin1``` or ```de-latin1-nodeadkeys```.
|
||||
If you need to set the keyboard layout to anything other than english you can temporarily do so by using the `loadkeys` command.
|
||||
This has to be followed by your country id (for example a german keyboard layout would be `de`,`de-latin1` or `de-latin1-nodeadkeys`.
|
||||
|
||||
## 2. Formatting of the target drive
|
||||
|
||||
Using ```lsblk``` you can list all the drives and partitions.
|
||||
Using `lsblk` you can list all the drives and partitions.
|
||||
Select a drive to install Arch on.
|
||||
In this step you can see if old partitions need to be deleted.
|
||||
For reasons of simplicity the following guide will assume the selected drive to be ```/dev/sda```.
|
||||
For reasons of simplicity the following guide will assume the selected drive to be `/dev/sda`.
|
||||
|
||||
### Clear disk completely:
|
||||
|
||||
@ -32,7 +32,7 @@ Now all partitions should be removed.
|
||||
|
||||
### Create new partitions:
|
||||
|
||||
If you miss click during the progress of the following commands you can press ```CTRL+C``` to close the program.
|
||||
If you miss click during the progress of the following commands you can press `CTRL+C` to close the program.
|
||||
No changes will be made until the confirmation at the end.
|
||||
The swap partition will be created later under lvm.
|
||||
|
||||
@ -54,20 +54,20 @@ The swap partition will be created later under lvm.
|
||||
## 3. Encryption
|
||||
|
||||
We need to find out which partitions is the one we want to encrypt.
|
||||
Using ```blkid | grep /dev/sda``` all partitions we created get listed.
|
||||
The right partition has the label ```Linux filesystem```.
|
||||
For this guide this partition is assumed to be ```/dev/sda2```.
|
||||
Using `blkid | grep /dev/sda` all partitions we created get listed.
|
||||
The right partition has the label `Linux filesystem`.
|
||||
For this guide this partition is assumed to be `/dev/sda2`.
|
||||
|
||||
- `modprobe dm-crypt` - load kernelmodule for encryption
|
||||
- `cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2` - encryption
|
||||
- confirm with ```YES```
|
||||
- confirm with `YES`
|
||||
- Now you can assign a passphrase.
|
||||
The passphrase has to be entered at boot to decrypt the system.
|
||||
Recovering of this passphrase is **not** possible.
|
||||
|
||||
## 4. Setup LVM
|
||||
|
||||
- `cryptsetup luksOpen /dev/sda2 lvm` - Opening encrypted partition and mapping it to ```/dev/mapper/lvm```
|
||||
- `cryptsetup luksOpen /dev/sda2 lvm` - Opening encrypted partition and mapping it to `/dev/mapper/lvm`
|
||||
- `pvcreate /dev/mapper/lvm` - Create a LVM physical volume
|
||||
- `vgcreate main /dev/mapper/lvm` - Create LVM Volume Group
|
||||
- `lvcreate -L 16G -n swap main` - Create Swap in LVM (recommended: swap size is equal to ram size)
|
||||
@ -76,12 +76,12 @@ Recovering of this passphrase is **not** possible.
|
||||
## 5. Create filesystems and mounting them temporarily
|
||||
|
||||
We have to find out which partition is our boot-partition.
|
||||
Using ```blkid | grep /dev/sda``` once again, we can identify it by looking for the ```EFI system partition``` label.
|
||||
The guide assumes this partition to be at ```/dev/sda1```.
|
||||
Using `blkid | grep /dev/sda` once again, we can identify it by looking for the `EFI system partition` label.
|
||||
The guide assumes this partition to be at `/dev/sda1`.
|
||||
|
||||
- ```mkfs.fat -F 32 -n UEFI /dev/sda1``` - Assign filesystem of EFI partition
|
||||
- ```mkfs.ext4 -L root /dev/mapper/main-root``` - Assign filesystem of root partition
|
||||
- ```mkswap /dev/mapper/main-swap``` - Assign swap filesystem
|
||||
- `mkfs.fat -F 32 -n UEFI /dev/sda1` - Assign filesystem of EFI partition
|
||||
- `mkfs.ext4 -L root /dev/mapper/main-root` - Assign filesystem of root partition
|
||||
- `mkswap /dev/mapper/main-swap` - Assign swap filesystem
|
||||
|
||||
Now the created filesystems will be mounted for the installation.
|
||||
|
||||
@ -97,36 +97,37 @@ This will improve the download speed.
|
||||
|
||||
- `cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak` - Create a backup of mirrorlist
|
||||
- `grep -E -A 1 ".*Germany.*$" /etc/pacman.d/mirrorlist.bak | sed '/--/d' > /etc/pacman.d/mirrorlist` - Example command to only use *German* mirrors
|
||||
- `cat /etc/pacman.d/mirrorlist` - Check if the file is to your liking. If it is not, you can just recover by using ```mirrorlist.bak```
|
||||
- `cat /etc/pacman.d/mirrorlist` - Check if the file is to your liking. If it is not, you can just recover by using `mirrorlist.bak`
|
||||
|
||||
## 7. Starting base installation
|
||||
|
||||
- `pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware networkmanager vim` - Installation of main system with needed tools
|
||||
- `pacstrap /mnt wpa\_supplicant wireless\_tools` - (optional) installation of wireless tools
|
||||
Now you need a working internet connection.
|
||||
Plug in your lan cable or use `wifi-menu` to get a wireless connection.
|
||||
|
||||
- `pacstrap /mnt base base-devel dosfstools gptfdisk lvm2 linux linux-firmware vim dialog dhcpcd` - Installation of main system with needed tools
|
||||
- `genfstab -Up /mnt > /mnt/etc/fstab` - creation of fstab
|
||||
- `arch-chroot /mnt` - Switch into the newly installed system
|
||||
- `echo ArchLinux > /etc/hostname` - Assign hostname. ```ArchLinux``` can be changed for any name of your preference.
|
||||
- `echo ArchLinux > /etc/hostname` - Assign hostname. `ArchLinux` can be changed for any name of your preference.
|
||||
|
||||
## 8. Set Region and Language
|
||||
|
||||
- `echo LANG=en\_US.UTF-8 > /etc/locale.conf` - Assign system Language to be english (you can use other languages, look into the ```/etc/locale.conf``` for a list of all available languages)
|
||||
- `echo LANG=en\_US.UTF-8 > /etc/locale.conf` - Assign system Language to be english (you can use other languages, look into the `/etc/locale.gen` for a list of all available languages)
|
||||
- `vim /etc/locale.gen` - Assigning system language by uncomment the lines depending on your needs.
|
||||
In this example:
|
||||
```
|
||||
en_US.UTF-8 UTF-8
|
||||
```
|
||||
- `locale-gen` - Generate languages
|
||||
- if you need any other keymap than english you can change it now for example to German by `localectl --no-convert set-keymap de-latin1-nodeadkeys`.
|
||||
- `localectl status` - Check if the layout is right
|
||||
- `echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf` - set the keymap
|
||||
- `tzselect` - Set region
|
||||
|
||||
# 9. Configure and create kernel-image
|
||||
|
||||
- `vim /etc/mkinitcpio.conf`
|
||||
- Search the line `MODULES=()` and change it to:
|
||||
`MODULES=(ext4)`
|
||||
`MODULES=(ext4)`
|
||||
- Search the line `HOOKS=([...])` and change it to:
|
||||
`HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown)`
|
||||
`HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems fsck shutdown)`
|
||||
- `mkinitcpio -p linux` - generate Kernel-Image
|
||||
|
||||
## 10. Install and configure UEFI bootloader
|
||||
@ -135,30 +136,23 @@ en_US.UTF-8 UTF-8
|
||||
- `ls -l /dev/disk/by-uuid` - find out the UUID
|
||||
- `lsblk -no UUID /dev/sda2 | head -n1 > /boot/loader/entries/arch.conf` - print the UUID in your configuration file
|
||||
- `vim /boot/loader/entries/arch.conf` - Create configuration
|
||||
- Change the config to look similar to this:
|
||||
```
|
||||
title Arch Linux
|
||||
linux /vmlinuz-linux
|
||||
initrd /initramfs-linux.img
|
||||
options cryptdevice=UUID=<enter your uuid here>:lvm:allow-discards root=/dev/mapper/main-root:lvm:allow-discards resume=/dev/mapper/main-swap rw quiet lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8
|
||||
```
|
||||
- `cp /boot/loader/entries/arch-fallback.conf` - Create a fallback
|
||||
- `vim /boot/loader/entries/arch-fallback.conf` - Edit the file
|
||||
- change the file to look similar to this:
|
||||
```
|
||||
title Arch Linux
|
||||
linux /vmlinuz-linux
|
||||
initrd /initramfs-linux.img
|
||||
options cryptdevice=UUID=<enter your uuid here>:lvm:allow-discards root=/dev/mapper/main-root:lvm:allow-discards resume=/dev/mapper/main-swap rw quiet lang=de init=/usr/lib/systemd/systemd locale=de_DE.UTF-8
|
||||
```
|
||||
- Change the config to look similar to this:
|
||||
```
|
||||
title Arch Linux
|
||||
linux /vmlinuz-linux
|
||||
initrd /initramfs-linux.img
|
||||
options cryptdevice=UUID=<enter your uuid here>:lvm:allow-discards root=/dev/mapper/main-root resume=/dev/mapper/main-swap rw quiet
|
||||
```
|
||||
- `cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-fallback.conf` - Create a fallback
|
||||
- `vim /boot/loader/loader.conf` - Create loader configuration
|
||||
- Insert the following text
|
||||
```
|
||||
timeout 1
|
||||
timeout 0
|
||||
default arch
|
||||
```
|
||||
## 11. Finishing base installation
|
||||
|
||||
- `passwd` - set password for the root account
|
||||
- `exit` - exit the installed system
|
||||
- `umount /mnt/{boot,}` - unmount all partitions
|
||||
- `shutdown now` - shutdown device
|
||||
@ -166,57 +160,11 @@ en_US.UTF-8 UTF-8
|
||||
- Start the device again
|
||||
|
||||
If the system is installed in a virtual environment or a system with deactivated UEFI, don't forget to enable the EFI option, otherwise the system won't boot.
|
||||
|
||||
## 12. Activate network connection
|
||||
|
||||
- Log in as ```root``` user
|
||||
- `systemctl enable NetworkManager.service` - Activate NetworkManager
|
||||
- `systemctl enable wpa\_supplicant.service` - (Optional) activate wpa_supplicant
|
||||
- `systemctl start NetworkManager.service` - Start NetworkManager
|
||||
|
||||
The device should connect to the internet if it is connected via LAN.
|
||||
Using ```nmtui``` you can administer the wired and wireless connections
|
||||
|
||||
## 13. Automatic time settings
|
||||
|
||||
- `pacman -Syu ntp` - Installing time service
|
||||
- `ntpd -qg` - Get current time
|
||||
- `hwclock --systohc` - Synchronize hardware clock
|
||||
- `systemctl enable ntpd.service` - enable time service
|
||||
|
||||
## 14. Create user
|
||||
|
||||
- `vim /etc/sudoers` - Open sudoers file
|
||||
- uncomment the following lines
|
||||
```
|
||||
%whell All=(ALL) ALL
|
||||
```
|
||||
- `useradd -m user` - Create a user with ```user``` as name. For the user a home directory will be created.
|
||||
- `usermod -aG wheel user` - Add user ```user``` to wheel group
|
||||
- `passwd -d user` - Remove password for user ```user```
|
||||
- `logout` - logout from root
|
||||
- log in as the newly created user
|
||||
|
||||
On the freshly installed system there are 2 users.
|
||||
Make sure to set the password!
|
||||
You can add one using ```passwd```.
|
||||
|
||||
## 15. Install yay
|
||||
|
||||
- `sudo pacman -S git` - install git
|
||||
- `cd /opt`
|
||||
- `sudo git clone https://aur.archlinux.org/yay-git.git` - Clone the yay git repository
|
||||
- `sudo chown -R user:user yay-git` - Change owner
|
||||
- `cd yay-git`
|
||||
- `makepkg -si` - Start installation
|
||||
|
||||
## 16. Activate sound
|
||||
|
||||
- `yay -S alsa-utils pulseaudio-alsa`
|
||||
|
||||
The volume can be changed with `alsamixer`.
|
||||
Now you can follow my larbs installation script (`curl -o larbs.sh https://raw.githubusercontent.com/tiyn/larbs/master/larbs.sh` or go on to other guides.
|
||||
|
||||
## Changelog and versions
|
||||
> 03.04.2020 - Version 1.1en (based on 03.04.2020 - Version 1.1)
|
||||
>
|
||||
> 05.04.2020 - Version 2.1en (based on 05.04.2020 - Version 2.1)
|
||||
>
|
||||
> 28.05.2020 - Version 3.0en
|
||||
|
Loading…
x
Reference in New Issue
Block a user