This is my personal collection of notes and guidelines to install Arch Linux on my T450. This is nothing official and there is no guarantee it will work for you. This is just how I do it. There are also some notes and files that I'd like to keep and share.
You can for sure follow this to install Arch on your own machine. Just consider following notes, those might be different for you:
- I have BIOS. Not UEFI. So the installation is different for you if you have UEFI (I have tried to put notice in places where it differs).
- I am using Wifi internet connection. My device has drivers already included in the Arch ISO.
- I am booting from USB
- I have root and swap partitions
Please, for any good reference see Arch Wiki Installation guide. I recommend to see the version in different languages, in my case there were some notes that helped me and I didn't find them in English version
If you don't have USB with Arch prepared, go to download ISO here. I use Rufus on Windows or dd command on Linux to create bootable USB.
You might need to switch keyboard layout before continuing. Default is US. ls /usr/share/kbd/keymaps/**/*.map.gz lists all possible layouts. If you need to load for example Czech QWERTZ, command loadkeys cz-qwertz will do it.
You obviously would be good with internet. I use iwd to connect in the live booted USB. First of all, check if there are any active wlan interfaces with command ip link. In my case that is wlan0.
Next, fire up iwctl program which opens its own shell. First, check out the devices:
[iwd]$ device listIf you see your the previously mentioned wireless interface, good. Scan and list all networks with it:
[iwd]$ station wlan0 scan
[iwd]$ station wlan0 get-networksAt this point I usually exit the iwd and connect to the network with this command (you can omit the --passphrase if there is none):
$ iwctl --passphrase myNetworkPassword station wlan0 connect myNetworkSSIDAnd if you ping github.com you should receive a response! You are good to go for the preinstallation configuration.
Keep in mind that this connection is just for the booted system, not for the actual installed one. I do cover Network Manager installation at the very end of the document
Now we need to create partition and format disk. This will actually erase the disk data so if you have anything that needs to be backed up, go back and do it now.
Command fdisk -l will show you connected drives. If you have one HDD/SSD drive and your bootable USB connected, you should see something like /dev/sda and /dev/sdb. You should easily tell from the sizes which one is the target for the system.
This opens the disk formatter tool on the /dev/sda drive. I'm not gonna cover how to create partitions and format them, checkout some other tutorial for fdisk. But the basic commands are d to delete existing partitions, n to create new one, l to list partitions, t to change partition type and w to write the changes.
fdisk /dev/sdaWhat I did was create swap partition /dev/sda2 of 4GB and the rest is root partition /dev/sda1. You can skip the swap partition and go on without next commands related to swap (there is two of them only). For UEFI systems you also need efi partition. See Arch Wiki for more info.
Now, format the root and swap partitions:
$ mkfs.ext4 /dev/sda1
$ mkswap /dev/sda2Activate the swap partition and mount the root partition:
$ mount /dev/sda1 /mnt
$ swapon /dev/sda2If you have end up doing all of the above without any issue, well done! Now it's gonna be just about having fun.
Install the Arch. I also threw in Vim because there is no text editor:
$ pacstrap /mnt base linux linux-firmware vim #you can substitute vim with nano or other text editorsOnce that's done, generate some super important file that tells Arch how partitions and file systems are set up:
$ genfstab -U /mnt >> /mnt/etc/fstabNow, we need to set up few things like locale, timezones and install some packages. This can be changed later when booted into the system.
$ arch-chroot /mntUpdate packages:
$ pacman -SyuNow we change root directory for the current running process. This means that we can execute commands such as pacman and make it affect the installed system. Set the timezone, select the region and city of that region:
$ ln -sf /usr/share/zoneinfo/Region/City /etc/localtimeTurn on the HW clock:
$ hwclock --systohcTo set locale you first need to go into file /etc/locale.gen and uncomment lines with locale you want to be installed. Generate the results with locale-gen command. To set up language preference, add following line into file /etc/locale.conf:
LANG=en_US.UTF-8 #this is the locale you uncommented in /etc/locale.gen, can be changed laterIn file /etc/vconsole.conf you can change keyboard layout. Default is US, but you can have Czech QWERTZ for example:
KEYMAP=cs-qwertz #can be also changed laterSet up hostname by typing it into /etc/hostname (just type the hostname in and save) and then set up /etc/hosts like this:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostnameYou need boot loader. For this I grab GRUB as my weapon of choice (setup with UEFI):
$ pacman -S grub
$ grub-install /dev/sda #if error, add --recheck to the commandIf you have Intel CPU, install intel-ucode as well. It's important for Microcode updates (details here).
$ pacman -S intel-ucodeYou should find the intel-ucode in /boot directory. Now just update GRUB config:
$ grub-mkconfig -o /boot/grub/grub.cfgIf you rely on Wifi as me, you need good network manager. I choose NetworkManager and some other useful tools. (You can straight install some DE, for example KDE and GNOME come with network managers.)
$ pacman -S wpa_supplicant wireless_tools networkmanagerTurn NetworkManager on and make sure dhcpcd is disabled:
$ systemctl enable NetworkManager.service
$ systemctl disable dhcpcd.service
$ systemctl enable wpa_supplicant.service #for wireless security levelsAfter you boot to your system, there will be few commands to connect you to wireless network.
Last important thing what you should do is set password for root with passwd command.
Now, simply umount -R /mnt the system and reboot. Remove the USB stick and you should be booted straight into your new Arch Linux.
After you reboot, you have to log in with root and password set in earlier steps. First of all start Network Manager and get connected:
$ systemctl start NetworkManager.serviceFor network management there is nmcli command:
$ nmcli device wifi list #get list of available wifi networks
$ nmcli device wifi connect myNetworkSSID password myNetworkPassword #connects you to myNetworkSSID
$ nmcli connection show #get current connectionsYou can also use and install nmtui which is UI tool for terminal for network management.
If you decide to install some DE, for example KDE, create new user and make him sudoer first. Some DEs can't boot as root. First, install sudo:
$ pacman -S sudo$ useradd -m derg #create user derg with home directory
$ passwd derg #setup password for derg
$ EDITOR=vim visudo #you can substitute vim with nano or other editor, this is the most secure way to add sudoersIn the edited file find root record and add derg ALL=(ALL) ALL bellow it. Save and close.
Now, to install KDE Plasma DE you need bunch of stuff. To simply have plasma you just need plasma and xorg. The rest is something extra. You can also install kde-applications, but I prefer installing single packages one by one. (See this page for more details)
$ pacman -S xorg plasma plasma-wayland-session doplhin yakuake firefox yayAfter done, enable the display manager service:
$ systemctl enable sddm.serviceAfter you reboot, you can log into Plasma with newly created user and enjoy DE experience!