<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alan Bouteiller</title>
    <description>The latest articles on DEV Community by Alan Bouteiller (@bouteilleralan).</description>
    <link>https://dev.to/bouteilleralan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F402564%2F189a1955-c219-498b-9266-dc8d5f1ae19d.jpeg</url>
      <title>DEV Community: Alan Bouteiller</title>
      <link>https://dev.to/bouteilleralan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bouteilleralan"/>
    <language>en</language>
    <item>
      <title>Step-by-Step Guide to Installing Arch Linux</title>
      <dc:creator>Alan Bouteiller</dc:creator>
      <pubDate>Thu, 10 Nov 2022 13:12:44 +0000</pubDate>
      <link>https://dev.to/bouteilleralan/step-by-step-guide-to-installing-arch-linux-2h0a</link>
      <guid>https://dev.to/bouteilleralan/step-by-step-guide-to-installing-arch-linux-2h0a</guid>
      <description>&lt;h2&gt;
  
  
  💾 Iso Prep
&lt;/h2&gt;

&lt;p&gt;Download the iso via the website and check the gpg signature&lt;/p&gt;

&lt;p&gt;mount the iso in a usb via something like balena etcher&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Launch Install
&lt;/h2&gt;

&lt;p&gt;make sure the bios have the secure boot disable and boot on the iso&lt;/p&gt;

&lt;h2&gt;
  
  
  🎹 Set Up the Keyboard Layout
&lt;/h2&gt;

&lt;p&gt;By default the layout is set to US.&lt;/p&gt;

&lt;p&gt;If you want to list all the layouts available do &lt;code&gt;ls /usr/share/kbd/keymaps/**/*.map.gz&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Use a layout with, for example, &lt;code&gt;loadkeys de-latin1&lt;/code&gt; (here German layout).&lt;/p&gt;

&lt;h2&gt;
  
  
  🛰️ Go to the Internet
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Wifi dosent work out of the box but ethernet yes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Check your network interface name via &lt;code&gt;ip link&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Check the status of your wifi card with &lt;code&gt;rfkill&lt;/code&gt;. If your card is blocked, unblocked them with &lt;code&gt;rfkill unblock your-card-id&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For the wifi connection you have to use the iwd package. Hopefully arch include the package in the iso.&lt;/p&gt;

&lt;p&gt;Open the prompt with &lt;code&gt;iwctl&lt;/code&gt; and :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;list all your device with &lt;code&gt;device list&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;launch a scan &lt;code&gt;station [device name] scan&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;get the list of the available network &lt;code&gt;station [device name] get-network&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;connect to the network with &lt;code&gt;station [device name] connect [SSID]&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;enter the password&lt;/li&gt;
&lt;li&gt;check the connection with &lt;code&gt;station [device name] show&lt;/code&gt; and &lt;code&gt;ping archlinux.org&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;done :)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;iwd&lt;/code&gt; automatically stores network passphrases in the &lt;code&gt;/var/lib/iwd&lt;/code&gt; directory and uses them to auto-connect in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  🕛 Update System Clock
&lt;/h2&gt;

&lt;p&gt;Just do &lt;code&gt;timedatectl set-ntp true&lt;/code&gt;. Check the service status with &lt;code&gt;timedatectl status&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  💽 Disk Partitioning
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;warning : this step erase all the data in your disk if you confirm the operation !&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;List your drive with &lt;code&gt;fdisk -l&lt;/code&gt; and note the one you want to use.&lt;/p&gt;

&lt;p&gt;Open the prompt on the right disk with &lt;code&gt;fdisk /dev/[your disk]&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;remind to delete the old partition before the following command. Do that with command &lt;code&gt;d&lt;/code&gt; and the id of the partition.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's create the partition, in the open fdisk prompt :&lt;/p&gt;

&lt;p&gt;Here we create a gpt partition because I do a EFI install&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create a new gpt label with &lt;code&gt;g&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;add the first partition with &lt;code&gt;n&lt;/code&gt; (efi)

&lt;ul&gt;
&lt;li&gt;partition number is &lt;code&gt;1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;the first sector is the default one (just hit enter)&lt;/li&gt;
&lt;li&gt;the last sector is &lt;code&gt;+550M&lt;/code&gt; for 550mb&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;add the second partition with &lt;code&gt;n&lt;/code&gt; (swap)

&lt;ul&gt;
&lt;li&gt;partition number is &lt;code&gt;2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;the first sector is the default one&lt;/li&gt;
&lt;li&gt;the last sector is &lt;code&gt;+4G&lt;/code&gt; (handle the size of your swap like you want, minimum 2gb is ok)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;add the last partition with &lt;code&gt;n&lt;/code&gt; (primary/data)

