Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Usage:
- #
- # 1. Copy to Arch USB stick.
- #
- # 2. Boot system with Arch USB and begin install process.
- #
- # 3. Access the files you copied to Arch USB:
- #
- # NOTE: First mount your root partition to /mnt/ or else you'll need to redo these steps after.
- #
- # $ mkdir -p /mnt/usb
- # $ lsblk -f <-- Find the Arch USB device. It likely is /dev/sdb1.
- # $ mount /dev/sdb1 /mnt/usb
- # $ cd /mnt/usb/
- # $ ls -al
- # <Now you can see what you copied to the Arch USB>
- #
- # 4. Run this script when its time to install packages:
- #
- # $ ./pacstrap.sh
- #
- # 5. Generate an fstab file: <-- Done after pacstrap step if you follow https://wiki.archlinux.org/title/Installation_guide
- #
- # $ genfstab -U /mnt >> /mnt/etc/fstab
- #
- # NOTE: After running genfstab the mounted usb will get added to /mnt/etc/fstab.
- # You need to remove these lines from /mnt/etc/fstab (e.g. $ vim /mnt/etc/fstab, delete the /usb line, and save)
- # or else Linux will not boot without the USB plugged in:
- #
- # # /dev/sdb1 LABEL=ARCH_######
- # UUID=####-#### /usb vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
- # Update pacman mirrors using reflector.
- reflector --verbose --country "United States" --latest 10 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
- # Backup pacman config.
- cp /etc/pacman.conf /etc/pacman.conf.bak
- # Create custom pacman.conf with desired settings.
- cat <<EOF > /etc/pacman.conf
- #
- # /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 = 10
- ILoveCandy
- # 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 = Required DatabaseOptional
- LocalFileSigLevel = Optional
- #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.
- #[core-testing]
- #Include = /etc/pacman.d/mirrorlist
- [core]
- Include = /etc/pacman.d/mirrorlist
- #[extra-testing]
- #Include = /etc/pacman.d/mirrorlist
- [extra]
- Include = /etc/pacman.d/mirrorlist
- # If you want to run 32 bit applications on your x86_64 system,
- # enable the multilib repositories as required here.
- #[multilib-testing]
- #Include = /etc/pacman.d/mirrorlist
- [multilib]
- Include = /etc/pacman.d/mirrorlist
- # An example of a custom package repository. See the pacman manpage for
- # tips on creating your own repositories.
- #[custom]
- #SigLevel = Optional TrustAll
- #Server = file:///home/custompkgs
- EOF
- # Install packages.
- packages=(
- base base-devel linux-firmware
- linux-firmware-qlogic
- linux linux-headers nvidia nvidia-settings
- intel-ucode
- networkmanager
- ufw
- pipewire pipewire-alsa pipewire-jack pipewire-pulse wireplumber easyeffects alsa-utils
- git htop reflector firefox deluge vlc meld speedcrunch sudo
- fastfetch
- gimp inkscape
- steam wine winetricks wine-mono wine-gecko
- kdialog
- gvim wmctrl ttf-hack-nerd terminus-font mousepad
- python tk python-pyperclip
- wl-clipboard
- flameshot
- ntfs-3g dosfstools mtools gparted
- gvfs
- # Install KDE.
- plasma
- xorg
- konsole
- kate # NOTE: This also installs kwrite.
- dolphin dolphin-plugins kio-admin
- ark
- p7zip # Needed by ark to open 7-zip files.
- unrar # Needed by ark to open rar files.
- kcalc
- gwenview
- filelight
- spectacle
- okular
- gparted
- ksystemlog
- gsmartcontrol # Harddisk health inspector.
- plasma-systemmonitor # Task Manager.
- plasma-desktop egl-wayland # Wayland.
- sddm # Display manager.
- grub efibootmgr os-prober # Boot loader.
- )
- pacstrap -K /mnt "${packages[@]}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement