aboutsummaryrefslogtreecommitdiffstats
path: root/joes-arch-install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'joes-arch-install.sh')
-rwxr-xr-xjoes-arch-install.sh849
1 files changed, 849 insertions, 0 deletions
diff --git a/joes-arch-install.sh b/joes-arch-install.sh
new file mode 100755
index 0000000..bc2fdc6
--- /dev/null
+++ b/joes-arch-install.sh
@@ -0,0 +1,849 @@
+#!/bin/bash
+
+#==================================================================================================#
+#------------------------------------ VARIABLES DECLARATION ---------------------------------------#
+#==================================================================================================#
+answr=""
+drvnm=""
+rts=""
+swps=""
+rtpwd=""
+rtrtpwd="walk"
+usrpwd=""
+usrusrpwd="fade"
+hstnm=""
+isusr=false
+somemore=false
+intelamdcpu="none"
+intelamdgpu="none"
+ltskern=true
+numregex='^[0-9]+$'
+gogogo=false
+if [ ! -r /sys/firmware/efi/efivars ]; then
+ efimode=false
+else
+ efimode=true
+fi
+#==================================================================================================#
+#--------------------------------------- COLORS DECLARATION ---------------------------------------#
+#==================================================================================================#
+#NBLACK="\033[0;30m"
+#NRED="\033[0;31m"
+#NGREEN="\033[0;32m"
+#NYELLOW="\033[0;33m"
+#NBLUE="\033[0;34m"
+#NMAGENTA="\033[0;35m"
+#NCYAN="\033[0;36m"
+#NWHITE="\033[0;37m"
+
+#BBLACK="\033[1;30m"
+BRED="\033[1;31m"
+BGREEN="\033[1;32m"
+BYELLOW="\033[1;33m"
+BBLUE="\033[1;34m"
+BMAGENTA="\033[1;35m"
+BCYAN="\033[1;36m"
+#BWHITE="\033[1;37m"
+
+END="\033[0;0m"
+#==================================================================================================#
+#--------------------------------------- SOME FUNCTIONS -------------------------------------------#
+#==================================================================================================#
+jo_goodbye() {
+ echo && echo
+ echo -e "${BCYAN}Thank you for using Joe's Arch Linux UEFI install script.${END}"
+ sleep 1
+ echo -e "${BCYAN}Aborting...${END}"
+ sleep 3
+ clear
+ exit
+}
+
+jo_pacstrap() {
+ echo
+ echo -e "${BCYAN}Installing ${BYELLOW}$1${END}"
+ if pacstrap /mnt/arch "$1" > /dev/null; then
+ echo -e "${BGREEN}$1 installed${END}"
+ fi
+}
+#==================================================================================================#
+#--------------------------------------------- START ----------------------------------------------#
+#==================================================================================================#
+clear
+echo -e "${BMAGENTA}\
+#============ WELCOME ============#
+# #
+# Welcome to Joe's #
+# ARCH LINUX #
+# UEFI INSTALL SCRIPT #
+# #
+# (press ${BYELLOW}[return] ${BMAGENTA}to begin...) #
+# #
+#=================================#${END}"
+read -r
+#==================================================================================================#
+#----------------------------------------- ERRORS CHECK -------------------------------------------#
+#==================================================================================================#
+clear
+echo -e "${BCYAN}Verifying that your are connected to the Internet, please wait...${END}"
+if ! wget -q --spider https://www.archlinux.org/; then
+ clear
+ echo -e "${BRED}\
+X=X=X=X=X=X=X ERROR X=X=X=X=X=X=X=X
+X X
+X It seems that your X
+X terminal is not X
+X connected to the Internet X
+X therefore Joe's script is X
+X forced to abort X
+X X
+X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X${END}"
+ sleep 6
+ jo_goodbye
+else
+ echo -e "${BGREEN}Success!${END}"
+ echo
+ echo -e "${BCYAN}Press ${BYELLOW}[retrun] ${BCYAN}key to continue${END}"
+ read -r
+fi
+#==================================================================================================#
+#------------------------------------------ DISK SETUP --------------------------------------------#
+#==================================================================================================#
+while [[ $answr != y && $answr != Y && $answr != yes && $answr != Yes && $answr != YES ]]; do
+ drvnm=""
+ swps=""
+ rts=""
+ clear
+ echo -e "${BMAGENTA}\
+#========= I. DISK SETUP =========#
+# #
+# Please choose wisely #
+# #
+# 1. Drive to be used #
+# #
+#=================================#${END}"
+ while [[ $drvnm == "" || $drvnm -gt $(lsblk | grep -c disk) || $drvnm -le 0 ]]; do
+ echo && echo
+ dn=$(lsblk | grep -c disk)
+ id=1
+ echo -e "${BBLUE}DISK | SIZE\n------+--------${END}"
+ lsblk | grep disk | awk '{print "\033[1;36m"$1 "\033[1;34m | ", "\033[1;33m"$4;}'
+ echo && echo
+ echo -e "${BCYAN}Please choose the ${BYELLOW}drive ${BCYAN}on which Arch Linux shoud be installed:${END}"
+ while [[ $dn != 0 ]]; do
+ echo -e "${BYELLOW}$id. $(lsblk | grep disk | awk '{print "\033[1;36m"$1"\033[0m";}' | sed -n "$id"p)"
+ ((dn--))
+ ((id++))
+ done
+ echo -n -e "${BYELLOW}> "
+ read -r drvnm
+ if [ "$drvnm" = "" ]; then
+ echo && echo
+ echo -e "${BRED}Can't be empty, retrying...${END}"
+ elif ! [[ $drvnm =~ $numregex ]]; then
+ echo && echo
+ echo -e "${BRED}Illegal value, please choose something reasonable. Retrying...${END}"
+ elif [ "$drvnm" -gt "$(lsblk | grep -c disk)" ]; then
+ echo && echo
+ echo -e "${BRED}Illegal value, please choose something reasonable. Retrying...${END}"
+ elif [ "$drvnm" -le 0 ]; then
+ echo && echo
+ echo -e "${BRED}Illegal value, please choose something reasonable. Retrying...${END}"
+ fi
+ done
+ drv="/dev/"$(lsblk | grep disk | awk '{print $1}' | sed -n "$drvnm"p)
+ clear
+ echo -e "${BMAGENTA}\
+#========= I. DISK SETUP =========#
+# #
+# Please choose wisely #
+# #
+# 2. swap partion size #
+# #
+#=================================#${END}"
+ while [ "$gogogo" = false ]; do
+ echo && echo
+ echo -e "${BCYAN}\
+Please enter your ${BYELLOW}swap partition ${BCYAN}disired size:
+__G"
+ echo -n -e "${BYELLOW}> "
+ read -r swps
+ if [[ $swps == "" ]]; then
+ echo && echo
+ echo -e "${BRED}Can't be empty, retrying...${END}"
+ gogogo=false
+ elif ! [[ $swps =~ $numregex ]]; then
+ echo && echo
+ echo -e "${BRED}Illegal value, please choose something reasonable. Retrying...${END}"
+ gogogo=false
+ else
+ gogogo=true
+ fi
+ done
+ gogogo=false
+ clear
+ echo -e "${BMAGENTA}\
+#========= I. DISK SETUP =========#
+# #
+# Please choose wisely #
+# #
+# 3. root partion size #
+# #
+#=================================#"
+ while [ "$gogogo" = false ]; do
+ echo && echo
+ echo -e "${BCYAN}\
+Please enter your ${BYELLOW}root partition ${BCYAN}disired size:
+__G"
+ echo -n -e "${BYELLOW}> "
+ read -r rts
+ if [[ $rts == "" ]]; then
+ echo && echo
+ echo -e "${BRED}Can't be empty, retrying...${END}"
+ gogogo=false
+ elif ! [[ $rts =~ $numregex ]]; then
+ echo && echo
+ echo -e "${BRED}Illegal value, please choose something reasonable. Retrying...${END}"
+ gogogo=false
+ else
+ gogogo=true
+ fi
+ done
+ gogogo=false
+ btsze="128M"
+ rtsze=$rts"G"
+ swpsze=$swps"G"
+ clear
+ echo -e "${BMAGENTA}\
+#============= CONFIRM THIS IS CORRECT ===============#
+# #
+# DRIVE TO USE: ${BCYAN}$drv ${BMAGENTA}#
+# #
+# /boot/efi > BOOT partition size: ${BYELLOW}$btsze ${BMAGENTA}#"
+if [ "$swps" -ge 10 ]; then
+ echo -e "# SWAP partition size: ${BYELLOW}$swpsze ${BMAGENTA}#"
+else
+ echo -e "# SWAP partition size: ${BYELLOW}$swpsze ${BMAGENTA}#"
+fi
+if [ "$rts" -ge 100 ]; then
+ echo -e "# / > ROOT partition size: ${BYELLOW}$rtsze ${BMAGENTA}#"
+elif [ "$rts" -ge 10 ]; then
+ echo -e "# / > ROOT partition size: ${BYELLOW}$rtsze ${BMAGENTA}#"
+else
+ echo -e "# / > ROOT partition size: ${BYELLOW}$rtsze ${BMAGENTA}#"
+fi
+echo -e "# /home > HOME partition size: ${BYELLOW}all that remains ${BMAGENTA}#
+# #
+#=====================================================#${END}"
+ echo && echo
+ echo -e "${BCYAN}Is that correct? [${BGREEN}y${BCYAN}/${BRED}N${BCYAN}]"
+ echo -n -e "${BYELLOW}> "
+ read -r answr
+ if [[ $answr != y && $answr != Y && $answr != yes && $answr != Yes && $answr != YES ]]; then
+ echo && echo
+ echo -e "${BCYAN}Retrying..."
+ echo
+ echo -e "Press ${BYELLOW}[retrun] ${BCYAN}key to continue${END}"
+ read -r
+ fi
+done
+
+answr="n"
+while [[ $answr != y && $answr != Y && $answr != yes && $answr != Yes && $answr != YES ]]; do
+ echo && echo
+ echo -e "${BRED}Disk ${BYELLOW}$drv ${BRED}will be wiped. Are you sure you want to continue? [${BGREEN}y${BRED}/${BRED}N${BRED}]${END}"
+ echo -n -e "${BRED}> "
+ read -r answr
+ if [[ $answr != y && $answr != Y && $answr != yes && $answr != Yes && $answr != YES ]]; then
+ jo_goodbye
+ fi
+done
+#==================================================================================================#
+#------------------------------------ USERS AND ROOT SETUP ----------------------------------------#
+#==================================================================================================#
+answr="n"
+
+while [[ $rtrtpwd != "$rtpwd" || $rtpwd == "" ]]; do
+ clear
+ echo -e "${BMAGENTA}\
+#======= II. USERS SETUP =========#
+# #
+# 1. root password #
+# #
+#=================================#${END}"
+ echo && echo
+ echo -e "${BCYAN}Enter your disired ${BYELLOW}root password ${BCYAN}(can't be empty):"
+ echo -n -e "${BYELLOW}> "
+ read -r -s rtpwd
+ echo && echo
+ echo -e "${BCYAN}Confirm ${BYELLOW}root password${BCYAN}:"
+ echo -n -e "${BYELLOW}> "
+ read -r -s rtrtpwd
+ if [[ $rtrtpwd != "$rtpwd" ]]; then
+ echo && echo
+ echo -e "${BRED}Password mismatch, retrying...${END}"
+ sleep 2
+ fi
+ if [[ $rtpwd = "" ]]; then
+ echo && echo
+ echo -e "${BRED}Password is empty, retrying...${END}"
+ sleep 2
+ fi
+done
+
+clear
+echo -e "${BMAGENTA}\
+#======= II. USERS SETUP =========#
+# #
+# 2. User add #
+# #
+#=================================#${END}"
+echo && echo
+echo -e "${BCYAN}Would you like to add a user to the system? (will automatically receive sudo rights) [${BGREEN}y${BCYAN}/${BRED}N${BCYAN}]"
+echo -n -e "${BYELLOW}> "
+read -r answr
+if [[ $answr == y || $answr == Y || $answr == yes || $answr == Yes || $answr == YES ]]; then
+ echo && echo
+ echo -e "${BCYAN}Enter your desired ${BYELLOW}username:"
+ echo -n -e "${BYELLOW}> "
+ read -r usr
+ isusr=true
+ usr=$(echo "$usr" | tr '[:upper:]' '[:lower:]')
+ echo && echo
+ while [[ $usrusrpwd != "$usrpwd" || $usrpwd == "" ]]; do
+ echo -e "${BCYAN}Enter your disired ${BYELLOW}password ${BCYAN}for ${BYELLOW}$usr${BCYAN} (can't be empty):"
+ echo -n -e "${BYELLOW}> "
+ read -r -s usrpwd
+ echo && echo
+ echo -e "${BCYAN}Confirm ${BYELLOW}user password:${BCYAN}"
+ echo -n -e "${BYELLOW}> "
+ read -r -s usrusrpwd
+ if [[ $usrusrpwd != "$usrpwd" ]]; then
+ echo && echo
+ echo -e "${BRED}Password mismatch, retrying...${END}"
+ sleep 2
+ fi
+ if [[ $usrpwd == "" ]]; then
+ echo && echo
+ echo -e "${BRED}Password is empty, retrying...${END}"
+ sleep 2
+ fi
+ done
+fi
+clear
+#==================================================================================================#
+#---------------------------------------- HOSTNAME SETUP ------------------------------------------#
+#==================================================================================================#
+echo -e "${BMAGENTA}\
+#======= II. USERS SETUP =========#
+# #
+# 3. hostname #
+# #
+#=================================#${END}"
+while [[ $hstnm == "" ]]; do
+ echo && echo
+ echo -e "${BCYAN}Enter your disired ${BYELLOW}hostname ${BCYAN}for this terminal (can't be empty):"
+ echo -n -e "${BYELLOW}> "
+ read -r hstnm
+ if [[ $hstnm == "" ]]; then
+ echo && echo
+ echo -e "${BRED}Hostname is empty, retrying...${END}"
+ sleep 2
+ fi
+done
+answr="n"
+clear
+#==================================================================================================#
+#------------------------------------ LTS AND XORG SETUP ------------------------------------------#
+#==================================================================================================#
+echo -e "${BMAGENTA}\
+#====== III. EXTRAS SETUP ========#
+# #
+# 1. More #
+# #
+#=================================#${END}"
+echo && echo
+echo -e "${BCYAN}Do you wish to install an ${BYELLOW}LTS Kernel${BCYAN}? [${BGREEN}Y${BCYAN}/${BRED}n${BCYAN}]"
+echo -n -e "${BYELLOW}> "
+read -r answr
+if [[ $answr == n || $answr == N || $answr == no || $answr == No || $answr == NO ]]; then
+ ltskern=false
+fi
+answr=""
+echo && echo
+echo -e "${BCYAN}Do you wish to install ${BYELLOW}Xorg ${BCYAN}and ${BYELLOW}gst-plugins ${BCYAN}as well? [${BGREEN}y${BCYAN}/${BRED}N${BCYAN}]"
+echo -n -e "${BYELLOW}> "
+read -r answr
+if [[ $answr == y || $answr == Y || $answr == yes || $answr == Yes || $answr == YES ]]; then
+ somemore=true
+fi
+clear
+answr=""
+#==================================================================================================#
+#-------------------------------------- THE ACTUAL INSTALL ----------------------------------------#
+#==================================================================================================#
+#================================================================#
+#--------------------------- NTP DATE ---------------------------#
+#================================================================#
+clear
+echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 1. Setting date #
+# via ntp #
+# #
+#=================================#${END}"
+timedatectl set-ntp true > /dev/null
+sleep 2
+#================================================================#
+#------------------------- WIPING DISK --------------------------#
+#================================================================#
+clear
+echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 2. Partitionning #
+# disk $drv #
+# #
+#=================================#${END}"
+echo && echo
+echo -e "${BCYAN}Wiping disk. This step may take a while.${END}"
+basepartc=$(lsblk "$drv" | grep -c part)
+if [ "$basepartc" -ge 1 ]; then
+ i=1
+ while [[ $i -le $basepartc ]]; do
+ towipe=$(lsblk "$drv" | grep part | awk '{print $1}' | rev | cut -c -1 | rev | awk "NR==$i")
+ echo -e "${BCYAN}Wiping $drv$towipe...${END}"
+ dd if=/dev/zero of="$drv$towipe" bs=1M status=progress > /dev/null 2>&1
+ ((i++))
+ done
+else
+ echo -e "${BCYAN}Wiping $drv...${END}"
+ dd if=/dev/zero of="$drv" bs=1M status=progress > /dev/null 2>&1
+fi
+wipefs --all --force "$drv"
+echo && echo
+echo -e "${BGREEN}Wiping complete.${END}"
+#================================================================#
+#--------------------- PARTITIONING DISK ------------------------#
+#================================================================#
+if [ "$efimode" = true ]; then
+ fdisk "$drv" << FDISK_EFI_INPUT
+g
+n
+1
+
++$btsze
+n
+2
+
++$swpsze
+n
+3
+
++$rtsze
+n
+4
+
+
+t
+2
+19
+w
+FDISK_EFI_INPUT
+else
+ fdisk "$drv" << FDISK_BIOS_INPUT
+o
+n
+p
+1
+
++$btsze
+n
+p
+2
+
++$swpsze
+n
+p
+3
+
++$rtsze
+n
+p
+
+
+w
+FDISK_BIOS_INPUT
+fi
+if [ "$efimode" = true ]; then
+ mkfs.fat -F32 "$drv""1" > /dev/null
+else
+ mkfs.ext2 "$drv""1" > /dev/null
+fi
+mkswap "$drv""2" > /dev/null
+mkfs.ext4 "$drv""3" > /dev/null
+mkfs.ext4 "$drv""4" > /dev/null
+sleep 2
+clear
+#================================================================#
+#---------------------- MOUNT PARTITIONS ------------------------#
+#================================================================#
+echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 3. Mounting partitions #
+# #
+#=================================#${END}"
+mkdir /mnt/arch > /dev/null
+swapon "$drv""2" > /dev/null
+mount "$drv""3" /mnt/arch > /dev/null
+mkdir /mnt/arch/boot > /dev/null
+mkdir /mnt/arch/boot/efi > /dev/null
+if [ "$efimode" = true ]; then
+ mount "$drv""1" /mnt/arch/boot/efi > /dev/null
+else
+ mount "$drv""1" /mnt/arch/boot > /dev/null
+fi
+mkdir /mnt/arch/home > /dev/null
+mount "$drv""4" /mnt/arch/home > /dev/null
+sleep 2
+clear
+#================================================================#
+#------------------------ BASE DOWNLOAD -------------------------#
+#================================================================#
+echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 4. Downloading base packages #
+# #
+# Please be patient, #
+# this may take a while #
+# #
+#=================================#${END}"
+echo
+jo_pacstrap base
+jo_pacstrap base-devel
+jo_pacstrap pacman-contrib
+echo && echo
+echo -e "${BGREEN}Base packages installed${END}"
+sleep 4
+clear
+#================================================================#
+#----------------------- UTILS DOWNLOAD -------------------------#
+#================================================================#
+echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 5. Installing useful packages #
+# so you don't have to #
+# #
+#=================================#${END}"
+echo
+jo_pacstrap zip
+jo_pacstrap unzip
+jo_pacstrap p7zip
+jo_pacstrap networkmanager
+jo_pacstrap vim
+jo_pacstrap mc
+jo_pacstrap alsa-utils
+jo_pacstrap syslog-ng
+jo_pacstrap mtools
+jo_pacstrap dostools
+jo_pacstrap lsb-release
+jo_pacstrap ntfs-3g
+jo_pacstrap exfat-utils
+jo_pacstrap git
+jo_pacstrap zsh
+jo_pacstrap ntp
+jo_pacstrap cronie
+jo_pacstrap grub
+jo_pacstrap os-prober
+jo_pacstrap efibootmgr
+jo_pacstrap mkinitcpio
+if [ "$ltskern" = true ]; then
+ jo_pacstrap linux-lts
+ jo_pacstrap linux-lts-headers
+else
+ jo_pacstrap linux
+ linux-headers
+fi
+echo && echo
+echo -e "${BGREEN}Utils installed.${END}"
+sleep 4
+#================================================================#
+#------------------------ EXTRA DOWNLOAD ------------------------#
+#================================================================#
+if [ "$somemore" = true ]; then
+ clear
+ echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 5.5 Installing #
+# some more utils #
+# (${BYELLOW}gst plugins${BMAGENTA}, ${BYELLOW}Xorg...) ${BMAGENTA}#
+# #
+#=================================#${END}"
+ echo
+ jo_pacstrap gst-plugins-{base,good,bad,ugly}
+ jo_pacstrap gst-libav
+ jo_pacstrap xorg-{server,xinit,apps}
+ jo_pacstrap xf86-input-{mouse,keyboard}
+ jo_pacstrap xdg-user-dirs
+ jo_pacstrap mesa
+ echo && echo
+ echo -e "${BGREEN}Extra packages installed.${END}"
+ sleep 4
+fi
+if lscpu | grep -q Intel; then
+ intelamdcpu="intel"
+elif lscpu | grep -q AMD; then
+ intelamdcpu="amd"
+fi
+if lspci | grep -q Intel; then
+ intelamdgpu="intel"
+elif lspci | grep -q AMD; then
+ intelamdgpu="amd"
+fi
+#================================================================#
+#--------------------- GPU DRIVERS DOWNLOAD ---------------------#
+#================================================================#
+if [[ $intelamdgpu == "intel" && "$somemore" = true ]]; then
+ clear
+ echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 5.5 Installing #
+# some more utils #
+# (${BYELLOW}xf86-video${BMAGENTA}) #
+# #
+#=================================#${END}"
+ echo
+ jo_pacstrap xf86-video-intel
+fi
+sleep 2
+if [[ $intelamdgpu == "amd" && "$somemore" = true ]]; then
+ sleep 2
+ clear
+ echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 5.5 Installing #
+# some more utils #
+# (${BYELLOW}xf86-video${BMAGENTA}) #
+# #
+#=================================#${END}"
+ echo
+ jo_pacstrap xf86-video-amdgpu
+fi
+#================================================================#
+#-------------------- CPU MICROCODE DOWNLOAD --------------------#
+#================================================================#
+if [[ $intelamdcpu == "intel" ]]; then
+ clear
+ echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 6. Installing CPU #
+# microcode #
+# #
+#=================================#${END}"
+ echo
+ jo_pacstrap intel-ucode
+fi
+if [[ $intelamdcpu == "amd" ]]; then
+ clear
+ echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 6. Installing CPU #
+# microcode #
+# #
+#=================================#${END}"
+ echo
+ jo_pacstrap amd-ucode
+fi
+sleep 2
+#================================================================#
+#------------------------ FSTAB CONFIG -------------------------#
+#================================================================#
+clear
+echo -e "${BMAGENTA}\
+#====== IV. INSTALLING LINUX =====#
+# #
+# 7. Generating fstab #
+# #
+#=================================#${END}"
+genfstab -U -p /mnt/arch > /mnt/arch/etc/fstab
+sleep 2
+#================================================================#
+#------------------------- ARCH-CHROOT --------------------------#
+#================================================================#
+clear
+echo -e "${BMAGENTA}\
+#====== V. CONFIGURING LINUX =====#
+# #
+# 1. Now changing root #
+# #
+#=================================#${END}"
+echo -e "${BBLUE}"
+sleep 2
+arch-chroot /mnt/arch << ARCH_CHROOT_CMDS
+ clear
+ #===== V. CONFIGURING LINUX ======#
+ # #
+ # 2. Setting time zone #
+ # to Paris, France, #
+ # for this is my time zone. #
+ # Change this later accordingly #
+ # to your own time zone #
+ # (Joe didn't find a quick #
+ # and easy way to ask you #
+ # about your time zone, #
+ # Joe hopes your can understand) #
+ # #
+ #=================================#
+ ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
+ sleep 8
+ clear
+ #===== V. CONFIGURING LINUX ======#
+ # #
+ # 3. Setting hardware clock #
+ # and ntp again #
+ # #
+ #=================================#
+ hwclock --systohc
+ sleep 1
+ clear
+ #===== V. CONFIGURING LINUX ======#
+ # #
+ # 4. Localization #
+ # (en_US.UTF-8) #
+ # #
+ #=================================#
+ sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
+ locale-gen
+ echo "LANG=en_US.UTF-8" > /etc/locale.conf
+ sleep 2
+ clear
+ #===== V. CONFIGURING LINUX ======#
+ # #
+ # 5. Setting hostname #
+ # #
+ #=================================#
+ echo "$hstnm" > /etc/hostname
+ echo "127.0.0.1 localhost" > /etc/hosts
+ echo "::1 localhost" >> /etc/hosts
+ echo "127.0.1.1 $hstnm.localdomain $hstnm" >> /etc/hosts
+ sleep 2
+ clear
+ #===== V. CONFIGURING LINUX ======#
+ # #
+ # 6. Setting root password #
+ # #
+ #=================================#
+ passwd
+$rtpwd
+$rtpwd
+ systemctl enable NetworkManager
+ sleep 2
+ clear
+ #===== V. CONFIGURING LINUX ======#
+ # #
+ # 7. journald stuff #
+ # #
+ #=================================#
+ sed -i 's/#ForwardToSyslog=no/ForwardToSyslog=yes/' /etc/systemd/journald.conf
+ sleep 2
+ARCH_CHROOT_CMDS
+if [ "$isusr" = true ]; then
+arch-chroot /mnt/arch << ARCH_CHROOT_CMDS
+ sleep 2
+ clear
+ #===== V. CONFIGURING LINUX ======#
+ # #
+ # 9. Generating user #
+ # #
+ #=================================#
+ useradd -m -g wheel -s /bin/zsh $usr
+ passwd $usr
+$usrpwd
+$usrpwd
+ sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers
+ sleep 2
+ exit
+ARCH_CHROOT_CMDS
+fi
+if [ "$ltskern" = false ]; then
+ arch-chroot /mnt/arch << ARCH_CHROOT_CMDS
+ clear
+ #===== VI. CONFIGURING BOOT ======#
+ # #
+ # 1. Configuring the Kernel #
+ # #
+ #=================================#
+ mkinitcpio -p linux
+ARCH_CHROOT_CMDS
+else
+ arch-chroot /mnt/arch << ARCH_CHROOT_CMDS
+ clear
+ #===== VI. CONFIGURING BOOT ======#
+ # #
+ # 1. Configuring the Kernel #
+ # #
+ #=================================#
+ mkinitcpio -p linux-lts
+ARCH_CHROOT_CMDS
+fi
+echo -e "${BBLUE}"
+sleep 2
+if [ "$efimode" = true ]; then
+arch-chroot /mnt/arch << ARCH_CHROOT_EFI_GRUB_CMDS
+ clear
+ #===== VI. CONFIGURING BOOT ======#
+ # #
+ # 2. Configuring GRUB #
+ # #
+ #=================================#
+ grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi --recheck
+ mkdir -p /boot/grub
+ grub-mkconfig -o /boot/grub/grub.cfg
+ mkdir -p /boot/efi/EFI/BOOT
+ cp /boot/efi/EFI/GRUB/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
+ echo "bcf boot add 1 fs0:\\EFI\\GRUB\\grubx64.efi \"GRUB bootloader\"" > /boot/efi/startup.nsh
+ echo "exit" >> /boot/efi/startup.nsh
+ sleep 4
+ exit
+ARCH_CHROOT_EFI_GRUB_CMDS
+else
+arch-chroot /mnt/arch << ARCH_CHROOT_BIOS_GRUB_CMDS
+ clear
+ #===== VI. CONFIGURING BOOT ======#
+ # #
+ # 2. Configuring GRUB #
+ # #
+ #=================================#
+ grub-install --target=i386-pc $drv
+ grub-mkconfig -o /boot/grub/grub.cfg
+ sleep 4
+ exit
+ARCH_CHROOT_BIOS_GRUB_CMDS
+fi
+echo && echo
+clear
+echo -e "${BMAGENTA}\
+#========= ${BGREEN}WORK COMPLETE ${BMAGENTA}=========#
+# #
+# Your system should now #
+# be installed. #
+# Thank your for using Joe's #
+# ARCH LINUX #
+# UEFI INSTALL UTILITY #
+# #
+# Your system will now reboot #
+# #
+#=================================#${END}"
+echo && echo
+sleep 10
+umount -R /mnt/arch
+reboot