<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on home</title>
		<link>https://paulcosma.com/posts/</link>
		<description>Recent content in Posts on home</description>
		<generator>Hugo -- gohugo.io</generator>
		<language>en-us</language>
		<copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright>
		<lastBuildDate>Sun, 02 Apr 2023 21:33:11 +0300</lastBuildDate>
		<atom:link href="https://paulcosma.com/posts/index.xml" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Arch Desktop</title>
			<link>https://paulcosma.com/posts/arch-desktop/</link>
			<pubDate>Sun, 02 Apr 2023 21:33:11 +0300</pubDate>
			
			<guid>https://paulcosma.com/posts/arch-desktop/</guid>
			<description>Desktop environment Prerequisites If you did not install a GUI interface before reboot you can Use nmtui-connect to establish the internet and begin installing packages.
Install a graphical desktop environment and video driver.
Xorg is the standard for window management (look for Wayland in the future)
# this will allow to install a desktop environment pacman -S xorg-server # Driver installation https://wiki.archlinux.org/title/Xorg # install video driver depending on hardware that you have # First, identify the graphics card (the Subsystem output shows the specific model): lspci -v | grep -A1 -e VGA -e 3D # Then, install an appropriate driver.</description>
			<content type="html"><![CDATA[<h1 id="desktop-environment">Desktop environment</h1>
<h2 id="prerequisites">Prerequisites</h2>
<p>If you did not install a GUI interface before reboot you can Use nmtui-connect to establish the internet and begin installing packages.<!-- raw HTML omitted --></p>
<p>Install a graphical desktop environment and video driver.<!-- raw HTML omitted --></p>
<blockquote>
<p>Xorg is the standard for window management (look for Wayland in the future)</p>
</blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># this will allow to install a desktop environment</span>
</span></span><span class="line"><span class="cl">pacman -S xorg-server
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Driver installation https://wiki.archlinux.org/title/Xorg</span>
</span></span><span class="line"><span class="cl"><span class="c1"># install video driver depending on hardware that you have</span>
</span></span><span class="line"><span class="cl"><span class="c1"># First, identify the graphics card (the Subsystem output shows the specific model):</span>
</span></span><span class="line"><span class="cl">lspci -v <span class="p">|</span> grep -A1 -e VGA -e 3D
</span></span><span class="line"><span class="cl"><span class="c1"># Then, install an appropriate driver. You can search the package database for a complete list of open-source video drivers:</span>
</span></span><span class="line"><span class="cl">pacman -Ss xf86-video
</span></span><span class="line"><span class="cl"><span class="c1"># amd</span>
</span></span><span class="line"><span class="cl">pacman -S xf86-video-amdgpu
</span></span><span class="line"><span class="cl"><span class="c1"># intel</span>
</span></span><span class="line"><span class="cl">pacman -S xf86-video-intel
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">pacman -S mesa <span class="c1"># for intel or amd gpu</span>
</span></span><span class="line"><span class="cl">pacman -S nvidia <span class="c1"># if you have nvidia gpu if you installed the &#34;linux&#34; kernel</span>
</span></span><span class="line"><span class="cl">pacman -S nvidia-lts <span class="c1"># if you have nvidia gpu if you installed the &#34;linux-lts&#34; kernel. OR both if you have installed both linux kernels.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">pacman -S xf86-input-synaptics  <span class="c1"># Synaptics driver for notebook touchpads</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># For virtual box only</span>
</span></span><span class="line"><span class="cl">pacman -S virtualbox-guest-utils xf86-video-vmware
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> vboxservice
</span></span></code></pre></div><p>Now choose your preferred Desktop</p>
<h2 id="gnome">GNOME</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pacman -S gnome
</span></span><span class="line"><span class="cl">pacman -S gnome-tweaks
</span></span></code></pre></div><p>Enable display manager</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">systemctl <span class="nb">enable</span> gdm <span class="c1"># enable the login screen to appear</span>
</span></span></code></pre></div><p>Set language if the terminal does not open.<!-- raw HTML omitted --></p>
<ul>
<li>Region-Language - if Unspecified select a language and restart</li>
</ul>
<h2 id="plasma">Plasma</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pacman -S plasma-meta kde-applications
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> sddm
</span></span></code></pre></div><h2 id="xfce">Xfce</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pacman -S xfce4 xfce4-goodies
</span></span><span class="line"><span class="cl">pacman -S lightdm lightdm-gtk-greeter <span class="c1"># install the display manager</span>
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> lightdm
</span></span></code></pre></div><h2 id="mate">MATE</h2>
<h2 id="kde--wayland">KDE + Wayland</h2>
<p>This is my choice.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Installing KDE Plasma desktop. </span>
</span></span><span class="line"><span class="cl"><span class="c1"># https://wiki.archlinux.org/title/KDE#Plasma</span>
</span></span><span class="line"><span class="cl"><span class="c1"># A. the lightest version</span>
</span></span><span class="line"><span class="cl">pacman -S xorg plasma-meta plasma-wayland-session
</span></span><span class="line"><span class="cl"><span class="c1"># B. light version instead of “kde-applications-meta” add</span>
</span></span><span class="line"><span class="cl"><span class="c1">#pacman -S xorg plasma-meta plasma-wayland-session kde-utilities-meta kde-accessibility-meta</span>
</span></span><span class="line"><span class="cl"><span class="c1"># C. full version</span>
</span></span><span class="line"><span class="cl"><span class="c1">#pacman -S xorg plasma-meta plasma-wayland-session kde-applications-meta</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># other tools if you want to install https://archlinux.org/groups/</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Xorg group</span>
</span></span><span class="line"><span class="cl"><span class="c1"># KDE Plasma Desktop Environment</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Wayland session for KDE Plasma</span>
</span></span><span class="line"><span class="cl"><span class="c1"># KDE applications group (consists of KDE specific applications including the Dolphin manager and other useful apps)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Enable the Display Manager and Network Manager services:</span>
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> sddm.service
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> NetworkManager.service
</span></span></code></pre></div><h1 id="desktop-software">Desktop software</h1>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pacman -S bluez bluez-utils pipewire wget firefox neofetch
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> bluetooth.service
</span></span><span class="line"><span class="cl">systemctl start bluetooth.service
</span></span></code></pre></div><h1 id="pacman">Pacman</h1>
<p>Pacman is Arch package manager.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pacman --help
</span></span><span class="line"><span class="cl">pacman -S --help
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pacman -Ss <span class="c1"># search for packages</span>
</span></span><span class="line"><span class="cl">pacman -Sy <span class="c1"># update all packages</span>
</span></span><span class="line"><span class="cl">pacman -Syu <span class="c1"># sysupgrade full system upgrade</span>
</span></span><span class="line"><span class="cl">pacman -Rs &lt;package-name&gt;  <span class="c1"># remove app from system</span>
</span></span></code></pre></div><h2 id="aur">AUR</h2>
<p>Arch User repositories<br>
Install AUR packages with multiple install methods.</p>
<ul>
<li>Clone repository of the package and look for PKGBUILD file.<br>
<a href="https://github.com/aur-archive">https://github.com/aur-archive</a></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">makepkg --help
</span></span><span class="line"><span class="cl">makepkg -și
</span></span><span class="line"><span class="cl">pacman -U package_file
</span></span></code></pre></div><ul>
<li>Aur helper extends pacman functionality</li>
</ul>
<h2 id="yay">YAY</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install YAY</span>
</span></span><span class="line"><span class="cl">su paul
</span></span><span class="line"><span class="cl">sudo pacman -S --needed git base-devel
</span></span><span class="line"><span class="cl">mkdir -p ~/.apps/ 
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> ~/.apps/
</span></span><span class="line"><span class="cl">git clone https://aur.archlinux.org/yay.git
</span></span><span class="line"><span class="cl"><span class="c1"># id # to find the user and groups.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># sudo chown -R paul:users ./yay</span>
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> yay
</span></span><span class="line"><span class="cl">makepkg -si
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install a package</span>
</span></span><span class="line"><span class="cl">yay -S &lt;package-name&gt;
</span></span><span class="line"><span class="cl"><span class="c1"># Upgrade all the packages on your system</span>
</span></span><span class="line"><span class="cl">yay -Syu
</span></span><span class="line"><span class="cl"><span class="c1"># Remove a package using</span>
</span></span><span class="line"><span class="cl">yay -Rns &lt;package-name&gt;
</span></span></code></pre></div><h3 id="programs-and-tools-installed">Programs and tools installed</h3>
<p>AUR Apps</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">yay -S sublime-text-4
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># OR</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Download tarball from https://www.sublimetext.com/download</span>
</span></span><span class="line"><span class="cl">mkdir -p ~/Apps
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> ~/Apps
</span></span><span class="line"><span class="cl">wget https://download.sublimetext.com/sublime_text_build_4126_x64.tar.xz
</span></span><span class="line"><span class="cl">tar -xvf sublime_text_build_4126_x64.tar.xz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> sublime_text
</span></span><span class="line"><span class="cl">sed -i.bak <span class="s2">&#34;s/\/opt/\/home\/paul\/Apps/g&#34;</span> sublime_text.desktop
</span></span><span class="line"><span class="cl">cp sublime_text.desktop /usr/share/applications/
</span></span></code></pre></div><h1 id="resources">Resources</h1>
<p><a href="https://octetz.com/docs/2020/2020-2-16-arch-windows-install/">https://octetz.com/docs/2020/2020-2-16-arch-windows-install/</a><br>
<a href="https://github.com/joshrosso/linux-desktop">https://github.com/joshrosso/linux-desktop</a><br>
<a href="https://www.learnlinux.tv/arch-linux-full-installation-guide/">https://www.learnlinux.tv/arch-linux-full-installation-guide/</a></p>
]]></content>
		</item>
		
		<item>
			<title>Linux Dual Boot Workstation Setup</title>
			<link>https://paulcosma.com/posts/linux-workstation/</link>
			<pubDate>Thu, 23 Mar 2023 21:28:46 +0200</pubDate>
			
			<guid>https://paulcosma.com/posts/linux-workstation/</guid>
			<description>This is a Arch linux installation guide with multiple options.