&lt;ul&gt;
&lt;li&gt;partition number is &lt;code&gt;3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;the first sector is the default one&lt;/li&gt;
&lt;li&gt;the last sector is the default one&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Ok now we need to change the partition type with the &lt;code&gt;t&lt;/code&gt; command :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;chose for partition 1 the &lt;code&gt;1&lt;/code&gt; type (list all the partition type with &lt;code&gt;L&lt;/code&gt; if your are not sure)&lt;/li&gt;
&lt;li&gt;chose for partition 2 the &lt;code&gt;19&lt;/code&gt; type&lt;/li&gt;
&lt;li&gt;don't change the partition 3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just enter &lt;code&gt;w&lt;/code&gt; to write the partition table.&lt;/p&gt;

&lt;h2&gt;
  
  
  🗃️ Make the File System
&lt;/h2&gt;

&lt;p&gt;For the efi partition, we need to have a FAT32 file system, do it with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkfs.fat -F32 /dev/[your partition 1]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For the swap we need a swap filesystem, do it with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkswap /dev/[your partition 2]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and activate the swap with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;swapon /dev/[your partition 2]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For the main partition we do a ext4 filesytem :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkfs.ext4 /dev/[your partition 3]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ⚡ Mount the Big Partition in the Live Environment
&lt;/h2&gt;

&lt;p&gt;Simply do &lt;code&gt;mount /dev/[your partition 3] /mnt&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧬 Install the Base System
&lt;/h2&gt;

&lt;p&gt;We do it via &lt;code&gt;pacstrap /mnt base linux linux-firmware&lt;/code&gt;. Here base is the arch system, linux the kernel.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧫 Generate the fstab
&lt;/h2&gt;

&lt;p&gt;Simply do &lt;code&gt;genfstab -U /mnt &amp;gt;&amp;gt; /mnt/etc/fstab&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔑 Log to the Newly Installed Arch
&lt;/h2&gt;

&lt;p&gt;Do &lt;code&gt;arch-chroot /mnt&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Set the Timezone
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;here the region and city is in the &lt;code&gt;/usr/share/zoneinfo&lt;/code&gt; file&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;do &lt;code&gt;ln -sf /usr/share/zoneinfo/_Region_/_City_ /etc/localtime&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and generate /etc/adjtime with &lt;code&gt;hwclock --systohc&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🏴‍☠️ Set the Locale
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;you need to install nano if you want to use it&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Edit the locale.gen file &lt;code&gt;nano /etc/locale.gen&lt;/code&gt;, and uncomment the good option for you.&lt;/p&gt;

&lt;p&gt;For example &lt;code&gt;en_US.UTF-8 UTF-8&lt;/code&gt; for the generic qwerty.&lt;/p&gt;

&lt;p&gt;And generate the local with &lt;code&gt;locale-gen&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Add the following line to /etc/locale.conf : &lt;code&gt;LANG=en_US.UTF-8&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  👽 Set the Hostname and the Host
&lt;/h2&gt;

&lt;p&gt;Just add the wanted hostname in &lt;code&gt;/etc/hostname&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For the host open /etc/hosts and add the following line :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;127.0.0.1 localhost
::1       localhost
127.0.1.1 [your-hostname].localdomain [your-hostname]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🤓 Create the User
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;set the password the root password with &lt;code&gt;passwd&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;create a user with &lt;code&gt;useradd -m username&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;set the password of the new user &lt;code&gt;passwd username&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;set the group for the user &lt;code&gt;usermod -aG wheel,audio,video,optical,storage username&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🎛 Install Sudo and Authorize the User to Use Wheel Group
&lt;/h2&gt;

&lt;p&gt;install with &lt;code&gt;pacman -S sudo&lt;/code&gt; and open visudo with &lt;code&gt;EDITOR=nano visudo&lt;/code&gt; and uncomment the &lt;code&gt;%whell ALL=(ALL) ALL&lt;/code&gt; line.&lt;/p&gt;

&lt;p&gt;Here we use nano but if you want to use vi remove &lt;code&gt;EDITOR=nano&lt;/code&gt;, if you don’t want nano nor vi replace nano with your loved one&lt;/p&gt;

&lt;h2&gt;
  
  
  📟 Install Grub and Basic Package
&lt;/h2&gt;

&lt;p&gt;just do &lt;code&gt;pacman -S grub efibootmgr dosfstools os-prober mtools&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🎬 Make the EFI Directory and Mount It
&lt;/h2&gt;

&lt;p&gt;Do &lt;code&gt;mkdir /boot/EFI&lt;/code&gt; and &lt;code&gt;mount /dev/[your efi partition] /boot/EFI&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🪃 Init grub
&lt;/h2&gt;

&lt;p&gt;install grub (for efi) with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;create the config &lt;code&gt;grub-mkconfig -o /boot/grub/grub.cfg&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 The Other Stuff (Networking, etc...)
&lt;/h2&gt;

&lt;p&gt;Here we install the networkmanager package, because after the final reboot the iwd package will no longer be available.&lt;/p&gt;

&lt;p&gt;We install git too.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pacman -S networkmanager git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enable network manager with &lt;code&gt;systemctl enable NetworkManager&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ♻️ Reboot
&lt;/h2&gt;

&lt;p&gt;Before reboot exit and unmount :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;exit
umount -R /mnt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And reboot !&lt;/p&gt;

&lt;h2&gt;
  
  
  📡 Reconnect WiFi after the Login
&lt;/h2&gt;

&lt;p&gt;If the ping command failed after the installation you need to relogin to your wifi.&lt;/p&gt;

&lt;p&gt;For that we use the previously installed &lt;code&gt;nmcli&lt;/code&gt; package.&lt;/p&gt;

&lt;p&gt;Check if the radio is on with &lt;code&gt;nmcli radio wifi&lt;/code&gt;, if not open up with &lt;code&gt;nmcli radio wifi on&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Check the wifi point with &lt;code&gt;nmcli dev wifi list&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Check your device with &lt;code&gt;nmcli dev status&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;And connect with &lt;code&gt;sudo nmcli dev wifi connect [network-ssid] password [network-password]&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you want to look all the saved connection do &lt;code&gt;nmcli con show&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  📽️ Video Driver
&lt;/h2&gt;

&lt;p&gt;For nvidia do &lt;code&gt;pacman -S nvidia nvidia-settings nvidia-utils&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For other check the wiki&lt;/p&gt;

&lt;h2&gt;
  
  
  🎞️ Xorg Server
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Actually we use xorg but if you want another display server check the wiki&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Install with &lt;code&gt;xorg-server&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If needed install &lt;code&gt;xorg-apps&lt;/code&gt; check the wiki to know if you need it.&lt;/p&gt;

&lt;p&gt;It usefull to install xmessage too &lt;code&gt;pacman -S xorg-xmessage&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pacman -S xorg-xmessage xorg-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🧮 Base Devel for Makepkg
&lt;/h2&gt;

&lt;p&gt;Mandatory for the use of the AUR package via &lt;code&gt;paru&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Just do a &lt;code&gt;pacman -S --needed base-devel&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🍱 The Essential Package
&lt;/h2&gt;

&lt;p&gt;List of, my, essential package to have on a fresh install :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unzip &lt;code&gt;pacman -S unzip&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;nerd font &lt;strong&gt;Warning: This is a large size repo&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;clone the repo &lt;a href="https://github.com/ryanoasis/nerd-fonts.git" rel="noopener noreferrer"&gt;https://github.com/ryanoasis/nerd-fonts.git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;run ./install.sh for installing all the font&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;bluetooth &lt;code&gt;pacman -S bluez-utils&lt;/code&gt;
&lt;/li&gt;

&lt;li&gt;paru (for easy gestion of the aur package)

&lt;ul&gt;
&lt;li&gt;clone &lt;a href="https://aur.archlinux.org/paru.git" rel="noopener noreferrer"&gt;https://aur.archlinux.org/paru.git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;cd into the repo&lt;/li&gt;
&lt;li&gt;build it &lt;code&gt;makepkg -si&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔏 Activate the Num Lock
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;This method is good because is activate the numlock in the early bootup stage, usefull for the psw prompt in the full-disk encryption for example.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Install the &lt;code&gt;mkinitcpio-numlock&lt;/code&gt; AUR package.&lt;/p&gt;

&lt;p&gt;Add numlock in the HOOKS line (before encrypt if present) in &lt;code&gt;/etc/mkinitcpio.conf&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Usually between modconf and block&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⁉️ And Now What?
&lt;/h2&gt;

&lt;p&gt;Now you have Arch and the minimum for booting correctly.&lt;/p&gt;

&lt;p&gt;All you have to do is install the window manager or the desktop environment you want!&lt;/p&gt;

&lt;p&gt;Check the wiki page for information.&lt;/p&gt;

&lt;p&gt;For example, if you want KDE :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pacman -S plasma kde-applications
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want some tutorial stuff for XMonad I'm writing a story in a few days, wait for the update!&lt;/p&gt;

&lt;p&gt;Happy arching mate 🖖&lt;/p&gt;




&lt;p&gt;&lt;a href="https://www.buymeacoffee.com/a2nb" rel="noopener noreferrer"&gt;If you found this content useful, feel free to support me&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>archlinux</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
