Browse Source

Initial commit, not ready for use yet

main
Yigit Colakoglu 4 years ago
commit
80be8e20e3
6 changed files with 921 additions and 0 deletions
  1. +24
    -0
      README.md
  2. +20
    -0
      arch/pkg.list
  3. +300
    -0
      arch/stage2.sh
  4. +270
    -0
      artix/chroot.sh
  5. +25
    -0
      artix/pkg.list
  6. +282
    -0
      yaass.sh

+ 24
- 0
README.md View File

@ -0,0 +1,24 @@
# YAASS — Yeet's Automatic Arch Setup Scripts
YAASS is a small project that aims to make installing arch & artix linux easier
and straight-forward. It tries not to make too many assumptions on what the user
wants to do with their setup and prompts for input when there is a choice that
needs to be made. However, it provides a set of default settings that work just fine.
It doesn't install any packages besides some that **I** believe is essential like
connman (Network Manager), git, vim, tmux and xorg.
## Usage
You just need to download the yass.sh and run it. Assuming you already have an
installation usb and booted from it of course. If you want to save a few clicks,
you can do:
```sh
bash -C <(https://yigitcolakoglu.com/auto-yass.sh)
```
## Distros Currently Supported
* Arch Linux
* Artix Linux (OpenRC)

+ 20
- 0
arch/pkg.list View File

@ -0,0 +1,20 @@
connman
efibootmgr
refind
dhcpcd
python
git
vim
pulseaudio
xorg
xorg-server
xorg-xinit
xorg-apps
xf86-video-intel
sudo
cronie
wget
curl
dash
mksh
acpi

+ 300
- 0
arch/stage2.sh View File