Have a look at the table of content.
The setup that I am currenylt using is a Dual Boot Arch Linux and Windows 11 each with it&amp;rsquo;s own encryption.
Laptop My old laptop needed a replacement as it was 8-9 years old.
I decided to buy a TUXEDO InfinityBook Pro 16 - Gen7 - Workstation Edition.
Specs:
Display | 2560 x 1600 | 16:10 | 90Hz Intel Iris Xe Graphics G7 (96EUs) | Black casing Intel Core i7-12700H (max.</description>
			<content type="html"><![CDATA[<p>This is a Arch linux installation guide with multiple options.<br>
Have a look at the table of content.</p>
<p>The setup that I am currenylt using is a Dual Boot Arch Linux and Windows 11 each with it&rsquo;s own encryption.</p>
<h1 id="laptop">Laptop</h1>
<p>My old laptop needed a replacement as it was 8-9 years old.<br>
I decided to buy a TUXEDO InfinityBook Pro 16 - Gen7 - Workstation Edition.</p>
<p>Specs:</p>
<ul>
<li>Display | 2560 x 1600 | 16:10 | 90Hz</li>
<li>Intel Iris Xe Graphics G7 (96EUs) | Black casing</li>
<li>Intel Core i7-12700H (max. 4.70GHz 14-Cores, 20 Threads, 24MB Cache, 45W TDP)</li>
<li>2 x 32 GB (1x 32GB) 3200MHz CL22 Samsung</li>
<li>1 TB Samsung 980 PRO (NVMe PCIe 4.0)</li>
<li>500 GB Samsung 980 (NVMe PCIe 3.0)</li>
<li>Keyboard layout ENGLISH US ISO (EN-US international)</li>
<li>Intel Wi-Fi 6 AX200 Series (802.11ax | 2,4 &amp; 5 GHz | Bluetooth 5.2)</li>
</ul>
<p>I will run Arch Linux on the 1TB drive as primary OS and Win11 on the second disk.<!-- raw HTML omitted --></p>
<p>Probably you are asking yourself &ldquo;why on earth to install windows on a laptop specially build for linux?&rdquo;. I have no excuse, this is blasphemy.</p>
<h1 id="installation-guide">Installation guide</h1>
<p><a href="https://wiki.archlinux.org/title/installation_guide">https://wiki.archlinux.org/title/installation_guide</a></p>
<h2 id="bios-setup">Bios setup</h2>
<p>Bios configuration</p>
<ul>
<li>Disable Secure Boot</li>
</ul>
<blockquote>
<p>You will need to <strong>disable Secure Boot</strong> to boot the installation medium. If desired, <strong>Secure Boot</strong> can be set up after completing the installation.</p>
</blockquote>
<ul>
<li>Set Boot Mode to UEFI Only</li>
</ul>
<blockquote>
<p>The installation image uses <strong>systemd-boot</strong> for booting in UEFI mode and <strong>syslinux</strong> for booting in BIOS mode.</p>
</blockquote>
<h2 id="setting-up-bootable-media">Setting up bootable media</h2>
<p>Choose option A or B.</p>
<h3 id="a-bootable-usb-stick-with-ventoy">(A) Bootable USB stick with Ventoy</h3>
<p><a href="https://www.ventoy.net/en/doc_start.html">Ventoy</a> will allow you to have one USB with multiple iso files.<!-- raw HTML omitted --><br>
<a href="https://github.com/ventoy/Ventoy/releases">Ventoy releases</a></p>
<ul>
<li>Install Ventoy</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /tmp
</span></span><span class="line"><span class="cl">wget https://github.com/ventoy/Ventoy/releases/download/v1.0.90/ventoy-1.0.90-linux.tar.gz
</span></span><span class="line"><span class="cl">tar -xzvf ventoy-1.0.90-linux.tar.gz
</span></span><span class="line"><span class="cl">lsblk
</span></span><span class="line"><span class="cl"><span class="c1"># get your disk and replace bellow. /dev/sde in my case.</span>
</span></span><span class="line"><span class="cl">sudo sh ventoy-1.0.90/Ventoy2Disk.sh -i -s /dev/sde
</span></span><span class="line"><span class="cl"><span class="c1"># or to upgrade</span>
</span></span><span class="line"><span class="cl">sudo sh ventoy-1.0.90/Ventoy2Disk.sh -u -s /dev/sde
</span></span><span class="line"><span class="cl"><span class="c1"># Or install using gui-mode</span>
</span></span><span class="line"><span class="cl">./VentoyGUI.x86_64
</span></span></code></pre></div><ul>
<li>Add Windows and Arch Linux images</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mount /dev/sde1 /media/usb
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /media/usb
</span></span><span class="line"><span class="cl">wget http://mirrors.chroot.ro/archlinux/iso/2023.03.01/archlinux-2023.03.01-x86_64.iso
</span></span><span class="line"><span class="cl">cp  /home/paul/Downloads/Win11_22H2_EnglishInternational_x64v1.iso /media/usb
</span></span></code></pre></div><h4 id="b-create-separate-bootable-disks">(B) Create separate bootable disks</h4>
<blockquote>
<p>If you do not want to use Ventoy you can create two bootable disks:</p>
</blockquote>
<ul>
<li>Windows</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Format USB to FAT32 using the Disks utility in Ubuntu.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Get the usb disk. /dev/sde in my case.</span>
</span></span><span class="line"><span class="cl">lsblk
</span></span><span class="line"><span class="cl">sudo dd <span class="nv">bs</span><span class="o">=</span>4M <span class="k">if</span><span class="o">=</span>/home/paul/Downloads/Win11_22H2_EnglishInternational_x64v1.iso <span class="nv">of</span><span class="o">=</span>/dev/sde <span class="nv">conv</span><span class="o">=</span>fdatasync <span class="nv">status</span><span class="o">=</span>progress
</span></span></code></pre></div><ul>
<li>Arch Linux</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Get .iso image.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Insert a USB drive </span>
</span></span><span class="line"><span class="cl"><span class="c1"># List block devices and determine the device name. (usb will be something like /dev/sde)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># lsblk</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Create a bootable flash drive from that image (https://bztsrc.gitlab.io/usbimager/).</span>
</span></span><span class="line"><span class="cl"><span class="c1"># or Write the ISO to the device using dd.</span>
</span></span><span class="line"><span class="cl">dd <span class="nv">bs</span><span class="o">=</span>4M <span class="k">if</span><span class="o">=</span>/home/paul/Downloads/archlinux.iso <span class="nv">of</span><span class="o">=</span>/dev/sde <span class="nv">status</span><span class="o">=</span>progress <span class="nv">oflag</span><span class="o">=</span>sync
</span></span><span class="line"><span class="cl"><span class="c1"># dd: copies and converts a file based on arguments.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># bs: amount of bytes to write at a time.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># if: specify a file to read rather than stdin.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># of: specify a file to write to rather than stdout.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># status: level to log to stderr; progress shows periodic transfer stats.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># oflag: set to sync synchronizes I/O for data and metadata.</span>
</span></span></code></pre></div><h1 id="installing-os">Installing OS</h1>
<h2 id="windows-installation">Windows Installation</h2>
<p>Start with Windows Pro install if you want to have dual boot.<!-- raw HTML omitted --><br>
<em>Starting with windows as this phase some options on how the partition layout goes and the partition layout it put in place can be used so we build the linux on it</em>.<!-- raw HTML omitted --><br>
Installing Windows first allows <strong>reuse</strong> of the Windows-created <strong>EFI partition</strong> (bootloader).<!-- raw HTML omitted --><br>
The Windows partition will be <strong>encrypted</strong> with <strong>Bitlocker</strong>. You can also try other tools like VeraCrypt.</p>
<p>Ventoy</p>
<ul>
<li>Insert USB disk into laptop and start</li>
<li>Select Windows iso from Ventoy</li>
<li>Select &ldquo;normal boot&rdquo;</li>
<li>Select Windows 11 Pro if you want encryption with Bitlocker</li>
</ul>
<p>When installing Windows</p>
<ul>
<li>Click Customised: Install Windows only (advanced).</li>
<li>Delete all existing partitions.</li>
<li>Create a new partition of the size you&rsquo;d like Windows to occupy.</li>
<li>Go through setup and select I don&rsquo;t have internet <em>(also select No as much as possible :))</em></li>
<li>Bypass Windows 11 internet setup requirements and create a local account</li>
<li>On the “Oops, you&rsquo;ve lost internet connection” or “Let&rsquo;s connect you to a network” page, use the Shift + F10 keyboard shortcut.</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># In Command Prompt, type the following command to bypass network requirements</span>
</span></span><span class="line"><span class="cl">OOBE<span class="se">\B</span>YPASSNRO
</span></span><span class="line"><span class="cl"><span class="c1"># then press Enter</span>
</span></span></code></pre></div><ul>
<li>After reboot, go through the Windows setup procedure.</li>
<li>Download and Install drivers from <a href="https://mytuxedo.de/index.php/s/ZeB8FTf8CrpEtJr?path=%2FInfinityBook_Pro_Series%2FInfinityBook_Pro_16_Gen7">Tuxedo</a> <em>(start with wifi and bluetooth drivers so you can use your mouse)</em></li>
<li>Open Control Panel.</li>
<li>In the top right search, enter power.</li>
<li>Click Change what the power buttons do/Change what closing the lid does.</li>
<li>Click Change settings that are currently unavailable.</li>
<li><strong>Uncheck Turn on fast startup</strong> (recommended).</li>
<li>Open Start &gt; Settings &gt; Update &amp; Security and Check for updates.</li>
<li>Download and install all Windows updates.</li>
<li>Reboot</li>
<li><strong>Encrypt disk</strong> with Bitlocker (or Veracrypt).</li>
<li>Open Manage Bitlocker -&gt; Turn Bitlocker on -&gt; Save key -&gt; Encrypt entire drive</li>
<li>Store your key in a safe place</li>
</ul>
<h2 id="arch-install">Arch Install</h2>
<p>Official guide for <a href="https://wiki.archlinux.org/title/installation_guide">installing Arch Linux</a></p>
<h3 id="boot-into-arch-installer">Boot into arch installer</h3>
<ul>
<li>Insert Ventory USB with arch linux into laptop and restart</li>
<li>Press the key to activate the Boot Menu F7 (F9/F12 on other laptops) when the system starts.</li>
<li>Select arch and boot in normal mode</li>
</ul>
<h3 id="verify-internet-connection">Verify internet connection</h3>
<ul>
<li>Verify internet connection<!-- raw HTML omitted --></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># see if you have any ip assigned</span>
</span></span><span class="line"><span class="cl">ip addr show
</span></span><span class="line"><span class="cl"><span class="c1">#for wifi interface</span>
</span></span><span class="line"><span class="cl">iwctl <span class="c1"># promt have changed to iwd</span>
</span></span><span class="line"><span class="cl">device list <span class="c1"># list all available wireless devices</span>
</span></span><span class="line"><span class="cl"><span class="c1"># if device is powered off and no device is displayed</span>
</span></span><span class="line"><span class="cl"><span class="c1"># I&#39;ve solved it by blacklisting hp_wmi. Do this as root:</span>
</span></span><span class="line"><span class="cl">$ <span class="nb">echo</span> <span class="s2">&#34;blacklist hp_wmi&#34;</span> &gt; /etc/modprobe.d/hp.conf
</span></span><span class="line"><span class="cl"><span class="c1"># Reboot, then unblock all WiFi with (as root):</span>
</span></span><span class="line"><span class="cl">$ rfkill unblock all
</span></span><span class="line"><span class="cl"><span class="c1"># scan local area and find wifi access points that we can connect to</span>
</span></span><span class="line"><span class="cl"><span class="c1"># station &lt;wireless-device-name/wlan0&gt; scan </span>
</span></span><span class="line"><span class="cl">station wlan0 scan
</span></span><span class="line"><span class="cl"><span class="c1"># scan is initiated but it will not show the results</span>
</span></span><span class="line"><span class="cl">station wlan0 get-networks <span class="c1"># get list of wifi networks found</span>
</span></span><span class="line"><span class="cl">station wlan0  connect <span class="s2">&#34;CXP5&#34;</span> <span class="c1"># connect to wireless network of choice</span>
</span></span><span class="line"><span class="cl"><span class="c1"># exit the iwd prompt after some time (ctrl+d)</span>
</span></span><span class="line"><span class="cl">ctrl+d
</span></span><span class="line"><span class="cl">ip a s
</span></span><span class="line"><span class="cl">ping -c3 8.8.8.8
</span></span><span class="line"><span class="cl">ping -c3 google.com
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># another option is to use “wifi-connect”</span>
</span></span></code></pre></div><ul>
<li>After the steps above, I always <strong>start sshd</strong> <em>(included in the archiso)</em> and <strong>finish the installation process from another computer</strong>.<!-- raw HTML omitted --><br>
This enables me to have access to copy and paste, editors, and browsers rather than the restricted terminal on my target machine.<br>
This is optional, but the steps below may make your experience better.<!-- raw HTML omitted --></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1">#Set a root passwd for archiso.</span>
</span></span><span class="line"><span class="cl">passwd
</span></span><span class="line"><span class="cl"><span class="c1">#Enable sshd.</span>
</span></span><span class="line"><span class="cl">systemctl start sshd
</span></span><span class="line"><span class="cl"><span class="c1">#Determine your local address using ip a.</span>
</span></span><span class="line"><span class="cl">ip a s
</span></span><span class="line"><span class="cl"><span class="c1"># From another machine, ssh in.</span>
</span></span><span class="line"><span class="cl">ssh root@<span class="si">${</span><span class="nv">TARGET_MACHINE_IP</span><span class="si">}</span>
</span></span></code></pre></div><h3 id="update-the-system-clock">Update the system clock</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">timedatectl set-ntp <span class="nb">true</span>
</span></span></code></pre></div><h2 id="disk-layout">Disk Layout</h2>
<p>Before installing Arch it is a good ideea to read more about <a href="https://wiki.archlinux.org/title/Arch_boot_process">Arch boot process</a> to better understand the disk layout options.<!-- raw HTML omitted --></p>
<p>There are multiple options that I will list here but I will provide details for the setups that I&rsquo;ve tried on different laptops.<!-- raw HTML omitted --><br>
<strong>Choose A,B,C,D or E based on your desired setup.<!-- raw HTML omitted --></strong></p>
<p>On this laptop I have two disks and I can have each OS on it&rsquo;s own disk. When laptop starts I use F7 boot menu key to choose between Windows and Linux Disk.<!-- raw HTML omitted --><br>
In Bios I&rsquo;ve changed the &ldquo;UEFI NVME Drive BBS Priorities to the linux disk.&rdquo;<br>
I will then create on arch a grub config that will recognize the encrypted windows partition. This setup with grub is also handy if you have just one disk.<!-- raw HTML omitted --></p>
<h3 id="a-non-uefi">(A) Non-UEFI</h3>
<h3 id="b-uefi">(B) UEFI</h3>
<h3 id="c-uefi-with-encryption">(C) UEFI with Encryption</h3>
<p>You need UEFI enabled in your BIOS (enable uefi will wipe out your disk).</p>
<h4 id="--create-partition-tables">- Create partition tables.</h4>
<p>3 partitions are created:</p>
<ul>
<li><strong>EFI</strong></li>
<li><strong>boot</strong></li>
<li><strong>root</strong></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Get the harddisk name and get device identifier. e.g.: /dev/nvme1n1</span>
</span></span><span class="line"><span class="cl">fdisk -l
</span></span><span class="line"><span class="cl"><span class="c1"># Start creating partitions</span>
</span></span><span class="line"><span class="cl">fdisk /dev/nvme1n1 <span class="c1"># </span>
</span></span><span class="line"><span class="cl">p <span class="c1"># list all the partitions that you have</span>
</span></span><span class="line"><span class="cl">g <span class="c1"># create a fresh partition layout. Will create a new GPT partition layout (this is needed on a single boot, fresh install)</span>
</span></span></code></pre></div><ul>
<li>Create first partition <strong>(UEFI partition)</strong></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">n <span class="c1"># create a new partition (UEFI partition)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># set partition number: 1</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept the default sector</span>
</span></span><span class="line"><span class="cl">+500M <span class="c1"># last sector set: +500M</span>
</span></span><span class="line"><span class="cl">t <span class="c1"># set type of partition</span>
</span></span><span class="line"><span class="cl"><span class="c1"># select partition type: 1 (for EFI system)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Changed type of partition &#39;Linux filesystem&#39; to &#39;EFI System&#39; will be displayed</span>
</span></span></code></pre></div><ul>
<li>Create a second partition <strong>(boot partition)</strong></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Create a second partition (boot partition)</span>
</span></span><span class="line"><span class="cl">n <span class="c1"># create partition</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default partition number: 2</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default first sector</span>
</span></span><span class="line"><span class="cl">+512M <span class="c1"># last sector set: +512M</span>
</span></span><span class="line"><span class="cl">p <span class="c1"># list all the partitions that you have</span>
</span></span></code></pre></div><ul>
<li>Create the 3rd partition <strong>(root partition)</strong></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Create the 3rd partition (root partition)</span>
</span></span><span class="line"><span class="cl">n <span class="c1"># crete the LVM partition</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default partition number:3</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default first sector</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default last sector to use all remaining disk</span>
</span></span><span class="line"><span class="cl">t <span class="c1"># set type of partition</span>
</span></span><span class="line"><span class="cl"><span class="c1"># set 3 for partition number</span>
</span></span><span class="line"><span class="cl"><span class="c1"># change partition type to 43 for LVM (type L to list all partitions types as the number for LVM might change)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Changed type of partition &#39;Linux filesystem&#39; to &#39;Linux LVM&#39;. is displayed</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">p <span class="c1"># review partitions. 1st is efi system, 2nd = linux filesystem type 3 = lvm</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">w <span class="c1"># save changes</span>
</span></span></code></pre></div><h4 id="--format-the-partitions">- Format the partitions.</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkfs.fat -F32 /dev/nvme1n1p1 <span class="c1"># set FAT32 partition (EFI partition)</span>
</span></span><span class="line"><span class="cl">mkfs.ext4 /dev/nvme1n1p2 <span class="c1"># ext4 for 2nd partition (Boot partition)</span>
</span></span></code></pre></div><h4 id="--encrypt-the-3rd-partition-and-setup-lvm">- Encrypt the 3rd partition and Setup LVM</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># encrypt partition</span>
</span></span><span class="line"><span class="cl">cryptsetup -y --use-random luksFormat /dev/nvme1n1p3
</span></span><span class="line"><span class="cl"><span class="c1"># -y: interactively requests the passphrase twice.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># --use-random: uses /dev/random to produce keys.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># luksFormat: initializes a LUKS partition.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># unlock partition</span>
</span></span><span class="line"><span class="cl">cryptsetup open --type luks /dev/nvme1n1p3 lvm <span class="c1"># # we call it &#34;lvm&#34;. Opens the LUKS device and creates a mapping in /dev/mapper</span>
</span></span><span class="line"><span class="cl"><span class="c1"># not that is open. lsblk command should display it as a sub mapper directory. Next command are going to be executed against the mapper.</span>
</span></span><span class="line"><span class="cl">pvcreate --dataalignment 1m /dev/mapper/lvm <span class="c1"># create the physical volume</span>
</span></span><span class="line"><span class="cl">vgcreate vg00 /dev/mapper/lvm <span class="c1"># create a volume group = a namespace that will contain logical volumes</span>
</span></span><span class="line"><span class="cl"><span class="c1"># create two logical volumes (one for the root filesystem and another for home folder)</span>
</span></span><span class="line"><span class="cl">lvcreate -L 50GB vg00 -n lv_root
</span></span><span class="line"><span class="cl">lvcreate -l 100%FREE vg00 -n lv_home
</span></span><span class="line"><span class="cl"><span class="c1"># Activate LVM</span>
</span></span><span class="line"><span class="cl">modprobe dm_mod <span class="c1"># load the dm_mod kernel module into memory</span>
</span></span><span class="line"><span class="cl">vgscan <span class="c1"># scan for volume groups</span>
</span></span><span class="line"><span class="cl">vgchange -ay <span class="c1"># activate found volume group. will activate the logical volumes found in the volume group.</span>
</span></span></code></pre></div><blockquote>
<p>Output example</p>
</blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">root@archiso ~ <span class="c1"># lsblk</span>
</span></span><span class="line"><span class="cl">NAME               MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
</span></span><span class="line"><span class="cl">loop0                7:0    <span class="m">0</span> 688.5M  <span class="m">1</span> loop  /run/archiso/airootfs
</span></span><span class="line"><span class="cl">sda                  8:0    <span class="m">1</span>     0B  <span class="m">0</span> disk
</span></span><span class="line"><span class="cl">sdb                  8:16   <span class="m">1</span>  14.7G  <span class="m">0</span> disk
</span></span><span class="line"><span class="cl">├─sdb1               8:17   <span class="m">1</span>  14.6G  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">│ └─ventoy         254:0    <span class="m">0</span> 810.3M  <span class="m">1</span> dm
</span></span><span class="line"><span class="cl">└─sdb2               8:18   <span class="m">1</span>    32M  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">nvme1n1            259:0    <span class="m">0</span> 931.5G  <span class="m">0</span> disk
</span></span><span class="line"><span class="cl">├─nvme1n1p1        259:6    <span class="m">0</span>   500M  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">├─nvme1n1p2        259:7    <span class="m">0</span>   512M  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">└─nvme1n1p3        259:8    <span class="m">0</span> 930.5G  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">  └─lvm            254:1    <span class="m">0</span> 930.5G  <span class="m">0</span> crypt
</span></span><span class="line"><span class="cl">    ├─vg00-lv_root 254:2    <span class="m">0</span>    50G  <span class="m">0</span> lvm
</span></span><span class="line"><span class="cl">    └─vg00-lv_home 254:3    <span class="m">0</span> 880.5G  <span class="m">0</span> lvm
</span></span><span class="line"><span class="cl">nvme0n1            259:1    <span class="m">0</span> 465.8G  <span class="m">0</span> disk
</span></span><span class="line"><span class="cl">├─nvme0n1p1        259:2    <span class="m">0</span>   100M  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">├─nvme0n1p2        259:3    <span class="m">0</span>    16M  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">├─nvme0n1p3        259:4    <span class="m">0</span>   465G  <span class="m">0</span> part
</span></span><span class="line"><span class="cl">└─nvme0n1p4        259:5    <span class="m">0</span>   633M  <span class="m">0</span> part
</span></span></code></pre></div><h4 id="--format-the-logical-volumes-3rd-partition-the-root-partition">- Format the logical volumes (3rd partition, the root partition)</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Format root logical volume</span>
</span></span><span class="line"><span class="cl">mkfs.ext4 /dev/vg00/lv_root
</span></span><span class="line"><span class="cl"><span class="c1"># Format home logical volume</span>
</span></span><span class="line"><span class="cl">mkfs.ext4 /dev/vg00/lv_home
</span></span></code></pre></div><h4 id="--mount-the-volumes">- Mount the volumes</h4>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Mount the root logical volume</span>
</span></span><span class="line"><span class="cl">mount /dev/vg00/lv_root /mnt
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create directory for boot and mount the second partition</span>
</span></span><span class="line"><span class="cl">mkdir /mnt/boot
</span></span><span class="line"><span class="cl">mount /dev/nvme1n1p2 /mnt/boot
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create and mount home directory</span>
</span></span><span class="line"><span class="cl">mkdir /mnt/home
</span></span><span class="line"><span class="cl">mount /dev/vg00/lv_home /mnt/home
</span></span></code></pre></div><h3 id="d-dual-boot-windows10-and-arch-linux-both-with-separate-encryption---single-disk">(D) Dual boot (Windows10 and Arch linux both with separate encryption - single disk)</h3>
<p>Dual boot Arch and Windows both are fully encrypted independent of one another.<!-- raw HTML omitted --><br>
Grub the bootloader is used to select what system to boot into.<!-- raw HTML omitted --></p>
<h4 id="--create-partition-tables-1">- Create partition tables.</h4>
<p>3 partitions are created:</p>
<ul>
<li>EFI,</li>
<li>boot</li>
<li>root partition</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Get the harddisk name and get device identifier. e.g.: /dev/sda</span>
</span></span><span class="line"><span class="cl">lsblk
</span></span><span class="line"><span class="cl">fdisk -l
</span></span><span class="line"><span class="cl"><span class="c1"># Device         	Start   	End   Sectors  Size Type</span>
</span></span><span class="line"><span class="cl">/dev/nvme0n1p1  	2048	206847	<span class="m">204800</span>  100M EFI System
</span></span><span class="line"><span class="cl">/dev/nvme0n1p2	206848	<span class="m">239615</span> 	<span class="m">32768</span>   16M Microsoft reserved
</span></span><span class="line"><span class="cl">/dev/nvme0n1p3	<span class="m">239616</span> <span class="m">103843839</span> <span class="m">103604224</span> 49.4G Microsoft basic data
</span></span><span class="line"><span class="cl">/dev/nvme0n1p4 <span class="m">103843840</span> <span class="m">105095167</span>   <span class="m">1251328</span>  611M Windows recovery environment
</span></span><span class="line"><span class="cl"> 
</span></span><span class="line"><span class="cl"><span class="c1"># Start creating partitions</span>
</span></span><span class="line"><span class="cl">fdisk /dev/nvme0n1 <span class="c1"># </span>
</span></span><span class="line"><span class="cl">p <span class="c1"># list all the partitions that you have</span>
</span></span><span class="line"><span class="cl"><span class="c1"># We don’t create a fresh GPT partition layout. Will be building on top of the partition layout created by the Windows install.</span>
</span></span></code></pre></div><ul>
<li>
<p>Create first partition <strong>(UEFI partition)</strong><br>
<!-- raw HTML omitted --><br>
We are going to <em>reuse the Windows-created EFI partition</em>.<!-- raw HTML omitted --><br>
<em>Note</em> the <em>partition number</em> of the EFI System partition. This will be referenced later when configuring grub. In the result above, it is partition nvme0n1p1.</p>
</li>
<li>
<p>Create a second partition <strong>(boot partition)</strong></p>
</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">n <span class="c1"># create partition</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default partition number: 5</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default first sector</span>
</span></span><span class="line"><span class="cl">+512M <span class="c1"># last sector set: +512M</span>
</span></span><span class="line"><span class="cl">p <span class="c1"># list all the partitions that you have</span>
</span></span></code></pre></div><ul>
<li>Create the 3rd partition <strong>(root partition)</strong></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">n <span class="c1"># crete the LVM partition</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default partition number:6</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default first sector</span>
</span></span><span class="line"><span class="cl"><span class="c1"># accept default last sector to use all remaining disk</span>
</span></span><span class="line"><span class="cl">t <span class="c1"># set type of partition</span>
</span></span><span class="line"><span class="cl"><span class="c1"># select the partition number: 6</span>
</span></span><span class="line"><span class="cl"><span class="c1"># (type L to list all types)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># change partition type to 43 for “Linux LVM”</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">p <span class="c1"># review partitions. Type of partitions is: 1st is efi system, 2nd = linux filesystem and 3rd = linux lvm</span>
</span></span><span class="line"><span class="cl"><span class="c1"># /dev/nvme0n1p1  	2048	206847	204800   100M EFI System</span>
</span></span><span class="line"><span class="cl"><span class="c1"># /dev/nvme0n1p5 105095168 106143743   1048576   512M Linux filesystem</span>
</span></span><span class="line"><span class="cl"><span class="c1"># /dev/nvme0n1p6 106143744 500118158 393974415 187.9G Linux LVM</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">w <span class="c1"># save changes</span>
</span></span></code></pre></div><h4 id="--format-the-partitions-1">- Format the partitions.</h4>
<p><strong>EFI partition is already set by windows (fat32).</strong><!-- raw HTML omitted --></p>
<p>Only format the EFI system partition if you created it during the partitioning step.<!-- raw HTML omitted --><br>
If there already was an EFI system partition on disk beforehand, reformatting it can destroy the boot loaders of other installed operating systems.</p>
<p>Format the boot partition</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkfs.ext4 /dev/nvme0n1p5 <span class="c1"># ext4 for 2nd partition (Boot partition)</span>
</span></span></code></pre></div><h3 id="--encrypt-the-3rd-partition-root-partition-and-setup-lvm">- Encrypt the 3rd partition (root partition) and Setup LVM</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># encrypt partition</span>
</span></span><span class="line"><span class="cl">cryptsetup -y --use-random luksFormat /dev/nvme0n1p6
</span></span><span class="line"><span class="cl"><span class="c1"># -y: interactively requests the passphrase twice.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># --use-random: uses /dev/random to produce keys.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># luksFormat: initializes a LUKS partition.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># unlock partition</span>
</span></span><span class="line"><span class="cl">cryptsetup open --type luks /dev/nvme0n1p6 lvm <span class="c1"># we call it lvm or cryptlvm. Opens the LUKS device and creates a mapping in /dev/mapper</span>
</span></span><span class="line"><span class="cl">pvcreate --dataalignment 1m /dev/mapper/lvm <span class="c1"># create the physical volume</span>
</span></span><span class="line"><span class="cl">vgcreate vg00 /dev/mapper/lvm <span class="c1"># create a volume group = a namespace that will contain logical volumes</span>
</span></span><span class="line"><span class="cl"><span class="c1"># create two logical volumes (one for the root filesystem and another for home folder)</span>
</span></span><span class="line"><span class="cl">lvcreate -L 50GB vg00 -n lv_root
</span></span><span class="line"><span class="cl">lvcreate -l 100%FREE vg00 -n lv_home
</span></span><span class="line"><span class="cl"><span class="c1"># Activate LVM</span>
</span></span><span class="line"><span class="cl">modprobe dm_mod <span class="c1"># load the dm_mod kernel module into memory</span>
</span></span><span class="line"><span class="cl">vgscan <span class="c1"># scan for volume groups</span>
</span></span><span class="line"><span class="cl">vgchange -ay <span class="c1"># activate found volume group. will activate the logical volumes found in the volume group.</span>
</span></span></code></pre></div><h3 id="--format-the-logical-volumes-3rd-partition-the-root-partition-1">- Format the logical volumes (3rd partition, the root partition)</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Format root logical volume</span>
</span></span><span class="line"><span class="cl">mkfs.ext4 /dev/vg00/lv_root
</span></span><span class="line"><span class="cl"><span class="c1"># Format home logical volume</span>
</span></span><span class="line"><span class="cl">mkfs.ext4 /dev/vg00/lv_home
</span></span></code></pre></div><h4 id="--mount-the-volumes-1">- Mount the volumes</h4>
<p>Boot partition is separated from the root (optional step) and the reason is because we are going to set up initramfs. <!-- raw HTML omitted --><br>
You can put boot in root but we need to have boot completely unencrypted and the reason is when you log on into and bring up the grub menu you don’t have to put a password. You can choose windows or linux and then based on your choice it will take you to windows encryption or linux encryption.<!-- raw HTML omitted --></p>
<p><a href="https://wiki.archlinux.org/title/EFI_system_partition#Typical_mount_points">Other mount points</a>, such as /mnt/efi, are possible, provided that the used boot loader is capable of loading the kernel and initramfs images from the root volume. See the warning in <a href="https://wiki.archlinux.org/title/Arch_boot_process#Boot_loader">Arch boot process</a>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Mount the root logical volume to /mnt</span>
</span></span><span class="line"><span class="cl">mount /dev/vg00/lv_root /mnt
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create directory for boot (create a boot directory at root) and mount the second partition (mount the boot directory to the boot partition)</span>
</span></span><span class="line"><span class="cl">mkdir /mnt/boot
</span></span><span class="line"><span class="cl">mount /dev/nvme0n1p5 /mnt/boot
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create an efi directory in /mnt/boot and Mount the Window&#39;s created EFI partition to /mnt/boot/efi</span>
</span></span><span class="line"><span class="cl">mkdir /mnt/boot/efi
</span></span><span class="line"><span class="cl">mount /dev/nvme0n1p1 /mnt/boot/efi
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create and mount home directory</span>
</span></span><span class="line"><span class="cl">mkdir /mnt/home
</span></span><span class="line"><span class="cl">mount /dev/vg00/lv_home /mnt/home
</span></span></code></pre></div><h3 id="e-dual-boot-windows10-and-arch-linux-both-with-separate-encryption---separate-disks">(E) Dual boot (Windows10 and Arch linux both with separate encryption - separate disks)</h3>
<p>Follow steps from section <a href="###-(C)-UEFI-with-Encryption">(C) UEFI with Encryption</a></p>
<h2 id="installing-arch-linux">Installing Arch Linux</h2>
<ul>
<li>Select the mirrors<br>
Packages to be installed must be downloaded from <a href="https://archlinux.org/mirrorlist/all/https/">mirror servers</a></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">vim /etc/pacman.d/mirrorlist
</span></span><span class="line"><span class="cl"><span class="c1"># Move the geographically closest mirrors to the top of the list and uncomment them.</span>
</span></span></code></pre></div><ul>
<li>Essential packages<!-- raw HTML omitted --><br>
Pastrap is the tool that will install tools to the root directory <em>(install the base package, Linux kernel and firmware for common hardware)</em>.</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install essential packages</span>
</span></span><span class="line"><span class="cl">pacstrap /mnt base linux linux-firmware linux-headers linux-lts linux-lts-headers
</span></span><span class="line"><span class="cl"><span class="c1"># Notice that I&#39;ve installed two Linux kernel</span>
</span></span><span class="line"><span class="cl"><span class="c1"># - the latest linux kernel (to have the latest features and upgrade)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># - linux-lts as fallback (just in case I mess something up).</span>
</span></span></code></pre></div><blockquote>
<p>Another option is to Install base packages, change root into the system and install other packages using pacman command.<!-- raw HTML omitted --></p>
</blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install base packages</span>
</span></span><span class="line"><span class="cl">pacstrap -i /mnt base
</span></span><span class="line"><span class="cl"><span class="c1"># Access the in-progress Arch installation. </span>
</span></span><span class="line"><span class="cl"><span class="c1"># Change root into the new system:</span>
</span></span><span class="line"><span class="cl">arch-chroot /mnt <span class="c1"># will give access to the arch installation. the command prompt is attached to that installation in progress. We&#39;ll make this installation independent of the boot media (usb disk).</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># At this point our arch installation is a distribution not a linux because it does not have a linux kernel yet.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Install default linux kernel and lts linux kernel (2 kernels)</span>
</span></span><span class="line"><span class="cl">pacman -S linux linux-firmware linux-headers linux-lts linux-lts-headers
</span></span><span class="line"><span class="cl"><span class="c1"># (linux = standard linux kernel, latest + linux-lts=long term supported linux kernel - more stable and have 2nd kernel as a failover if you mess-up with the latest one )</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ? not sure if linux-firmware needs to be installed instead of linux-headers and linux-lts-headers</span>
</span></span></code></pre></div><ul>
<li>Optional packages</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pacstrap /mnt base-devel grub efibootmgr lvm2 vi git openssh
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># base-devel: common package for development in Linux ( https://www.archlinux.org/groups/x86_64/# base-devel ).</span>
</span></span><span class="line"><span class="cl"><span class="c1"># grub: (GRand Unified Bootloader) is a multi-boot loader.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># efibootmgr: userspace application used to modify the Intel Extensible Firmware Interface (EFI) Boot Manager.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># lvm2: add lvm support (even if you don&#39;t use lvm)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># vi: text editor.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># git: version control system.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># openssh: remote login with the SSH protocol</span>
</span></span></code></pre></div><h2 id="configure-the-system">Configure the system</h2>
<ul>
<li>Fstab<!-- raw HTML omitted --></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Create the directory for fstab file (file used by distribution when it boots up so it knows where to find all the partitions). </span>
</span></span><span class="line"><span class="cl">mkdir -p /mnt/etc
</span></span><span class="line"><span class="cl">genfstab -U /mnt &gt;&gt; /mnt/etc/fstab
</span></span><span class="line"><span class="cl">cat /mnt/etc/fstab
</span></span></code></pre></div><ul>
<li>Chroot<!-- raw HTML omitted --><br>
Access the in-progress Arch installation.</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Change root into the new system:</span>
</span></span><span class="line"><span class="cl">arch-chroot /mnt <span class="c1"># will give access to the arch installation. The command prompt is attached to that installation in progress. We&#39;ll make this installation independent of the boot media (usb disk).</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Enable OpenSSH</span>
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> sshd
</span></span></code></pre></div><ul>
<li>Time zone<!-- raw HTML omitted --></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Set the time zone:</span>
</span></span><span class="line"><span class="cl">ln -sf /usr/share/zoneinfo/Europe/Bucharest /etc/localtime
</span></span><span class="line"><span class="cl"><span class="c1"># Run hwclock(8) to generate /etc/adjtime. Set the Hardware Clock from the System Clock, and update the timestamps in /etc/adjtime.</span>
</span></span><span class="line"><span class="cl">hwclock --systohc
</span></span></code></pre></div><ul>
<li>Localization<!-- raw HTML omitted --></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Uncomment the line from the /etc/locale.gen file that corresponds to your locale (uncomment en_US.UTF-8)</span>
</span></span><span class="line"><span class="cl">vi /etc/locale.gen
</span></span><span class="line"><span class="cl"><span class="c1"># Generate the locale</span>
</span></span><span class="line"><span class="cl">locale-gen
</span></span><span class="line"><span class="cl"><span class="c1"># Set the LANG variable to the same locale in /etc/locale.conf.</span>
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;LANG=en_US.UTF-8&#34;</span> &gt;&gt; /etc/locale.conf
</span></span><span class="line"><span class="cl"><span class="c1"># The default console keymap is US If you set the console keyboard layout, make the changes persistent in vconsole.conf(5).</span>
</span></span></code></pre></div><ul>
<li>Network configuration<!-- raw HTML omitted --></li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Set your hostname.</span>
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;softaz&#34;</span> &gt;&gt; /etc/hostname
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Complete the network configuration for the newly installed environment.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Installing suitable network management software.</span>
</span></span><span class="line"><span class="cl">pacman -S networkmanager wpa_supplicant wireless_tools netctl dialog iwd
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Enable networkmanager</span>
</span></span><span class="line"><span class="cl">systemctl <span class="nb">enable</span> NetworkManager
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Networking tools</span>
</span></span><span class="line"><span class="cl"><span class="c1"># networkmanager: handles connecting to wireless and wired networks.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># wpa_supplicant: wireless drivers</span>
</span></span><span class="line"><span class="cl"><span class="c1"># wireless_tools:</span>
</span></span><span class="line"><span class="cl"><span class="c1"># netctl: network manager</span>
</span></span><span class="line"><span class="cl"><span class="c1"># dialog: dialog (required for wifi-menu)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># iwd: wireless daemon for Linux written by Intel</span>
</span></span></code></pre></div><ul>
<li>Initramfs<!-- raw HTML omitted --><br>
Initial Ramdisk Configuration = The initial ramdisk is a root file system that will be booted into memory. It aids in startup. This section covers setup and generation of an mkinitcpio configuration for generating initramfs.<!-- raw HTML omitted --><br>
Creating a new initramfs is usually not required, because mkinitcpio was run on installation of the kernel package with pacstrap.<!-- raw HTML omitted --><br>
For LVM, system encryption or RAID, modify mkinitcpio.conf(5) and recreate the initramfs image.</li>
</ul>
<p>Ensure boot process support our configuration</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Edit /etc/mkinitcpio.conf</span>
</span></span><span class="line"><span class="cl">vi /etc/mkinitcpio.conf
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Look for a line called &#34;HOOKS&#34; that is not commented out.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># HOOKS are modules added to the initramfs image. Without encrypt and lvm2, systems won&#39;t contain modules necessary to decrypt LUKs.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># between &#34;block&#34; and &#34;filesystems&#34; (order matters) add</span>
</span></span><span class="line"><span class="cl"><span class="c1"># - &#34;encrypt&#34; if you used encryption (if you did not use encryption don&#39;t add this)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># - and &#34;lvm2&#34; if you used lvm</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Move “keyboard” before “modconf” in HOOKS.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Save the file that will contain HOOKS=(base ... block encrypt lvm2 filesystems ...)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># It should look similar to the following (don&#39;t copy this line in case they change it):</span>
</span></span><span class="line"><span class="cl"><span class="nv">HOOKS</span><span class="o">=(</span>base udev autodetect keyboard modconf kms keymap consolefont block encrypt lvm2 filesystems fsck<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Build initramfs with the linux preset. Create the initial ramdisk for the main kernel (activate the options added)</span>
</span></span><span class="line"><span class="cl">mkinitcpio -p linux
</span></span><span class="line"><span class="cl"><span class="c1"># Create the initial ramdisk for the LTS kernel (if you installed it)</span>
</span></span><span class="line"><span class="cl">mkinitcpio -p linux-lts
</span></span></code></pre></div><ul>
<li>Root password<!-- raw HTML omitted --><br>
Set root password and add a user</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Set the root password</span>
</span></span><span class="line"><span class="cl">passwd
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create a user for yourself</span>
</span></span><span class="line"><span class="cl"><span class="c1"># useradd -m -g users -G wheel &lt;username&gt;</span>
</span></span><span class="line"><span class="cl">useradd -m -g users -G wheel paul
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Set your password</span>
</span></span><span class="line"><span class="cl">passwd paul
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Install sudo</span>
</span></span><span class="line"><span class="cl">pacman -S sudo
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Allow users in the &#39;wheel&#39; group to use sudo</span>
</span></span><span class="line"><span class="cl"><span class="nv">EDITOR</span><span class="o">=</span>vi visudo
</span></span><span class="line"><span class="cl"><span class="c1"># Uncomment:</span>
</span></span><span class="line"><span class="cl">wheel <span class="nv">ALL</span><span class="o">=(</span>ALL<span class="o">)</span> ALL
</span></span><span class="line"><span class="cl">OR
</span></span><span class="line"><span class="cl">%wheel <span class="nv">ALL</span><span class="o">=(</span>ALL<span class="o">)</span> NOPASSWD: ALL
</span></span></code></pre></div><h2 id="boot-loader">Boot loader</h2>
<h3 id="installing-grubbr">Installing GRUB<!-- raw HTML omitted --></h3>
<p>Choose and install a Linux-capable boot loader.<!-- raw HTML omitted --><br>
If you have an Intel or AMD CPU, enable microcode updates in addition.<!-- raw HTML omitted --></p>
<p>Choose A,B,C or D based on your setup.</p>
<h3 id="a-installing-grub-for-non-uefi-with-no-encryption">(A) Installing GRUB for non-UEFI, with no encryption</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install the required packages for GRUB:</span>
</span></span><span class="line"><span class="cl">pacman -S grub dosfstools os-prober mtools
</span></span><span class="line"><span class="cl"><span class="c1"># Install GRUB:</span>
</span></span><span class="line"><span class="cl">grub-install --target<span class="o">=</span>i386-pc --recheck /dev/sda
</span></span><span class="line"><span class="cl"><span class="c1"># Create the locale directory for GRUB</span>
</span></span><span class="line"><span class="cl">mkdir /boot/grub/locale
</span></span><span class="line"><span class="cl"><span class="c1"># Copy the locale file to locale directory</span>
</span></span><span class="line"><span class="cl">cp /usr/share/locale/en<span class="se">\@</span>quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
</span></span><span class="line"><span class="cl"><span class="c1"># Generate GRUB&#39;s config file</span>
</span></span><span class="line"><span class="cl">grub-mkconfig -o /boot/grub/grub.cfg
</span></span></code></pre></div><h3 id="b-installing-grub-for-uefi-with-no-encryption">(B) Installing GRUB for UEFI, with no encryption</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install the required packages for GRUB:</span>
</span></span><span class="line"><span class="cl">pacman -S grub efibootmgr dosfstools os-prober mtools
</span></span><span class="line"><span class="cl"><span class="c1"># Create the EFI directory:</span>
</span></span><span class="line"><span class="cl">mkdir /boot/EFI
</span></span><span class="line"><span class="cl"><span class="c1"># Mount the EFI partition:</span>
</span></span><span class="line"><span class="cl">mount /dev/&lt;DEVICE PARTITION 1&gt; /boot/EFI
</span></span><span class="line"><span class="cl"><span class="c1"># Install GRUB:</span>
</span></span><span class="line"><span class="cl">grub-install --target<span class="o">=</span>x86_64-efi --bootloader-id<span class="o">=</span>grub_uefi --recheck
</span></span><span class="line"><span class="cl"><span class="c1"># Create the locale directory for GRUB</span>
</span></span><span class="line"><span class="cl">mkdir /boot/grub/locale
</span></span><span class="line"><span class="cl"><span class="c1"># Copy the locale file to locale directory</span>
</span></span><span class="line"><span class="cl">cp /usr/share/locale/en<span class="se">\@</span>quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
</span></span><span class="line"><span class="cl"><span class="c1">#Generate GRUB&#39;s config file</span>
</span></span><span class="line"><span class="cl">grub-mkconfig -o /boot/grub/grub.cfg
</span></span></code></pre></div><h3 id="c-installing-grub-for-uefi-with-luks-disk-encryption">(C) Installing GRUB for UEFI, with LUKS disk encryption</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install the required packages for GRUB:</span>
</span></span><span class="line"><span class="cl">pacman -S grub efibootmgr dosfstools os-prober mtools
</span></span><span class="line"><span class="cl"><span class="c1"># Create the EFI directory:</span>
</span></span><span class="line"><span class="cl">mkdir /boot/EFI
</span></span><span class="line"><span class="cl"><span class="c1"># Mount the EFI partition:</span>
</span></span><span class="line"><span class="cl">mount /dev/&lt;DEVICE_PARTITION_1&gt; /boot/EFI
</span></span><span class="line"><span class="cl"><span class="c1"># Install GRUB:</span>
</span></span><span class="line"><span class="cl">grub-install --target<span class="o">=</span>x86_64-efi --bootloader-id<span class="o">=</span>grub_uefi --recheck
</span></span><span class="line"><span class="cl"><span class="c1"># Create the locale directory for GRUB</span>
</span></span><span class="line"><span class="cl">mkdir /boot/grub/locale
</span></span><span class="line"><span class="cl"><span class="c1"># Copy the locale file to locale directory</span>
</span></span><span class="line"><span class="cl">cp /usr/share/locale/en<span class="se">\@</span>quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
</span></span><span class="line"><span class="cl"><span class="c1"># Set up GRUB to be able to unlock the disk</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Open the defaulg config file for GRUB:</span>
</span></span><span class="line"><span class="cl">vi /etc/default/grub
</span></span><span class="line"><span class="cl"><span class="c1"># Uncomment:</span>
</span></span><span class="line"><span class="cl"><span class="nv">GRUB_ENABLE_CRYPTODISK</span><span class="o">=</span>y
</span></span><span class="line"><span class="cl"><span class="c1">#Add cryptdevice=&lt;PARTUUID&gt;:volgroup0 to the GRUB_CMDLINE_LINUX_DEFAULT line If using standard device naming, the option will look similar this (be sure to adjust the device name):</span>
</span></span><span class="line"><span class="cl"><span class="nv">cryptdevice</span><span class="o">=</span>/dev/sda3:volgroup0:allow-discards quiet
</span></span><span class="line"><span class="cl"><span class="c1">#Generate GRUB&#39;s config file</span>
</span></span><span class="line"><span class="cl">grub-mkconfig -o /boot/grub/grub.cfg
</span></span></code></pre></div><h3 id="d-installing-grub-for-uefi-with-luks-disk-encryption-and-dual-boot">(D) Installing GRUB for UEFI, with LUKS disk encryption and Dual Boot</h3>
<p>In /etc/default/grub you don’t need to enable GRUB_ENABLE_CRYPTODISK=y.<!-- raw HTML omitted --><br>
This is needed only if your boot partition is encrypted.<!-- raw HTML omitted --><br>
In our case it is not as windows and linux are encrypted separately.<!-- raw HTML omitted --></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install the required packages for GRUB:</span>
</span></span><span class="line"><span class="cl">pacman -S grub efibootmgr dosfstools os-prober mtools
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># ---</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Create the EFI directory. This might be already done on the &#34;mount&#34; step.</span>
</span></span><span class="line"><span class="cl">mkdir -p /boot/efi
</span></span><span class="line"><span class="cl"><span class="c1"># Mount the EFI partition. This might be already done on the &#34;mount&#34; step.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># For dual boot with Windows EFI. Mount the Window&#39;s created EFI partition to /boot/efi  </span>
</span></span><span class="line"><span class="cl">mount /dev/nvme0n1p1 /boot/efi
</span></span><span class="line"><span class="cl"><span class="c1"># OR For dual boot with Windows EFI on a separate disk and Linux on another mount the linux efi partition from the second disk</span>
</span></span><span class="line"><span class="cl"><span class="c1">#mount /dev/nvme1n1p1 /boot/efi </span>
</span></span><span class="line"><span class="cl"><span class="c1"># if you are mounting while logged into the arch system (after arch-chroot) command. If you mounted before the arch-chroot command use the full path /mnt/boot/efi</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ---</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Determine the UUID of your root partition and EFI partition.</span>
</span></span><span class="line"><span class="cl">fdisk -l
</span></span><span class="line"><span class="cl">blkid
</span></span><span class="line"><span class="cl"><span class="c1"># nvme0n1p1 = /boot/efi = example UUID=&#34;8028-DFC2&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1"># nvme0n1p6 if dual boot on one disk = / = example UUID=&#34;6e0e2ea6-27e5-4d49-9a87-4503c08124f7&#34; OR</span>
</span></span><span class="line"><span class="cl"><span class="c1"># nvme1n1p3 if dual boot on two separate disks = / = example UUID=&#34;aacb44ed-54fa-4481-be1a-4a46aabad50f&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Those will be referenced in the Grub configuration</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Edit the GRUB boot loader configuration.</span>
</span></span><span class="line"><span class="cl">vi /etc/default/grub
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Update the GRUB_CMDLINE_LINUX to match the format cryptdevice=UUID=${ROOT_UUID}:cryptroot root=/dev/mapper/cryptroot where ${ROOT_UUID} is the UUID captured above.</span>
</span></span><span class="line"><span class="cl"><span class="nv">GRUB_CMDLINE_LINUX</span><span class="o">=</span><span class="s2">&#34;cryptdevice=UUID=aacb44ed-54fa-4481-be1a-4a46aabad50f:lvm root=/dev/mapper/vg00-lv_root&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Add grub menu item for Windows 11 by editing /etc/grub.d/40_custom.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Replace $FS_UUID with the EFI partition&#39;s UUID, found in step above of this section. $FS_UUID is specified after --set=root</span>
</span></span><span class="line"><span class="cl">cp /etc/grub.d/40_custom /etc/grub.d/40_custom.bak
</span></span><span class="line"><span class="cl">vi /etc/grub.d/40_custom
</span></span></code></pre></div><p>Grub config</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="cp">#!/bin/sh
</span></span></span><span class="line"><span class="cl"><span class="cp"></span><span class="nb">exec</span> tail -n +3 <span class="nv">$0</span>
</span></span><span class="line"><span class="cl"><span class="c1"># This file provides an easy way to add custom menu entries.  Simply type the</span>
</span></span><span class="line"><span class="cl"><span class="c1"># menu entries you want to add after this comment.  Be careful not to change the &#39;exec tail&#39; line above.</span>
</span></span><span class="line"><span class="cl">menuentry <span class="s2">&#34;System shutdown&#34;</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">    	<span class="nb">echo</span> <span class="s2">&#34;System shutting down...&#34;</span>
</span></span><span class="line"><span class="cl">    	halt
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl">menuentry <span class="s2">&#34;System restart&#34;</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">    	<span class="nb">echo</span> <span class="s2">&#34;System rebooting...&#34;</span>
</span></span><span class="line"><span class="cl">    	reboot
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="s2">&#34;</span><span class="si">${</span><span class="nv">grub_platform</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">==</span> <span class="s2">&#34;efi&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl">  menuentry <span class="s2">&#34;Windows 11&#34;</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">    insmod part_gpt
</span></span><span class="line"><span class="cl">    insmod fat
</span></span><span class="line"><span class="cl">    insmod search_fs_uuid
</span></span><span class="line"><span class="cl">    insmod chain
</span></span><span class="line"><span class="cl">    search --fs-uuid --set<span class="o">=</span>root <span class="nv">$FS_UUID</span> <span class="c1">#change &#34;$FS_UUID&#34; with the windows EFI partition ID. e.g.: 8028-DFC2</span>
</span></span><span class="line"><span class="cl">    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
</span></span><span class="line"><span class="cl">    <span class="c1"># chainloader /EFI/VeraCryot/DcsBoot.efi # if you used Veracrypt for windows encryption</span>
</span></span><span class="line"><span class="cl">  <span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="k">fi</span>
</span></span></code></pre></div><p>Install</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Install grub on the master boot record</span>
</span></span><span class="line"><span class="cl">grub-install
</span></span><span class="line"><span class="cl"><span class="c1"># This assumes your efi is located in /boot/efi; additional flags are available if you used an alternative location.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck /dev/nvme0n1 # without a partition number at the end.</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># ---</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Create the locale directory for GRUB if it does not exist</span>
</span></span><span class="line"><span class="cl">ls -alh /boot/grub
</span></span><span class="line"><span class="cl">mkdir -p /boot/grub/locale
</span></span><span class="line"><span class="cl"><span class="c1"># Copy the locale file to locale directory</span>
</span></span><span class="line"><span class="cl">cp /usr/share/locale/en<span class="se">\@</span>quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
</span></span><span class="line"><span class="cl"><span class="c1"># if you want to use another language in grub refer to the documentation for that.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ---</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">#---</span>
</span></span><span class="line"><span class="cl"><span class="c1"># In /etc/default/grub you don&#39;t need to enable GRUB_ENABLE_CRYPTODISK=y . This is needed only if your boot partition is encrypted. In our case it is not.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># For dual-boot we added grub to a separate non-encrypted disk (nvme1n1p2    	259:15   0   512M  0 part  /boot). </span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># If you have grub on encrypted disk to the steps from the following description</span>
</span></span><span class="line"><span class="cl"><span class="c1"># For encryption only. Inform grub that it needs to trigger the unlock of the disk at boot otherwise is not going to boot at all.</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Set up GRUB to be able to unlock the disk</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Open the default config file for GRUB:</span>
</span></span><span class="line"><span class="cl"><span class="c1">#vi /etc/default/grub</span>
</span></span><span class="line"><span class="cl"><span class="c1"># search for GRUB_ENABLE_CRYPTODISK=y and uncomment that line</span>
</span></span><span class="line"><span class="cl"><span class="c1">#GRUB_ENABLE_CRYPTODISK=y</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Also edit line</span>
</span></span><span class="line"><span class="cl"><span class="c1"># GRUB_CMDLINE_LINUX_DEFAULT=&#34;loglevel=3 quiet&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1"># to</span>
</span></span><span class="line"><span class="cl"><span class="c1"># GRUB_CMDLINE_LINUX_DEFAULT=&#34;cryptdevice=/dev/sda3:volgroup0:allow-discards loglevel=3 quiet&#34;</span>
</span></span><span class="line"><span class="cl"><span class="c1">#Add cryptdevice=&lt;PARTUUID&gt;:volgroup0 to the GRUB_CMDLINE_LINUX_DEFAULT line If using standard device naming, the option will look similar this (be sure to adjust the device name):</span>
</span></span><span class="line"><span class="cl"><span class="c1"># cryptdevice=/dev/sda3:volgroup0:allow-discards quiet</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ---</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Generate the grub configuration.</span>
</span></span><span class="line"><span class="cl">grub-mkconfig -o /boot/grub/grub.cfg
</span></span></code></pre></div><p>Making Grub Font Readable</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># To set a custom font and size, create a grub-compatible font.</span>
</span></span><span class="line"><span class="cl">pacman -S wget unzip freetype2
</span></span><span class="line"><span class="cl"><span class="o">{</span>
</span></span><span class="line"><span class="cl">  mkdir -p /usr/share/grub-fonts/
</span></span><span class="line"><span class="cl">  wget https://github.com/source-foundry/Hack/releases/download/v3.003/Hack-v3.003-ttf.zip -O /usr/share/grub-fonts/Hack-v3.003-ttf.zip
</span></span><span class="line"><span class="cl">  unzip /usr/share/grub-fonts/Hack-v3.003-ttf.zip -d /usr/share/grub-fonts/
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl">grub-mkfont -s <span class="m">30</span> -o /boot/grubfont.pf2 /usr/share/grub-fonts/ttf/Hack-Regular.ttf
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">vi /etc/default/grub
</span></span><span class="line"><span class="cl"><span class="c1"># Then add the following in /etc/default/grub</span>
</span></span><span class="line"><span class="cl"><span class="nv">GRUB_FONT</span><span class="o">=</span><span class="s2">&#34;/boot/grubfont.pf2&#34;</span>
</span></span></code></pre></div><p>Remember last selected choice</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">vi /etc/default/grub
</span></span><span class="line"><span class="cl"><span class="c1"># modify at the top</span>
</span></span><span class="line"><span class="cl"><span class="nv">GRUB_DEFAULT</span><span class="o">=</span>saved
</span></span><span class="line"><span class="cl"><span class="c1"># uncomment</span>
</span></span><span class="line"><span class="cl"><span class="nv">GRUB_SAVEDEFAULT</span><span class="o">=</span><span class="nb">true</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Add “savedefault” to Windows menuentry</span>
</span></span><span class="line"><span class="cl">vi /etc/grub.d/40_custom
</span></span><span class="line"><span class="cl">menuentry <span class="s1">&#39;Windows 11&#39;</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">	savedefault	<span class="c1"># &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; THIS Attribute was missing!</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Regenerate the grub config.</span>
</span></span><span class="line"><span class="cl">grub-mkconfig -o /boot/grub/grub.cfg
</span></span></code></pre></div><p>Change <a href="https://wiki.archlinux.org/title/GRUB/Tips_and_tricks#Changing_the_default_menu_entry">Grub &ldquo;Arch Linux&rdquo;</a> kernel</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Because we installed two kernel (arch latest and arch-lts) the simple &#34;Arch Linux&#34; optiont (not the Advanced) can be updated to point to latest or lts version as you need (default is it takes the lts)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># find all instelled kernels</span>
</span></span><span class="line"><span class="cl">find /boot/vmli*
</span></span><span class="line"><span class="cl"><span class="c1"># get current kernel</span>
</span></span><span class="line"><span class="cl">uname -r
</span></span><span class="line"><span class="cl">pacman -Q linux
</span></span><span class="line"><span class="cl"><span class="c1"># Read thread https://bbs.archlinux.org/viewtopic.php?id=266583</span>
</span></span><span class="line"><span class="cl">vi /etc/grub.d/10_linux
</span></span><span class="line"><span class="cl"><span class="c1"># Change the line (# replace -r with -V)</span>
</span></span><span class="line"><span class="cl"><span class="nv">reverse_sorted_list</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span> <span class="nv">$list</span> <span class="p">|</span> tr <span class="s1">&#39; &#39;</span> <span class="s1">&#39;\n&#39;</span> <span class="p">|</span> sed -e <span class="s1">&#39;s/\.old$/ 1/; / 1$/! s/$/ 2/&#39;</span> <span class="p">|</span> version_sort -r <span class="p">|</span> sed -e <span class="s1">&#39;s/ 1$/.old/; s/ 2$//&#39;</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># with</span>
</span></span><span class="line"><span class="cl"><span class="nv">reverse_sorted_list</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span> <span class="nv">$list</span> <span class="p">|</span> tr <span class="s1">&#39; &#39;</span> <span class="s1">&#39;\n&#39;</span> <span class="p">|</span> sed -e <span class="s1">&#39;s/\.old$/ 1/; / 1$/! s/$/ 2/&#39;</span> <span class="p">|</span> version_sort -V <span class="p">|</span> sed -e <span class="s1">&#39;s/ 1$/.old/; s/ 2$//&#39;</span><span class="k">)</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Regenerate the grub config.</span>
</span></span><span class="line"><span class="cl">rm /boot/grub/grub.cfg
</span></span><span class="line"><span class="cl">grub-mkconfig -o /boot/grub/grub.cfg
</span></span><span class="line"><span class="cl"><span class="c1"># Verify menuentry from /boot/grub/grub.cfg</span>
</span></span><span class="line"><span class="cl"><span class="c1"># menuentry &#39;Arch Linux&#39; {</span>
</span></span><span class="line"><span class="cl"><span class="c1"># ...</span>
</span></span><span class="line"><span class="cl"><span class="c1"># initrd  /intel-ucode.img /initramfs-linux.img # or initramfs-linux-lts.img</span>
</span></span><span class="line"><span class="cl"><span class="c1">#}</span>
</span></span><span class="line"><span class="cl"><span class="c1">#</span>
</span></span><span class="line"><span class="cl"><span class="c1"># OR - simply modify the</span>
</span></span><span class="line"><span class="cl"><span class="c1"># vi /boot/grub/grub.cfg</span>
</span></span></code></pre></div><h3 id="rebootbr">Reboot<!-- raw HTML omitted --></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">exit</span> <span class="c1"># Exit the arch-chroot environment by typing exit</span>
</span></span><span class="line"><span class="cl">umount -a <span class="c1"># umount -R /mnt</span>
</span></span><span class="line"><span class="cl">reboot
</span></span></code></pre></div><p>Go to <strong>Bios</strong> setting and change <strong>boot order</strong> to the disk where Arch is installed. (Bios F2 -&gt; Boot -&gt; UEFI NVME Drive BBS Priorities - set Boot Option #1 to <strong>arch</strong>)<!-- raw HTML omitted --></p>
<p>If reboot fails follow instructions from <a href="#Debugging">Debugging</a></p>
<h2 id="post-installation">Post-installation</h2>
<p>Using grub, login to Arch linux.<!-- raw HTML omitted --><br>
Establish internet connection  with “nmtui-connect” and begin installing packages.<!-- raw HTML omitted --></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nmtui
</span></span></code></pre></div><p>You can connect from another machine to perform post-installation and desktop setup</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># on another machine</span>
</span></span><span class="line"><span class="cl">ssh paul@&lt;ip-of-laptop&gt;
</span></span></code></pre></div><ul>
<li>Create a swap file if needed.<!-- raw HTML omitted --><br>
I have plenty of ram on this laptop so I will skip this.</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 8GB swap example</span>
</span></span><span class="line"><span class="cl">sudo su
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /root
</span></span><span class="line"><span class="cl">dd <span class="k">if</span><span class="o">=</span>/dev/zero <span class="nv">of</span><span class="o">=</span>/swapfile <span class="nv">bs</span><span class="o">=</span>1M <span class="nv">count</span><span class="o">=</span><span class="m">8192</span>  <span class="nv">status</span><span class="o">=</span>progress
</span></span><span class="line"><span class="cl">chmod <span class="m">600</span> /swapfile
</span></span><span class="line"><span class="cl">mkswap /swapfile
</span></span><span class="line"><span class="cl">cp /etc/fstab /etc/fstab.bak
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s1">&#39;/swapfile none swap sw 0 0&#39;</span> <span class="p">|</span> tee -a /etc/fstab
</span></span><span class="line"><span class="cl">mount -a
</span></span><span class="line"><span class="cl">swapon -a
</span></span><span class="line"><span class="cl">free -m
</span></span></code></pre></div><ul>
<li>Set timezone</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># timedatectl list-timezones</span>
</span></span><span class="line"><span class="cl">sudo timedatectl set-timezone Europe/Bucharest
</span></span><span class="line"><span class="cl"><span class="c1"># synchronize clock</span>
</span></span><span class="line"><span class="cl">sudo systemctl <span class="nb">enable</span> systemd-timesyncd
</span></span></code></pre></div><ul>
<li>Set hostname</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo hostnamectl set-hostname softaz
</span></span><span class="line"><span class="cl">sudo cat /etc/hostname
</span></span></code></pre></div><ul>
<li>Edit /etc/hosts file</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo vi /etc/hosts
</span></span><span class="line"><span class="cl"><span class="c1"># add the hostname used</span>
</span></span><span class="line"><span class="cl">127.0.0.1 localhost
</span></span><span class="line"><span class="cl">127.0.1.1 softaz 
</span></span></code></pre></div><ul>
<li>Install microcode for CPU depending on cpu you are using</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">sudo pacman -S intel-ucode
</span></span><span class="line"><span class="cl"><span class="c1"># or </span>
</span></span><span class="line"><span class="cl"><span class="c1"># pacman -S amd-ucode </span>
</span></span></code></pre></div><p>Congrats ＼(＾O＾)／ now you have say <strong>&ldquo;I use arch btw&rdquo;</strong></p>
<p>You will probably need a GUI interface, but I&rsquo;ll address that in a separate <a href="https://paulcosma.com/posts/arch-desktop/">post</a>.</p>
<h1 id="debugging">Debugging</h1>
<p>In case you need to troubleshoot failed install after reboot.</p>
<ul>
<li>Go back to the boot menu (F7)</li>
<li>Boot back into the ventoy usb drive (with arch installer).</li>
<li>Connect to the internet. SSH into the installer if you want</li>
<li>List the block devices</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">lsblk
</span></span></code></pre></div><ul>
<li>Unlock the encrypted disk and arbitrary name it lvm</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cryptsetup luksOpen /dev/nvme1n1p3 lvm
</span></span><span class="line"><span class="cl">vgscan
</span></span><span class="line"><span class="cl">vgchange -ay
</span></span></code></pre></div><ul>
<li>Remount all of the files to the appropriate partitions</li>
</ul>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="sb">```</span>bash
</span></span><span class="line"><span class="cl"><span class="c1"># Mount lvm root at /mnt.</span>
</span></span><span class="line"><span class="cl">mount /dev/vg00/lv_root /mnt
</span></span><span class="line"><span class="cl"><span class="c1"># Mount the boot directory to the boot partition.</span>
</span></span><span class="line"><span class="cl">mount /dev/nvme1n1p2 /mnt/boot
</span></span><span class="line"><span class="cl"><span class="c1"># Mount the Window&#39;s created EFI partition to /mnt/boot/efi.</span>
</span></span><span class="line"><span class="cl">mount /dev/nvme0n1p1 /mnt/boot/efi
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Create and mount home directory</span>
</span></span><span class="line"><span class="cl">mkdir -p /mnt/home
</span></span><span class="line"><span class="cl">mount /dev/vg00/lv_home /mnt/home
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">lsblk <span class="c1"># check</span>
</span></span></code></pre></div><p>Get back on the internet with iwctl/nmtui/wifi-menu or another tool.<br>
Enter the system root via arch-chroot.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">arch-chroot /mnt
</span></span></code></pre></div><p>Install what you are missing.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1">#.e.g: </span>
</span></span><span class="line"><span class="cl">pacman -S NetworkManager
</span></span></code></pre></div><p>Exit and reboot</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">exit</span>
</span></span><span class="line"><span class="cl">umount -a <span class="c1"># umount -R /mnt</span>
</span></span><span class="line"><span class="cl">reboot
</span></span></code></pre></div><h1 id="resources">Resources</h1>
<p><a href="https://octetz.com/docs/2020/2020-2-16-arch-windows-install/">https://octetz.com/docs/2020/2020-2-16-arch-windows-install/</a><br>
<a href="https://github.com/joshrosso/linux-desktop#making-grub-font-readable">https://github.com/joshrosso/linux-desktop#making-grub-font-readable</a><br>
<a href="https://www.learnlinux.tv/arch-linux-full-installation-guide/">https://www.learnlinux.tv/arch-linux-full-installation-guide/</a><br>
<a href="https://bbs.archlinux.org/viewtopic.php?id=259170">https://bbs.archlinux.org/viewtopic.php?id=259170</a><br>
<a href="https://askubuntu.com/questions/148662/how-to-get-grub2-to-remember-last-choice">https://askubuntu.com/questions/148662/how-to-get-grub2-to-remember-last-choice</a></p>
]]></content>
		</item>
		
	</channel>
</rss>
