You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig
gpg: assuming signed data in 'archlinux-2022.04.05-x86_64.iso'
gpg: Signature made Wed Apr 6 00:05:57 2022 +08
gpg: using RSA key 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
gpg: issuer "pierre@archlinux.de"
gpg: Good signature from "Pierre Schmitz <pierre@archlinux.de>" [unknown]
gpg: WARNING: The key\'s User ID is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 4AA4 767B BC9C 4B1D 18AE 28B7 7F2D 434B 9741 E8AC
Remember to add FAT32 / MS-DOS (FAT) targeting the parent drive (and not just the partition). Using partitions did not work in my experience
# macOS
df -h # Find disk name / partition name to write bootable drive
sudo dd if=/Users/calluna/Downloads/archlinux-2022.04.05-x86_64.iso of=/dev/disk2 bs=1m
Use CTRL+T to check
Now plug in your USB drive via any USB slot (not BIOS), and via your BIOS boot loader, load Arch Linux
Download rEFInd. Unzip it into a spare removable drive.
CTRL+R to load up the Recovery Partition
Open Terminal
csrutil disable
# Restart your computer FIRST before proceeding. Then reload the Recovery Partition terminal and return here
cd /Volumes/your_spare_removable_drive/refind-XXX
./refind-install
csrutil enable
Now you can restart the conputer
When you start your MacBook Pro for the first time, you'll load rEFInd on power on. However, the option to load the Recovery Partition directly does not seem to work as it always return a "no entry symbol" when selected. The only way to select the Recovery Partition is to hold CTRL+R on power on.
128.0MB Free Space, 20.0 GiB Linux x86-64 root (/) "root" and 235.9 GiB Linux x86-64 /usr "home"
Proceed with formatting the swap via mkswap and root/home ext4 drives as per normal
swapon for the swap partition, mount root onto /mnt
pacstrap /mnt base linux linux-firmware
arch-chroot /mnt to enter your newly create Arch partition for the first time
vim /etc/locale.gen and uncomment all the language codes required. THEN run locale-gen. As not doing so will at least result in a perl-related locale warning when installing vim. If you deleted / modified locale.gen by mistake, deleting the corrupted locale.gen and reinstalling glibc will restore the file.
Install other essential packages, like vim, git, networkmanager, iw, iwd, wpa_supplicant, dhcp (for dynamic IP address unless you want to assign a static IP in the network yourself)
Reboot the system and re-enter the portable EFI Boot when done
If this does not work, reinstall refind, which worked in my case.
Create a new user as root
useradd -m you # Creates a "/home/you" account. You can replace you with whatever else.
passwd you
logout # Once password is confirmed
# Log in as your new home/you account
The account is locked due to 3 failed logins? Use faillock --user you to see the length of the lockout, then faillock --user you --reset to reset it.
Connect to the network. This is assuming you installed all the necessary network packages before switching to the actual Arch partition.
ip link to list all the network interfaces
ip link set <interface> up to activate the network interface (could be en / wlan)
iw dev <wlan_interface> scan | grep "SSD" to see all the wireless LAN access points available near your machine
lscpi -vnn -d 14e4 to detect Broadcom controllers. I had the BCM4331, so I installed broadcom-wl via AUR (although b43-firmware is also ok)
Add your user account you as a superuser group "sudo" so that yay can be built and installed next.
# As root...
pacman -S sudo
usermod -aG wheel you # Add your user to the existing "wheel" group
# Alternatively if you prefer "sudo"
groupadd sudo # Adds the sudo group. You can forgo this step to use the existing wheel group
usermod -aG sudo you
# Opens the sudo configuration
EDITOR=vim visudo
# Under the line "Uncomment to allow members of the group wheel to execute any command...
# Uncomment the line (the percentage is crucial to distinguish between a user and a group)
%wheel ALL=(ALL:ALL) ALL
# Or if you chose sudo earlier...
%sudo ALL=(ALL:ALL) ALL
Reboot and login again as your new user account before proceeding.
Now install yay as your you account. You might need to do a sudo pacman -S --nneeded base-devel before proceeding, especially if an error regarding missing packages is thrown when doing a makepkg -si inside yay-git
git clone https://aur.archlinux.org/yay-git.git
sudo pacman -S --nneeded base-devel # Optional if you face problems with the next step
makepkg -si
# Just for reference, no need to install this package
yay -Syu # Update
yay -S gparted # Install a package
yay -Rns gparted # Remove a package
I also decided to go with Budgie as it is reportedly Gnome 2, but lightweight and productive.
Budgie is for Linux users who like the Gnome desktop look but can do without the bloat. It actually looks simpler than Gnome as it’s designed to help the users focus more on work. The main Budgie menu is both mouse and keyboard friendly. The system is easily configured using its all-in-one center called Raven. Budgie is simple and attractive and also lightweight as most of those in this list of best desktop environments for Arch. So, if you have an old system you want to revive and get work done, Budgie would be a nice desktop environment for Arch or any other distro that supports it.
Packages: pacman -S budgie-desktop gnome gnome-extra gdm gnome-control-center gnome-terminal. gnome-terminal is extremely important as there is no way without an external boot drive to install it without a terminal
systemctl enable gdm.service: This will enable GDM on arch boot with the Budgie Desktop environment
Other useful packages for Budgie
Everything in the Mac section for the keyboard lights
# root@archiso
fdisk -l # List disk drives
mount /dev/XXXXX /mnt # Mount Linux root
mount /dev/XXXXX /mnt/efi # Mount Windows EFI Boot
mount /dev/XXXXX /mnt/efi # Mount XBOOTLDR (Linux extended boot)
swapon /dev/XXXX # Mount swap drives if any
arch-chroot /mnt
bootctl --esp-path=/efi --booth-path=/boot install # Generate EFI boot entry
Re-installing Arch onto a nvidia GPU and AMD CPU high end workstation PC
Uninstall the faulty Arch setup
Use the Arch installation media to boot the faulty Arch drive.
# root@archiso
# Nice to refer to all the available disks and partitions
fdisk -l
# List all available partitions and where they are mounted (if mounted)
lsblk
mount /dev/linux_root_part /mnt
mount /dev/windows_efi_part /mnt/efi # If any
mount /dev/xbootldr_part /mnt/boot
swapon /dev/linux_swap_part
Plug in a removable drive and copy all existing user files you want to salvage before you do the wipe.
# root@archiso
# Work from inside the "faulty Arch drive" if possible. If not, mount it in the installation media directory
arch-chroot /mnt
# Using /media here just to use a common convention, you can mount the drive wherever you like on your drive
mkdir /media && mkdir /media/DRIVE_NAME
# Find the removable drive partition (assuming it's /dev/sdb1)
fdisk -l
mount /dev/sdb1 /media/DRIVE_NAME
# Just an example
cp -r /home/YOU/Pictures /media/DRIVE_NAME/Pictures
# Once done, unmount it all. Use lsblk to check what is currently mounted
exit
umount /mnt/efi
umount /mnt/boot
umount /mnt
swapoff -a
If you have GRUB, delete the entry using efibootmgr so we can regenerate it later.
# root@archiso
efibootmgr
# > This lists the boot order
efibootmgr # To list options
# Where 000X is the boot order value of "Linux Boot Manager" that we will replace later
efibootmgr --boot-num 000X --delete-bootnum
# Where 000X is the boot order value of "GRUB" that we will replace later
efibootmgr --boot-num 000Y --delete-bootnum
Caution before proceeding. You will not be able to go back after executing the following scripts. Next steps: Reformat the faulty extended boot, swap and root drives.
# root@archiso
swapoff -a
# POINT OF NO RETURN! Do not proceed unless you know what you are doing.
mkfs.ext4 /dev/root_part
mkfs.fat -F 32 /dev/xbootldr_part
mkswap -L "swap" /dev/swap_part
# To check if your root linux drive has been clearly wiped, you
# realise you will not be able to arch-chroot into the root drive now
We don't need to make changes to the partitions since we are just doing a clean re-install.
Setting up Arch again
Mount the root drive where Arch will be installed.
# root@archiso
pacstrap /mnt base linux linux-firmware
genfstab -U /mnt >> /mnt/etc/fstab
more /mnt/etc/fstab # Verify file created with correct entries
Now we can enter the newly initialised /mnt and change some default configurations.
# root@archiso
# We ensure that time and date is set correctly before we change `/mnt` time and date settings
timedatectl set-ntp true
arch-chroot `/mnt`
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc
more /etc/adjtime # Verify that the hardware clock is set to UTC
exit
Next we install dependencies that may be useful later.
# root@archiso
arch-chroot `/mnt`
pacman -Syu
pacman -S vim networkmanager
# Ensure default editor is vim. See https://wiki.archlinux.org/title/Environment_variables
echo 'EDITOR=vim' >> /etc/environment
# You need internet to install packages, including this package. So you must install networkmanager here
systemctl enable NetworkManager.service
# See https://wiki.archlinux.org/title/Microcode#Installation. This needs to be done before grub-mkconfig is run which adds the microcode files as `initrd` to GRUB later.
pacman -S amd-ucode
exit
Then we make sure that the locales are generated properly:
# root@archiso
arch-chroot `/mnt`
vim /etc/locale.gen
# Comment out en_US.UTF-8, UTF-8 and other required locales
locale-gen
echo 'LANG=en_US.UTF-8' >> /etc/locale.conf
exit
Add the hostname, which would be the name of the computer on a network.
If you are having trouble naming the computer, a good suggestion will be to avoid having an owner's name as part of the hostname. For example, Sam has a PC with a cute teal case they use for gaming. She could use a hostname like teal-gaming-pc, not sams-pc, so the user is added before the hostname like sam@teal-gaming-pc instead of sam@sams-pc.
Next, we create a non root administrative user. Using the previous example, Sam has been using root@teal-gaming-pc, so they will now create a user account sam@teal-gaming-pc for normal use.
# root@archiso
arch-chroot `/mnt`
useradd -m you # Creates a "/home/you" account. You can replace you with whatever else.
passwd you
# Give yourself sudo privileges
pacman -S sudo
# The sudo group is "wheel"
# To add your user to the existing "wheel" group
usermod -aG wheel you
visudo
# Under the line "Uncomment to allow members of the group wheel to execute any command...
# ---
# # Uncomment the line (the percentage is crucial to distinguish between a user and a group)
# %wheel ALL=(ALL:ALL) ALL
# ---
su - you # Use you
exit # you@archiso on /mnt -> root@archiso on /mnt
exit # root@archiso on /mnt -> root@archiso on /
Install yay, which will allow you to install AUR packages maintained by the community. Once yay is installed, you will not be able to uninstall yay.
# root@archiso
arch-chroot /mnt
pacman -S --needed git base-devel
su - you
# Doesn't matter where this is installed, `~` is fine
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
exit
exit
Run mkinitcpio manually to check if there are any missing firmware. This is actually run when installing linux via pacstrap for the first time. Note the possible missing firmware, and you may install the packages listed on the wiki.
# root@archiso
arch-chroot /mnt
mkinitcpio -P
# Note missing packages, e.g. bfa, qed, qla2xxx
pacman -S linux-firmware-qlogic
# root@archiso
su - you
# Note AUR packages, e.g. xhci_pci, wd719x, aic94xx
# You can use the AUR meta package `mkinitcpio-firmware`, but it will install firmware packages not
# raised in the mkinitcpio warnings, which is likely to be unnecessary.
yay -S upd72020x-fw wd719x-firmware aic94xx-firmware
exit # you@archiso on /mnt -> root@archiso on /mnt
mkinitcpio -P
exit # root@archiso on /mnt -> root@archiso on /
Set the root password.
# root@archiso
arch-chroot /mnt
passwd
exit
Finally, we install the boot loader. We use GRUB due to its many advantages.
Mount the drives, then run bootctl to create the boot entries.
# root@archiso
mount --mkdir /dev/windowsbootloader_part /mnt/efi
mount --mkdir /dev/xbootldr_part /mnt/boot
# Note: You can remove --mkdir flag on subsequent re-mountings
swapon /dev/swap_part
# Verify all mounted
lsblk
bootctl --esp-path=/mnt/efi --boot-path=/mnt/boot install
# Verify "Linux Boot Manager" is added as an entry to the boot order
efibootmgr
arch-chroot /mnt
exit
Once done, proceed with installing GRUB. We are assuming you are using an x86_64 system (64-bit).
# root@archiso
# Not recommended but if for some reason, you need to install it in the installation environment, add the
# --boot-directory flag pointing to the XBOOTLDR partition
# grub-install --target=x86_64-efi --boot-directory=/mnt/boot --efi-directory=/mnt/efi --bootloader-id=GRUB
arch-chroot /mnt
# Installs grub in /mnt/boot/grub
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
# There should be no errors
exit
Next, we generate the GRUB configuration file via grub-mkconfig.
# root@archiso
arch-chroot /mnt
# Modify default mkconfig options as the actual config file is generated after updating certain files
# so we need to specify any custom kernel parameters
vim /etc/default/grub
exit
We check if we are able to detect the other OSes you want as entries in GRUB via os-prober within arch-chroot.
# root@archiso
arch-chroot /mnt
os-prober # Check if Windows can be detected. If not, reboot the machine and try again.
# -----
# Change from 5 seconds (too short) to 60 seconds to choose the partition to load
# GRUB_TIMEOUT=60
# Add splash (and nvidia-drm.modeset=1 required for plasma-wayland-session)
# GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"
# GRUB_DISABLE_OS_PROBER=false
# -----
grub-mkconfig -o /boot/grub/grub.cfg
exit
If we are not able to detect the other OSes, you can try to manually boot into the newly created partition (via BIOS) as root and check os-prober.
# root@archiso
reboot
# Log in as root Arch Linux on your target drive.
# root@new-arch-partition
os-prober
# Hopefully it will print out:
# /dev/windows_efi_part/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
grub-mkconfig -o /boot/grub/grub.cfg
Once done, you will be able to boot into the newly created Arch partition independently.
Setting up KDE Plasma
Install the xorg desktop environment. Optionally we can use wayland later, but it is known to be extremely glitchy on KDE running Arch.
# root@new-arch-partition
# This installs xorg-apps and xorg-server
pacman -S xorg
# Print the graphics card
lspci -k | grep -A 2 -E "(VGA|3D)"
# Check https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/ if the card is listed.
If not, proceed with using nvidia proprietary drivers, which supports better optimisation.
# root@new-arch-partition
# Check https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/ if the card is listed. If not, proceed
# with using nvidia proprietary
# Enable multilib for pacman. See https://wiki.archlinux.org/title/official_repositories#Enabling_multilib
vim /etc/pacman.conf
# -----
## Uncomment both lines! The [multilib] line and the Include line
# [multilib]
# Include = /etc/pacman.d/mirrorlist
# ------
pacman -Syu # multilib should be now listed as a package database.
# We do not install lib32-nvidia-utils, no use for it yet
pacman -S nvidia nvidia-utils
# We need to run mkinitcpio -P after nvidia updates so we put this in a pacman hook
mkdir /etc/pacman.d/hooks
vim /etc/pacman.d/hooks/nvidia.hook
# /etc/pacman.d/hooks/nvidia.hook
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia
Target=linux
# Change the linux part above and in the Exec line if a different kernel is used
[Action]
Description=Update NVIDIA module in initcpio
Depends=mkinitcpio
When=PostTransaction
## Uneecessary
# NeedsTargets
Exec=/usr/bin/mkinitcpio -P
## If you want it to run only once and not multiple times
# Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'
vim /etc/mkinitcpio.conf
##
# MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
## You can add shutdown to end of HOOKS=(... shutdown) to prevent long shutdown
# HOOKS=(... shutdown)
#
pacman -S plasma-meta
For providers for every dependency choice in plasma-meta:
Choose phonon-qt5-gstreamer. See the wiki and the feature set comparison here. Since I don't have or intend to get BluRay, phonon-qt5-gstreamer is the obvious choice for me.
Install KDE applications. There really is no need to install kde-applications-meta, just install the ones you need and add more later. Or just install the individual applications you remember.
Use ls /sys/firmware to check if it will support EFI (which it didn't in my case).
You can also use parted -l. Check under "Partition Table". If it shows "msdos", it is using MBR. If it shows "gpt", then it will work with UEFI.
I created 2M BIOS (as it is a MBR -> GPT convert), 300M EFI System Partition, 5 GB Swap (As the RAM stated it was 10GB). To ensure it plays nicely with systemd-boot (reportedly, never experienced this first hand), mount it under /boot
mount /dev/sda4 /mnt
swapon /dev/sda3
mount --mkdir /dev/sda2 /mnt/boot
I installed GRUB due to its flexibility and familiarity
Next, installed the i3 desktop environment, which claims to be light and performant, which appealed to the 12 year old netbook, which did not fare well even under Gnome.
Install i3-wm
Add "exec i3" into a new file ~/.xinitrc
Run startx to run and start i3-wm
More options
Maintain user i3 configuration
cp /etc/i3/config ~/.config/i3/config: Copy sample i3 Config to home directory for your current user. Warning! This overrides the settings set by the i3 Wizard
Replace all Mod1 values to $mod in ~/.config/i3/config:
set $mod Mod4 # or Mod1
Using vim substitution (i.e. :%s/Mod1/$mod/ => [n] (Will find the next one) => [.] Confirm change for highlighted one )
Using ttf-fira-code to replace the default font
sudo pacman -S ttf-fira-code ttf-fira-mono
sudo vim ~/.config/i3/config
font pango:Fira Code Medium 9
$mod+Shift+R to reload i3-wm and see the changes made to the i3 DE
Install rofi to replace dmenu_run
Replacing XTerm default font
fc-list | grep "Mono" - List all installed fonts
xterm -fa "IBM Plex Mono SmBld" -fs 9 - To preview how the shell emulator will look like
sudo vim ~/.Xresources
xterm*faceName: Fira Mono Medium
xterm*faceSize: 9
Setting up Arch Linux on a brand new workstation PC
This guide is meant to ramble to myself how to install Arch Linux on my own PC. If you have stumbled onto this guide, please check out the Arch Linux Wiki in combination with the Farhan Hasin Chowdhury's user friendly step by step guide instead.
If you restart at any point, all settings will be reset.
This brings you to root, which has almost nothing.
Set timezone to your local timezone
Select hard drive partition to install Arch Linux on. If you have a dual boot Windows on the same physical drive, systemctl reboot and go back to Windows
Run GWMI on PowerShell to load the partition UUIDs so you can tell which partition is the one you want to install Arch Linux on
Inside fdisk, choose all primary partitions. No need to create EFI partition, Windows already did that, and its 100 MB and too small for other boot loaders.
remaining for the Linux root partition x86-64 (Code 23)
home partition (if ever needed), will be installed in the other 2TB SSD
Format the root drive with Ext4
mkfs.ext4 /dev/root_part_nr
Format the XBOOTLDR drive with FAT32
mkfs.fat -F 32 /dev/XBOOTLDR_PART
Make swap for the swap partition
Clear swaps first
swapoff -a
Mount root to /mnt
Mount existing Windows EFI to /efi, and then the EXBOOTLDR to /boot
bootctl --esp-path=/efi --boot-path=/boot install
Install GRUB as a bootloader.
arch-chroot /mnt # To enter your root partition
pacman -S grub efibootmgr
Follow instructions here https://wiki.archlinux.org/title/GRUB#Installation_2. Ensure you in /mnt when installing. You will be led to https://wiki.archlinux.org/title/GRUB#Generate_the_main_configuration_file, follow all of its instructions. Ensure os-prober is installed, GRUB_DISABLE_OS_PROBER=false, then run os-prober to detect the EFI partition created by Windows. Where you call grub-mkconfig isn't important, ensure that you are able to detect "Windows Boot Manager on /dev//EFI/Microsoft//bootmgfw.efi" and that the entry for boot menu is added for UEFI Firmware Settings.
Now install a Desktop Environment. I went with KDE Plasma, as I'm running a high end desktop with lots of memory space. I followed the instructions to the letter. Used plasma-meta, try not to use wayland, used the Noto fonts, gstreamer instead of vlc (after researching, VLC has some licensing issues and stability issues).
# /boot/grub/grub.cfg
# I added nvidia-drm.modeset=1 to the end in order to enable the DRM kernel mode setting
# It's important to note that UUID value will already be in the document
# YOU SHOULD NOT REPEAT THIS LINE. Only add nvidia-drm.modeset=1 to the end of the existing line!!
echo 'DRM Kernel Mode Setting has been enabled for Wayland to be used as a session manager.'
linux /boot/vmlinuz-linux root=UUID=XXXX-XXXX-XXXX rw quiet splash nvidia-drm.modeset=1
Shutting down taking too long and only shutting down immediately after seeing some terminal logs mentioning "oldroot"? It is likely that mkinitcpio needs to be run for all presets, especially now that I'm using Nvidia and switched DRM Kernal Mode Setting on for Wayland. See https://wiki.archlinux.org/title/NVIDIA#pacman_hook for more details. Steps:
sudo vim /etc/mkinitcpio.conf
# Inside vim, add `shutdown` to the end of the HOOKS value
sudo mkinitcpio -P
sudo grub-mkconfig -o /boot/grub/grub.cfg
vim /boot/grub/grub.cfg
# Inside vim, restore nvidia-drm.modeset=1 so you can use Wayland as a session manager. See above
# I'm using SDDM as the Desktop Manager
pacman -S sddm
systemctl enable sddm
If you are having trouble playing web videos on Firefox / Chromium, play the video, go to Terminator and pulseaudio --kill and the video should play normally. Once confirmed PulseAudio is the issue, ensure that you replace pulseaudio with pipewire-pulse. Remember to install pulseaudio-alsa (Even though I had pipewire-pulse), alsa-firmware, lib32-libpulse and lib32-alsa-plugins then reboot, this is how I got Amnesia: Rebirth and Fear Equation working.
Remember to install KDE applications too: kde-applications-meta
I installed yay as well in order to download AUR applications. I should proceed with caution though. Needed to add my user account to the sudoers list first though, that involved adding it via export EDITOR=vim && visudo (cause the default editor is a whack vim-like editor) and adding my user to root and enabling sudo group. Then logging in with su - {my_user} and using that shell session.
Steam seems to work, i.e. pacman -S steam. Apps are located in /home/{username}/.local/share/Steam. When looking for an answer to fix this, I also discovered I'm using OpenGL 3.2 (i.e. glxinfo | grep "3\."). I suspect that there needs to be additional plugin support for 3D rendering.
Games that did work: Software Inc (works on both X11 and Wayland), Space Haven, Space Station 14 Playtest
Games that did not work:
Alien Isolation
Could not open application
Amnesia: Rebirth
Encountered a FDisk cannot be initialized!! popup and the game shut down immediately. I'm assuming this will be the same for any Frictional Game built with the same game engine. Does not work on either X11 or Wayland. Turns out I needed some extra packages: pulseaudio-alsa, alsa-firmware, lib32-libpulse and lib32-alsa-plugins.
Fear Equation
This was the first 3D game I did manage to get running. However, there was no audio. I did manage to fix this by installing pulseaudio-alsa (Even though I had pipewire-pulse), alsa-firmware, lib32-libpulse and lib32-alsa-plugins. Then I rebooted the computer and reopened the game via Steam.
Stellaris
Was able to open the game and interact with the pre-game menu UI. However, upon loading the game properly up to 100%, the game crashed.
I was not successful in setting up officially built discord from pacman for Wayland, though discord works perfectly with the x11 desktop session. discord_arch_electron AUR dependency did work on Wayland desktop sessions though.
To view .webp image formats on applications like Gwenview, install qt5-imageformats
# Update pacman registry locally
pacman -Syu
# List only packages with missing files
pacman -Qk 2>/dev/null | grep -v ' 0 missing files'
pacman -S package_1_with_missing_files package_2_with_missing_files
This helped me to find and restore missing files that were in amd-ucode and sddm which crashed on system start, but it did not help with the black screen on startup incident of late Sept / early Oct 2022. I did need to delete the distro and start from scratch.