@ -0,0 +1,300 @@
#!/bin/bash
export NC='\033[0m'
export RED='\033[0;31m'
export GREEN='\033[0;32m'
export ORANGE='\033[0;33m'
export BLUE='\033[0;34m'
export PURPLE='\033[0;35m'
export CYAN='\033[0;36m'
export LIGHTGRAY='\033[0;37m'
export DARKGRAY='\033[1;30m'
export LIGHTRED='\033[1;31m'
export LIGHTGREEN='\033[1;32m'
export YELLOW='\033[1;33m'
export LIGHTBLUE='\033[1;34m'
export LIGHTPURPLE='\033[1;35m'
export LIGHTCYAN='\033[1;36m'
export WHITE='\033[1;37m'
verbose=0
info(){
printf "[\e[32mINFO\e[0m]:%s\n" "$1"
}
debug(){
if [ $verbose ]; then
printf "[\e[33mDEBUG\e[0m]:%s\n" "$1"
fi
}
error(){
printf "[\e[31mERROR\e[0m]:%s\n" "$1"
}
prompt(){
printf "[\e[35mPROMPT\e[0m]: %s" "$1"
read -r ans
printf "%s" "$ans"
}
install_deps(){
info "Installing dependencies"
sudo pacman -Sy --needed --noconfirm git tmux 2> /dev/null > /dev/null
}
banner(){
echo "${CYAN}
dP dP .d888888 .d888888 .d88888b .d88888b
Y8. .8P d8' 88 d8' 88 88. \"' 88. \"'
Y8aa8P 88aaaaa88a 88aaaaa88a \`Y88888b. \`Y88888b.
88 88 88 88 88 \`8b \`8b
88 88 88 88 88 d8' .8P d8' .8P
dP 88 88 88 88 Y88888P Y88888P
${NC}"
echo " ${PURPLE}Yeet's Automated Arch Setup Script${NC}"
}
clear
boot=$1
root=$2
swap=$3
if [ ! "$(wc -l /install/device)" = "3" ]; then
home=$4
fi
ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
hwclock --systohc
echo -e "en_US.UTF-8 UTF-8\ntr_TR.UTF-8 UTF-8" > /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
if [ ! -f "/tmp/.blackarch" ]; then
curl https://blackarch.org/strap.sh > /tmp/strap.sh
chmod +x /tmp/strap.sh
/tmp/strap.sh
if [ -f "/install/artix" ]; then
echo -e "\n[multilib]\nInclude = /etc/pacman.d/mirrorlist-arch" >> /etc/pacman.conf
echo -e "\n[lib32]\nInclude = /etc/pacman.d/mirrorlist\n\n[options]\nILoveCandy\nTotalDownload\nColor" >> /etc/pacman.conf
else
echo -e "\n[multilib]\nInclude = /etc/pacman.d/mirrorlist\n\n[options]\nILoveCandy\nTotalDownload\nColor" >> /etc/pacman.conf
fi
echo -n "Are you going to use a flexo server?(y/N): "
read flexo
if [ "$flexo" = "y" ]; then
echo -n "Please enter ip address of flexo server: "
read flexo_ip
echo -e "\nServer = http://$flexo_ip:7878/\$repo/os/\$arch\n" >> /etc/pacman.d/mirrorlist
fi
pacman -Syy
echo -n "Did any errors occur?(y/N): "
read errors
if [ "$errors" = "y" ]; then
echo "Dropping you into a shell so that you can fix them, once you quit the shell, the installation will continue from where you left off."
bash
fi
touch /tmp/.blackarch
fi
clear
echo "Please enter hostname: "
read hostname
echo $hostname > /etc/hostname
echo "Set password for root: "
passwd root
echo "Please enter name for regular user:"
read username
useradd -m $username
echo "Set password for user $username: "
passwd $username
usermod -aG wheel $username
echo -e "127.0.0.1 localhost\n::1 localhost\n127.0.0.1 $hostname.localdomain $hostname" > /etc/hosts
if [ -f "/install/encrypted" ]; then
cat << EOF > /etc/initcpio/hooks/openswap
run_hook ()
{
x=0;
while [ ! -b /dev/mapper/root ] && [ \$x -le 10 ]; do
x=$((x+1))
sleep .2
done
mkdir crypto_key_device
mount /dev/mapper/root crypto_key_device
cryptsetup open --key-file crypto_key_device/root/.keys/swap-keyfile $swap swap
umount crypto_key_device
}
EOF
cat << EOF > /etc/initcpio/install/openswap
build ()
{
add_runscript
}
help ()
{
cat<<HELPEOF
This opens the swap encrypted partition $swap in /dev/mapper/swap
HELPEOF
}
EOF
if [ ! "$home" = "" ]; then
cat << EOF > /etc/initcpio/hooks/openhome
run_hook ()
{
x=0;
while [ ! -b /dev/mapper/root ] && [ \$x -le 10 ]; do
x=$((x+1))
sleep .2
done
mkdir crypto_key_device
mount /dev/mapper/root crypto_key_device
cryptsetup open --key-file crypto_key_device/root/.keys/home-keyfile $home home
umount crypto_key_device
}
EOF
cat << EOF > /etc/initcpio/install/openhome
build ()
{
add_runscript
}
help ()
{
cat<<HELPEOF
This opens the swap encrypted partition $home in /dev/mapper/home
HELPEOF
}
EOF
cat << EOF > /etc/mkinitcpio.conf
MODULES=(vfat i915)
BINARIES=()
FILES=()
HOOKS=(base udev plymouth autodetect keyboard keymap consolefont modconf block plymouth-encrypt openswap openhome resume filesystems fsck)
EOF
else
cat << EOF > /etc/mkinitcpio.conf
MODULES=(vfat i915)
BINARIES=()
FILES=()
HOOKS=(base udev plymouth autodetect keyboard keymap consolefont modconf block plymouth-encrypt openswap resume filesystems fsck)
EOF
fi
else
cat << EOF > /etc/mkinitcpio.conf
MODULES=(vfat i915)
BINARIES=()
FILES=()
HOOKS=(base udev plymouth autodetect keyboard keymap consolefont modconf block plymouth resume filesystems fsck)
EOF
fi
pacman -Syu --noconfirm $(cat /install/packages.base | xargs)
refind-install
if [ -f "/install/encrypted" ]; then
line=1
blkid | while IFS= read -r i; do
echo "$line: $i"
((line=line+1))
done
echo -n "Please select the device you will save the LUKS key to: "
read keydev
uuid=$(blkid | sed -n 's/.*UUID=\"\([^\"]*\)\".*/\1/p' | sed -n "$keydev"p)
cat << EOF > /boot/refind_linux.conf
"Boot with encryption" "root=/dev/mapper/root resume=/dev/mapper/swap cryptdevice=UUID=$(blkid -s UUID -o value $root):root:allow-discards cryptkey=UUID=$uuid:vfat:key.yeet rw loglevel=3 quiet splash"
EOF
clear
else
cat << EOF > /boot/refind_linux.conf
"Boot without encryption" "root=UUID=$(blkid -s UUID -o value $root) resume=UUID=$(blkid -s UUID -o value $swap) rw loglevel=3 quiet splash"
EOF
fi
mkdir -p /etc/sudoers.d
echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nopwd
sudo -u $username bash -c "git clone https://aur.archlinux.org/yay.git /tmp/yay"
sudo -u $username bash -c "(cd /tmp/yay; makepkg --noconfirm -si)"
sudo -u $username bash -c "yay --noconfirm -S plymouth"
if [ -f "/install/artix" ]; then
sudo -u $username bash -c "yay --noconfirm -S plymouth-openrc-plugin"
fi
clear
echo -n "Would you like to automatically install my dotfiles?(y/N): "
read dotfiles
if [ "$dotfiles" = "y" ]; then
pacman -R --noconfirm vim
sudo -u $username bash -c "git clone --recurse-submodules https://github.com/theFr1nge/dotfiles.git ~/.dotfiles"
sudo -u $username bash -c "(cd ~/.dotfiles; ./install.sh)"
clear
fi
git clone https://github.com/adi1090x/plymouth-themes.git /tmp/pthemes
cat << EOF > /etc/plymouth/plymouthd.conf
[Daemon]
Theme=sphere
ShowDelay=0
DeviceTimeout=8
EOF
cp -r /tmp/pthemes/pack_4/sphere /usr/share/plymouth/themes
clear
echo -e "/boot/EFI/refind\n2\n2" | sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/bobafetthotmail/refind-theme-regular/master/install.sh)"
if [ -f "/install/artix" ]; then
sudo rc-update add cronie
sudo rc-update add acpi
sudo rc-update add dbus
sudo rc-update add connmand
sudo rc-update add syslog-ng
else
systemctl enable connman
systemctl enable cronie
fi
clear
mkinitcpio -P
if [ -f "/install/encrypted" ]; then
vim /etc/fstab
fi
pacman --noconfirm -R nano # uninstall nano, eww
clear
rm -rf /etc/sudoers.d/nopwd
echo "Defaults env_reset,pwfeedback" > /etc/sudoers.d/wheel
echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers.d/wheel
echo "$username $hostname =NOPASSWD: /sbin/shutdown ,/sbin/halt,/sbin/reboot,/sbin/hibernate, /bin/pacman -Syyuw --noconfirm" >> /etc/sudoers.d/wheel
ln -sf /bin/dash /bin/sh
clear
echo "SETUP COMPLETE"
bash
rm -rf /install

+ 270
- 0
artix/chroot.sh View File

@ -0,0 +1,270 @@
#!/bin/bash
ln -sf /bin/bash /bin/sh
if [ ! -f "/install/device" ]; then
mkdir -p /install
echo "Now you will specify the partitions you have created"
echo "Please enter the suffix for each partition. For Ex:"
echo "1 if boot partition is /dev/sda1 or p1 if boot is on /dev/nvme0n1p1 and the disk is /dev/nvme0n1"
echo -n "Please enter boot partition suffix: "
read boot_p
boot=$device$boot_p
echo -n "Please enter root partition suffix: "
read root_p
root=$device$root_p
echo -n "Please enter swap partition suffix: "
read swap_p
swap=$device$swap_p
echo -n "Did you create a home partition as well?(y/N): "
read home_s
if [ "$home_s" = "y" ]; then
echo -n "Please enter home partition suffix: "
read home_p
home=$device$home_p
echo -en "$boot\n$root\n$swap\n$home" > /install/device
else
echo -en "$boot\n$root\n$swap" > /install/device
fi
fi
clear
boot=$(head -n 1 /install/device | tail -n 1)
root=$(head -n 2 /install/device | tail -n 1)
swap=$(head -n 3 /install/device | tail -n 1)
if [ ! "$(wc -l /install/device)" = "3" ]; then
home=$(head -n 4 /install/device | tail -n 1)
fi
ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
hwclock --systohc
echo -e "en_US.UTF-8 UTF-8\ntr_TR.UTF-8 UTF-8" > /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
if [ ! -f "/tmp/.blackarch" ]; then
curl https://blackarch.org/strap.sh > /tmp/strap.sh
chmod +x /tmp/strap.sh
/tmp/strap.sh
if [ -f "/install/artix" ]; then
echo -e "\n[multilib]\nInclude = /etc/pacman.d/mirrorlist-arch" >> /etc/pacman.conf
echo -e "\n[lib32]\nInclude = /etc/pacman.d/mirrorlist\n\n[options]\nILoveCandy\nTotalDownload\nColor" >> /etc/pacman.conf
else
echo -e "\n[multilib]\nInclude = /etc/pacman.d/mirrorlist\n\n[options]\nILoveCandy\nTotalDownload\nColor" >> /etc/pacman.conf
fi
echo -n "Are you going to use a flexo server?(y/N): "
read flexo
if [ "$flexo" = "y" ]; then
echo -n "Please enter ip address of flexo server: "
read flexo_ip
echo -e "\nServer = http://$flexo_ip:7878/\$repo/os/\$arch\n" >> /etc/pacman.d/mirrorlist
fi
pacman -Syy
echo -n "Did any errors occur?(y/N): "
read errors
if [ "$errors" = "y" ]; then
echo "Dropping you into a shell so that you can fix them, once you quit the shell, the installation will continue from where you left off."
bash
fi
touch /tmp/.blackarch
fi
clear
echo "Please enter hostname: "
read hostname
echo $hostname > /etc/hostname
echo "Set password for root: "
passwd root
echo "Please enter name for regular user:"
read username
useradd -m $username
echo "Set password for user $username: "
passwd $username
usermod -aG wheel $username
echo -e "127.0.0.1 localhost\n::1 localhost\n127.0.0.1 $hostname.localdomain $hostname" > /etc/hosts
if [ -f "/install/encrypted" ]; then
cat << EOF > /etc/initcpio/hooks/openswap
run_hook ()
{
x=0;
while [ ! -b /dev/mapper/root ] && [ \$x -le 10 ]; do
x=$((x+1))
sleep .2
done
mkdir crypto_key_device
mount /dev/mapper/root crypto_key_device
cryptsetup open --key-file crypto_key_device/root/.keys/swap-keyfile $swap swap
umount crypto_key_device
}
EOF
cat << EOF > /etc/initcpio/install/openswap
build ()
{
add_runscript
}
help ()
{
cat<<HELPEOF
This opens the swap encrypted partition $swap in /dev/mapper/swap
HELPEOF
}
EOF
if [ ! "$home" = "" ]; then
cat << EOF > /etc/initcpio/hooks/openhome
run_hook ()
{
x=0;
while [ ! -b /dev/mapper/root ] && [ \$x -le 10 ]; do
x=$((x+1))
sleep .2
done
mkdir crypto_key_device
mount /dev/mapper/root crypto_key_device
cryptsetup open --key-file crypto_key_device/root/.keys/home-keyfile $home home
umount crypto_key_device
}
EOF
cat << EOF > /etc/initcpio/install/openhome
build ()
{
add_runscript
}
help ()
{
cat<<HELPEOF
This opens the swap encrypted partition $home in /dev/mapper/home
HELPEOF
}
EOF
cat << EOF > /etc/mkinitcpio.conf
MODULES=(vfat i915)
BINARIES=()
FILES=()
HOOKS=(base udev plymouth autodetect keyboard keymap consolefont modconf block plymouth-encrypt openswap openhome resume filesystems fsck)
EOF
else
cat << EOF > /etc/mkinitcpio.conf
MODULES=(vfat i915)
BINARIES=()
FILES=()
HOOKS=(base udev plymouth autodetect keyboard keymap consolefont modconf block plymouth-encrypt openswap resume filesystems fsck)
EOF
fi
else
cat << EOF > /etc/mkinitcpio.conf
MODULES=(vfat i915)
BINARIES=()
FILES=()
HOOKS=(base udev plymouth autodetect keyboard keymap consolefont modconf block plymouth resume filesystems fsck)
EOF
fi
pacman -Syu --noconfirm $(cat /install/packages.base | xargs)
refind-install
if [ -f "/install/encrypted" ]; then
line=1
blkid | while IFS= read -r i; do
echo "$line: $i"
((line=line+1))
done
echo -n "Please select the device you will save the LUKS key to: "
read keydev
uuid=$(blkid | sed -n 's/.*UUID=\"\([^\"]*\)\".*/\1/p' | sed -n "$keydev"p)
cat << EOF > /boot/refind_linux.conf
"Boot with encryption" "root=/dev/mapper/root resume=/dev/mapper/swap cryptdevice=UUID=$(blkid -s UUID -o value $root):root:allow-discards cryptkey=UUID=$uuid:vfat:key.yeet rw loglevel=3 quiet splash"
EOF
clear
else
cat << EOF > /boot/refind_linux.conf
"Boot without encryption" "root=UUID=$(blkid -s UUID -o value $root) resume=UUID=$(blkid -s UUID -o value $swap) rw loglevel=3 quiet splash"
EOF
fi
mkdir -p /etc/sudoers.d
echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nopwd
sudo -u $username bash -c "git clone https://aur.archlinux.org/yay.git /tmp/yay"
sudo -u $username bash -c "(cd /tmp/yay; makepkg --noconfirm -si)"
sudo -u $username bash -c "yay --noconfirm -S plymouth"
if [ -f "/install/artix" ]; then
sudo -u $username bash -c "yay --noconfirm -S plymouth-openrc-plugin"
fi
clear
echo -n "Would you like to automatically install my dotfiles?(y/N): "
read dotfiles
if [ "$dotfiles" = "y" ]; then
pacman -R --noconfirm vim
sudo -u $username bash -c "git clone --recurse-submodules https://github.com/theFr1nge/dotfiles.git ~/.dotfiles"
sudo -u $username bash -c "(cd ~/.dotfiles; ./install.sh)"
clear
fi
git clone https://github.com/adi1090x/plymouth-themes.git /tmp/pthemes
cat << EOF > /etc/plymouth/plymouthd.conf
[Daemon]
Theme=sphere
ShowDelay=0
DeviceTimeout=8
EOF
cp -r /tmp/pthemes/pack_4/sphere /usr/share/plymouth/themes
clear
echo -e "/boot/EFI/refind\n2\n2" | sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/bobafetthotmail/refind-theme-regular/master/install.sh)"
if [ -f "/install/artix" ]; then
sudo rc-update add cronie
sudo rc-update add acpi
sudo rc-update add dbus
sudo rc-update add connmand
sudo rc-update add syslog-ng
else
systemctl enable connman
systemctl enable cronie
fi
clear
mkinitcpio -P
if [ -f "/install/encrypted" ]; then
vim /etc/fstab
fi
pacman --noconfirm -R nano # uninstall nano, eww
clear
rm -rf /etc/sudoers.d/nopwd
echo "Defaults env_reset,pwfeedback" > /etc/sudoers.d/wheel
echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers.d/wheel
echo "$username $hostname =NOPASSWD: /sbin/shutdown ,/sbin/halt,/sbin/reboot,/sbin/hibernate, /bin/pacman -Syyuw --noconfirm" >> /etc/sudoers.d/wheel
ln -sf /bin/dash /bin/sh
clear
echo "SETUP COMPLETE"
bash
rm -rf /install

+ 25
- 0
artix/pkg.list View File

@ -0,0 +1,25 @@
efibootmgr
refind
python
git
vim
pulseaudio
xorg
xorg-server
xorg-xinit
xorg-apps
xf86-video-intel
sudo
wget
curl
dash
mksh
acpi
dbus
syslog-ng
connman
avahi-openrc
acpi-openrc
dbus-openrc
syslog-ng-openrc
connman-openrc

+ 282
- 0
yaass.sh View File

@ -0,0 +1,282 @@
#!/bin/bash
export NC='\033[0m'
export RED='\033[0;31m'
export GREEN='\033[0;32m'
export ORANGE='\033[0;33m'
export BLUE='\033[0;34m'
export PURPLE='\033[0;35m'
export CYAN='\033[0;36m'
export LIGHTGRAY='\033[0;37m'
export DARKGRAY='\033[1;30m'
export LIGHTRED='\033[1;31m'
export LIGHTGREEN='\033[1;32m'
export YELLOW='\033[1;33m'
export LIGHTBLUE='\033[1;34m'
export LIGHTPURPLE='\033[1;35m'
export LIGHTCYAN='\033[1;36m'
export WHITE='\033[1;37m'
verbose=0
info(){
printf "[\e[32mINFO\e[0m]:%s\n" "$1"
}
debug(){
if [ $verbose ]; then
printf "[\e[33mDEBUG\e[0m]:%s\n" "$1"
fi
}
error(){
printf "[\e[31mERROR\e[0m]:%s\n" "$1"
}
prompt(){
printf "[\e[35mPROMPT\e[0m]: %s" "$1"
read -r ans
printf "%s" "$ans"
}
install_deps(){
info "Installing dependencies"
sudo pacman -Sy --needed --noconfirm git tmux 2> /dev/null > /dev/null
}
banner(){
echo "${CYAN}
dP dP .d888888 .d888888 .d88888b .d88888b
Y8. .8P d8' 88 d8' 88 88. \"' 88. \"'
Y8aa8P 88aaaaa88a 88aaaaa88a \`Y88888b. \`Y88888b.
88 88 88 88 88 \`8b \`8b
88 88 88 88 88 d8' .8P d8' .8P
dP 88 88 88 88 Y88888P Y88888P
${NC}"
echo " ${PURPLE}Yeet's Automated Arch Setup Script${NC}"
}
help(){
echo "
${GREEN} Usage:${NC}\n
-o Select the OS you are installing this on
${ORANGE}Author:${NC} Yigit Colakoglu aka. ${BLUE}<===8 Fr1nge 8===>${NC}\n"
exit 0
}
os=""
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-o|--os)
os="$(echo "$2" | tr '[:upper:]' '[:lower:]')"
shift 2
;;
-v|--verbose)
verbose=1
shift
;;
*)
help
;;
esac
done
if [ "$os" = "" ]; then
os=$(prompt "Please enter the OS you want to install on(Arch/Artix): " | tr '[:upper:]' '[:lower:]')
fi
if [ ! "$os" = "arch" ] && [ ! "$os" = "artix" ]; then
error "OS must be Arch or Artix"
exit 1
fi
# Disk setup
lsblk
device=$(prompt "What is the install device: ")
info "Installing to $device... (Enter to continue)"
read -r _
clear
wipe=$(prompt "Would you like to wipe and re-partition the disk $device?(Y/n): ")
if [ ! "$wipe" = "n" ]; then
# Disk wipe
secure=$(prompt "Should I do a secure wipe?(y/N): ")
if [ "$secure" = "y" ]; then
info "Writing random data to disk, this might take a while if you have a large drive..."
cryptsetup open -q --type plain -d /dev/urandom "$device" wipe
dd if=/dev/zero of=/dev/mapper/wipe status=progress
cryptsetup -q close wipe
fi
info "Wiping the partition table..."
cryptsetup erase "$device"
wipefs -a -f "$device"
sleep 1
fi
clear
# Run cfdisk for manual partitioning
cfdisk "$device"
clear
sleep 2
[ ! "$(command -v partprobe)" = "" ] && partprobe
lsblk "$device"
satisfied=$(prompt "Are you satisfied with your partitions?(Y/n): ")
while [ "$satisfied" = "n" ]; do
cfdisk "$device"
clear
[ ! "$(command -v partprobe)" = "" ] && partprobe
lsblk "$device"
satisfied=$(prompt "Are you satisfied with your partitions?(Y/n): ")
done
clear
lsblk "$device"
echo ""
echo "Now you will specify the partitions you have created"
echo "Please enter the suffix for each partition. For Ex:"
echo "1 if boot partition is /dev/sda1 or p1 if boot is on /dev/nvme0n1p1 and the disk is /dev/nvme0n1"
boot_p=$(prompt "Please enter boot partition suffix: ")
root_p=$(prompt "Please enter root partition suffix: ")
swap_p=$(prompt "Please enter swap partition suffix: ")
boot=$device$boot_p
root=$device$root_p
swap=$device$swap_p
if [ -z "$home_s" ]; then
home_s=$(prompt "Did you create a home partition as well?(y/N): ")
fi
if [ "$home_s" = "y" ]; then
home_p=$(prompt "Please enter home partition suffix: ")
home=$device$home_p
fi
clear
# Create the boot partition
info "Formatting boot partition"
mkfs.fat -F32 "$boot"
encryption=$(prompt "Would you like to enrypt your disks?(y/N): ")
if [ "$encryption" = "y" ]; then
clear
info "Running benchmark"
cryptsetup benchmark
cipher=$(prompt "Please select the ciphering algorithm(aes-xts-plain64): ")
if [ "$cipher" = "" ]; then
cipher="aes-xts-plain64"
fi
iter=$("Please select the iter time(750): ")
if [ "$iter" = "" ]; then
iter="750"
fi
keysize=$("Please select the key size(512): ")
if [ "$keysize" = "" ]; then
keysize="512"
fi
# Create the swap partition
mkdir /root/.keys
dd if=/dev/urandom of=/root/.keys/swap-keyfile bs=1024 count=4
chmod 600 /root/.keys/swap-keyfile
cryptsetup --key-size "$keysize" --cipher "$cipher" --iter-time "$iter" -q luksFormat "$swap" < /root/.keys/swap-keyfile
info "Keyfile saved to /root/.keys/swap-keyfile"
cryptsetup open --key-file="/root/.keys/swap-keyfile" "$swap" swap
mkswap /dev/mapper/swap
swapon /dev/mapper/swap
# Create the root partition
root_pass="$(prompt "Enter password for root encryption")"
echo "$root_pass" | cryptsetup --key-size "$keysize" --cipher "$cipher" --iter-time "$iter" -q luksFormat "$root"
dd bs=512 count=4 if=/dev/random of=/root/.keys/root-keyfile iflag=fullblock
chmod 600 /root/.keys/root-keyfile
echo "$root_pass" | cryptsetup luksAddKey "$root" /root/.keys/root-keyfile
echo "[INFO]: Keyfile saved to /root/.keys/root-keyfile"
cryptsetup open --key-file="/root/.keys/root-keyfile" "$root" root
mkfs.ext4 -F /dev/mapper/root
mkdir /mnt/sys
mount /dev/mapper/root /mnt/sys
if [ "$home_s" = "y" ]; then
home_pass="$(prompt "Enter password for home encryption")"
echo "$home_pass" | cryptsetup --key-size "$keysize" --cipher "$cipher" --iter-time "$iter" -q luksFormat "$home"
dd bs=512 count=4 if=/dev/random of=/root/.keys/home-keyfile iflag=fullblock
chmod 600 /root/.keys/home-keyfile
echo "$home_pass" | cryptsetup luksAddKey "$home" /root/.keys/home-keyfile
echo "[INFO]: Keyfile saved to /root/.keys/home-keyfile"
cryptsetup open --key-file="/root/.keys/home-keyfile" "$home" home
mkfs.ext4 -F /dev/mapper/home
mkdir /mnt/sys/home
mount "/dev/mapper/home" /mnt/sys/home
fi
else
mkswap "$swap"
swapon "$swap"
mkfs.ext4 -F "$root"
mkdir /mnt/sys
mount "$root" /mnt/sys
if [ "$home_s" = "y" ]; then
mkfs.ext4 -F "$home"
mkdir /mnt/sys/home
mount "$home" /mnt/sys/home
fi
fi
mkdir /mnt/sys/boot
mount "$boot" /mnt/sys/boot
clear
mkdir /mnt/sys/install
case $os in
arch)
pacstrap /mnt/sys base linux linux-firmware base-devel vi nano
genfstab -U /mnt/sys >> /mnt/sys/etc/fstab
curl https://raw.githubusercontent.com/theFr1nge/YAASS/main/arch/pkg.list > /mnt/sys/install/packages.base
curl https://raw.githubusercontent.com/theFr1nge/YAASS/main/arch/stage2.sh > /mnt/sys/install/stage2.sh
;;
artix)
basestrap /mnt/sys base linux linux-firmware base-devel vi nano openrc
fstabgen -U /mnt/sys >> /mnt/sys/etc/fstab
curl https://raw.githubusercontent.com/theFr1nge/YAASS/main/artix/pkg.list > /mnt/sys/install/packages.base
curl https://raw.githubusercontent.com/theFr1nge/YAASS/main/artix/stage2.sh > /mnt/sys/install/stage2.sh
;;
esac
chmod +x /mnt/sys/install/stage2.sh
tmpfs_ok=$(prompt "Would you like to use tmpfs (This can drastically improve performance)?(Y/n): ")
if [ ! "$tmpfs_ok" = "n" ]; then
tmpfs_size=$("How big should the tmpfs be?(end with G or M): ")
printf "\n#tmpfs\ntmpfs /tmp tmpfs rw,nodev,nosuid,size=%s 0 0\n" "$tmpfs_size" >> /mnt/sys/etc/fstab
fi
clear
if [ ! "$encryption" = "n" ]; then
cp -r /root/.keys /mnt/sys/root
fi
if [ "$os" = "arch" ];then
if [ "$home_s" = "y" ]; then
tmux new-session -s "arch-setup" "arch-chroot /mnt/sys /install/stage2.sh \"$boot\" \"$root\" \"$swap\" \"$home\"" || arch-chroot /mnt/sys /install/stage2.sh "$boot" "$root" "$swap" "$home"
else
tmux new-session -s "arch-setup" "arch-chroot /mnt/sys /install/stage2.sh \"$boot\" \"$root\" \"$swap\"" || arch-chroot /mnt/sys /install/stage2.sh "$boot" "$root" "$swap"
fi
else
if [ "$home_s" = "y" ]; then
tmux new-session -s "artix-setup" "artix-chroot /mnt/sys /install/stage2.sh \"$boot\" \"$root\" \"$swap\" \"$home\"" || artix-chroot /mnt/sys /install/stage2.sh "$boot" "$root" "$swap" "$home"
else
tmux new-session -s "artix-setup" "artix-chroot /mnt/sys /install/stage2.sh \"$boot\" \"$root\" \"$swap\"" || artix-chroot /mnt/sys /install/stage2.sh "$boot" "$root" "$swap"
fi
fi

Loading…
Cancel
Save