diff --git a/README.md b/README.md index 23c9c2f9..d5eb90f2 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ loadkeys ca ``` ### Installing packages on the device +mount usb key and edit pacman.conf ``` # pacstrap -K /mnt base linux-firmware linux amd-ucode patch dkms kmod rtw89-dkms-git btrfs-progs grub os-prober ntfs-3g efibootmgr efivar iwd nano sudo texinfo man-db man-pages ``` @@ -90,7 +91,7 @@ Uncomment ca_FR.UTF-8 en_CA.UTF-8 en_US.UTF-8 fr_CA.UTF-8 and run # echo LANG=en_CA.UTF-8 > /etc/locale.conf # echo KEYMAP=ca > /etc/vconsole.conf ``` -## Edit /mnt/etc/mkinitcpio.conf for LUKS +## Edit /etc/mkinitcpio.conf for LUKS ``` BINARIES=(btrfs) ... @@ -103,7 +104,7 @@ then run ```mkinitpcio -P``` # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch ``` -### Edit /mnt/etc/default/grub for LUKS +### Edit /etc/default/grub for LUKS ``` cryptdevice=UUID=??????:root root=/dev/mapper/root ``` diff --git a/scripts/archinstaller.sh b/scripts/archinstaller.sh new file mode 100755 index 00000000..bad0ba66 --- /dev/null +++ b/scripts/archinstaller.sh @@ -0,0 +1,39 @@ +#!/bin/sh +PART="$1" +KEY="$2" + +loadkeys ca + +cryptsetup -y -v luksFormat --type luks1 /dev/nvme0n1p$PART +cryptsetup open /dev/nvme0n1p$PART root +mkfs.btrfs /dev/mapper/root +mount /dev/mapper/root /mnt +mount --mkdir /dev/nvme0n1p1 /mnt/boot + +mount --mkdir /dev/sda$KEY usb +mv /etc/pacman.conf{,.bak} +mv ./pacman.conf /etc +pacman -Syu + +pacstrap -K /mnt base linux-firmware linux amd-ucode patch dkms kmod rtw89-dkms-git btrfs-progs grub os-prober ntfs-3g efibootmgr efivar iwd nano sudo texinfo man-db man-pages + +genfstab -U /mnt >> /mnt/etc/fstab +arch-chroot /mnt +ln -sf /usr/share/zoneinfo/America/Montreal /etc/localtime +hwclock --systohc +echo matt-laptop > /etc/hostname +passwd + +nano /etc/locale.gen +locale-gen +echo LANG=en_CA.UTF-8 > /etc/locale.conf +echo KEYMAP=ca > /etc/vconsole.conf + +nano /etc/mkinitcpio.conf +mkinitcpio -P + +grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch + +cat << EOF >> /etc/default/grub +cryptdevice=$(blkid | sed -n 's/.*nvme0n1p'$PART': \(.*\) TYPE.*/\1/p'):root root=/dev/mapper/root +EOF \ No newline at end of file diff --git a/scripts/pacman.conf b/scripts/pacman.conf new file mode 100644 index 00000000..df455ffd --- /dev/null +++ b/scripts/pacman.conf @@ -0,0 +1,76 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +#NoProgressBar +CheckSpace +#VerbosePkgLists +#ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Never +LocalFileSigLevel = Never +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +[custom] +SigLevel = Never +Server = file:///root/usb