219 lines
6.1 KiB
Markdown
219 lines
6.1 KiB
Markdown
|
---
|
|||
|
title: How to install Arch Linux
|
|||
|
tags:
|
|||
|
- linux
|
|||
|
- tutorial
|
|||
|
date: 2018-03-15 17:21:22
|
|||
|
---
|
|||
|
|
|||
|
Today I’m going to instruct you through the steps of installing your own Arch Linux system.
|
|||
|
|
|||
|
## Download the ISO
|
|||
|
|
|||
|
You can find the [downloads for Arch Linux by clicking here](https://www.archlinux.org/download/).
|
|||
|
|
|||
|
## 1. Partition the drive
|
|||
|
|
|||
|
Determine your drive name by running `lsblk`. Run the following command to start the partitioning (with `/dev/sda` replaced by your drive):
|
|||
|
|
|||
|
```
|
|||
|
# fdisk /dev/sda
|
|||
|
```
|
|||
|
|
|||
|
1. Enter `n` to create a new partition.
|
|||
|
2. Press Enter on the following prompts to accept the defaults.
|
|||
|
3. Enter `w` to write your changes to the disk.
|
|||
|
|
|||
|
## 2. Create the File System and mount it
|
|||
|
|
|||
|
Next, you need to create a filesystem on the partition that you’ve made. After you’ve created the filesystem, you can mount it.
|
|||
|
|
|||
|
```
|
|||
|
# mkfs.ext4 /dev/sda1
|
|||
|
# mount -t ext4 /dev/sda1 /mnt
|
|||
|
```
|
|||
|
|
|||
|
## 3. Install Arch Linux system
|
|||
|
|
|||
|
This is maybe the most important step in the progress. This is the step where you are actually installing the system. For that, you need to run `pacstrap` followed by the packages you want to install. In this case, we’ll install `base` and `grub` for the bootloader.
|
|||
|
|
|||
|
```
|
|||
|
# pacstrap -i /mnt base grub
|
|||
|
```
|
|||
|
|
|||
|
## 4. Generate File System Tab
|
|||
|
|
|||
|
The file `fstab` contains descriptive information about the filesystems the system can mount.
|
|||
|
|
|||
|
```
|
|||
|
# genfstab -U -p /mnt >> /mnt/etc/fstab
|
|||
|
```
|
|||
|
|
|||
|
## 5. Enter the system via `chroot`
|
|||
|
|
|||
|
Now, we’re ready to set up the system by going inside it. For this, we’ll be running `arch-chroot`. **Do NOT reboot at this stage!**
|
|||
|
|
|||
|
```
|
|||
|
# arch-chroot /mnt /bin/bash
|
|||
|
```
|
|||
|
|
|||
|
## 6. Setting up locales
|
|||
|
|
|||
|
Locales are basically the language files your system will be using.
|
|||
|
|
|||
|
```
|
|||
|
# nano /etc/locale.gen
|
|||
|
Uncomment line en_US.UTF-8 UTF-8
|
|||
|
Uncomment line en_US ISO-8859-1
|
|||
|
|
|||
|
(uncomment by removing the `#` in front)
|
|||
|
```
|
|||
|
|
|||
|
After that, you have to generate the locale files.
|
|||
|
|
|||
|
```
|
|||
|
# locale-gen
|
|||
|
```
|
|||
|
|
|||
|
And then put them into effect on the system.
|
|||
|
|
|||
|
```
|
|||
|
# echo LANG=en_US.UTF-8 > /etc/locale.conf
|
|||
|
# export LANG=en_US.UTF-8
|
|||
|
```
|
|||
|
|
|||
|
## 7. Setting the timezone
|
|||
|
|
|||
|
All timezone files can be found in `/usr/share/zoneinfo/`. You need to create a link to `/etc/localtime` with the timezone you want.
|
|||
|
|
|||
|
```
|
|||
|
# ln -s /usr/share/zoneinfo/LOCATION/CITY /etc/localtime
|
|||
|
```
|
|||
|
|
|||
|
## 8. Set the hardware clock
|
|||
|
|
|||
|
This command sets the hardware clock from system time. `--utc` implies that your hardware clock is in the UTC timezone. More information [here](https://wiki.archlinux.org/index.php/Time#Hardware_clock)
|
|||
|
|
|||
|
```
|
|||
|
# hwclock --systohc --utc
|
|||
|
```
|
|||
|
|
|||
|
## 9. Set your system’s hostname
|
|||
|
|
|||
|
This can be anything you want.
|
|||
|
|
|||
|
```
|
|||
|
# echo "my-computer" > /etc/hostname
|
|||
|
```
|
|||
|
|
|||
|
## 10. Set up simple networking
|
|||
|
|
|||
|
Before you do the following, please run `ip a` to determine your interface. It’s generally called `eth0`, but it may be different on some machines.
|
|||
|
|
|||
|
1. Copy the example
|
|||
|
|
|||
|
```
|
|||
|
# cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/my_network
|
|||
|
```
|
|||
|
|
|||
|
2. Modify the interface name
|
|||
|
|
|||
|
```
|
|||
|
# nano /etc/netctl/my_network
|
|||
|
Replace the "Interface=eth0" line with the one shown by the "ip a" command.
|
|||
|
```
|
|||
|
|
|||
|
3. Enable the network
|
|||
|
|
|||
|
```
|
|||
|
# netctl enable my_network
|
|||
|
```
|
|||
|
|
|||
|
##
|
|||
|
|
|||
|
Setting a password on your root user is highly recommended. You can do that now by running `passwd`
|
|||
|
|
|||
|
##
|
|||
|
|
|||
|
You can find information on how to install GRUB on various systems on the [Arch Linux Wiki](https://wiki.archlinux.org/index.php/GRUB). The following is a simple installation on a system with a **BIOS** (not **UEFI**). You can find more boot loaders [here](https://wiki.archlinux.org/index.php/Category:Boot_loaders).
|
|||
|
|
|||
|
```
|
|||
|
# grub-install --recheck /dev/sda
|
|||
|
# grub-mkconfig -o /boot/grub/grub.cfg
|
|||
|
```
|
|||
|
|
|||
|
## 13. Reboot the machine
|
|||
|
|
|||
|
You are now ready to boot into your new system.
|
|||
|
|
|||
|
```
|
|||
|
# exit
|
|||
|
# umount /mnt
|
|||
|
# shutdown
|
|||
|
```
|
|||
|
|
|||
|
After shutting down, remove the disk image and boot the system again. **You can now use your newly installed system!**
|
|||
|
|
|||
|
# More things to do
|
|||
|
|
|||
|
## Creating an user account
|
|||
|
|
|||
|
The first user you create should also be added to the `wheel` group. This will be kind of like an administrator.
|
|||
|
|
|||
|
```
|
|||
|
# useradd -m -G wheel -s /bin/bash usernamehere
|
|||
|
# passwd usernamehere
|
|||
|
```
|
|||
|
|
|||
|
For creating other users, you should omit the `-G wheel` part unless you want them to be able to use `sudo`.
|
|||
|
|
|||
|
### Enabling `sudo`
|
|||
|
|
|||
|
1. Install sudo - `# pacman -S sudo`
|
|||
|
2. Create a file in `/etc/sudoers.d/99-wheel` with the following lines:
|
|||
|
|
|||
|
```
|
|||
|
%wheel ALL=(ALL) ALL
|
|||
|
```
|
|||
|
|
|||
|
If you want the `wheel` group to be able to use sudo without password, you can replace the last `ALL` with `NOPASSWD: ALL`.
|
|||
|
|
|||
|
## Installing a Desktop Environment
|
|||
|
|
|||
|
Firstly, you should install `xorg` packages.
|
|||
|
|
|||
|
```
|
|||
|
# pacman -S xorg-server xorg-xinit xorg-server-utils mesa xterm
|
|||
|
```
|
|||
|
|
|||
|
For graphics drivers, you can look at the wiki: [Intel](https://wiki.archlinux.org/index.php/Intel_graphics), [ATI](https://wiki.archlinux.org/index.php/ATI), [AMD](https://wiki.archlinux.org/index.php/AMDGPU) and [NVIDIA](https://wiki.archlinux.org/index.php/NVIDIA).
|
|||
|
|
|||
|
**You can find packages for various desktop environments [here](https://wiki.archlinux.org/index.php/Desktop_environment).**
|
|||
|
|
|||
|
### Install `lightdm`
|
|||
|
|
|||
|
Some desktop environments don’t have a system to log you in to a session. This is where `lightdm` comes to play.
|
|||
|
|
|||
|
```
|
|||
|
# pacman -S lightdm lightdm-gtk-greeter
|
|||
|
# systemctl enable lightdm.service
|
|||
|
```
|
|||
|
|
|||
|
You can find lightdm configuration at `/etc/lightdm/lightdm.conf`.
|
|||
|
|
|||
|
After you’ve installed what you want, you can reboot the system and it should either load up the desktop environment or the `lightdm-gtk-greeter`, which will allow you to select a desktop environment to log in to.
|
|||
|
|
|||
|
## Keeping your system up-to-date
|
|||
|
|
|||
|
You should keep your system up-to-date to get the latest packages and security patches. Arch Linux is a **rolling release** distribution, meaning that you don’t have to reinstall the entire system and package updates are rolled separately instead of in bundles.
|
|||
|
|
|||
|
```
|
|||
|
# pacman -Syu
|
|||
|
```
|
|||
|
|
|||
|
This command synchronizes your system with the latest repositories and installs all available updates.
|
|||
|
|
|||
|
# That’s it!
|
|||
|
|
|||
|
This should be your basic Arch Linux system ready to go! Always remember that the [Arch Linux Wiki](https://wiki.archlinux.org/) is a great place to find help for all things Linux, not just Arch!
|