Update 'arch.sh'
This commit is contained in:
parent
02ed228897
commit
f8f21238cc
97
arch.sh
97
arch.sh
@ -7,10 +7,10 @@ TARGET='/mnt'
|
||||
######################################
|
||||
clear
|
||||
echo
|
||||
HARD_DISK="/dev/nvme0n1"
|
||||
EFI="${HARD_DISK}p1"
|
||||
BTRFS="${HARD_DISK}p2"
|
||||
ROOT_NAME='arch-gnome'
|
||||
HARD_DISK=$(lsblk | cut -d ' ' -f1 | grep -vi zram | head -2 | tail -1)
|
||||
EFI="/dev/$(lsblk | grep $HARD_DISK | head -2 | tail -1 | cut -c 7-20 | cut -d ' ' -f1)"
|
||||
BTRFS="/dev/$(lsblk | grep $HARD_DISK | head -3 | tail -1 | cut -c 7-20 | cut -d ' ' -f1)"
|
||||
ROOT_NAME='arch'
|
||||
USB_BACKUP='/dev/disk/by-uuid/770db62e-1893-42ce-be37-c70fa6578fba'
|
||||
######################################
|
||||
USER="verita84"
|
||||
@ -28,11 +28,15 @@ FLATPAKS+=( net.brinkervii.grapejuice )
|
||||
|
||||
#Packages
|
||||
SHARED_DESKTOP_APPS=" gnome firefox evolution handbrake libreoffice-fresh mpv gimp element-desktop telegram-desktop sysstat keepassxc python-axolotl python-qrcode yt-dlp "
|
||||
PACKAGES=" flatpak tor bluez bluez-utils blueman pulseaudio-bluetooth avahi pulseaudio pulseaudio-bluetooth cups acpi acpid cpupower syncthing docker docker-compose samba nfs-utils avahi cronie pulseaudio acpilight aardvark-dns sof-firmware ghostscript arch-install-scripts zsh grml-zsh-config btrfs-progs unzip nfs-utils bash-completion openssh python-pynacl parted dosfstools wget curl cifs-utils ntp mkinitcpio vim-airline rsync screen base linux-lts linux-firmware udev git networkmanager nss-mdns efibootmgr wireless_tools wpa_supplicant autoconf automake binutils fakeroot file findutils flex gawk gcc gettext grep groff gzip libtool m4 make patch pkgconf sed sudo texinfo which networkmanager-openvpn gobject-introspection ntp screen docbook-xsl alsa-utils"
|
||||
PACKAGES=" nextcloud-client redis aardvark-dns cockpit cockpit-machines cockpit-podman flatpak tor bluez bluez-utils powertop blueman pulseaudio-bluetooth avahi pulseaudio pulseaudio-bluetooth cups acpi packagekit cockpit-packagekit cockpit-pcp cockpit-storaged acpid cpupower podman podman-compose samba nfs-utils avahi cronie pulseaudio acpilight aardvark-dns sof-firmware ghostscript arch-install-scripts zsh grml-zsh-config btrfs-progs unzip nfs-utils bash-completion openssh python-pynacl parted dosfstools wget curl cifs-utils ntp mkinitcpio vim-airline rsync screen base linux-lts linux-firmware udev git networkmanager nss-mdns efibootmgr wireless_tools wpa_supplicant autoconf automake binutils fakeroot file findutils flex gawk gcc gettext grep groff gzip libtool m4 make patch pkgconf sed sudo texinfo which networkmanager-openvpn gobject-introspection ntp screen docbook-xsl alsa-utils"
|
||||
VIRTUALIZATION=" gnu-netcat virt-manager libvirt iptables-nft dnsmasq dmidecode edk2-ovmf qemu-base jack "
|
||||
PACKAGES=$PACKAGES$SHARED_DESKTOP_APPS$VIRTUALIZATION
|
||||
SERVICES+=( cronie syncthing@$USER zram bluetooth cpupower gdm acpid avahi-daemon cups NetworkManager ntpd libvirtd sshd );
|
||||
SERVICES+=( cronie zram bluetooth cpupower podman powertop podman-hack gdm acpid avahi-daemon cups NetworkManager ntpd libvirtd sshd );
|
||||
|
||||
auto_login(){
|
||||
sed -i "/#WaylandEnable=false/a AutomaticLoginEnable=True" $TARGET/etc/gdm/custom.conf
|
||||
sed -i "/True/a AutomaticLogin=$USER" $TARGET/etc/gdm/custom.conf
|
||||
}
|
||||
|
||||
clean-old-usb-snapshots(){
|
||||
echo;echo "[Cleaning up old USB snapshots.....]";echo
|
||||
@ -68,27 +72,29 @@ copy-efi-to-usb(){
|
||||
cp -rf /boot/* $TARGET/efi-$1/
|
||||
}
|
||||
|
||||
homeBackup() {
|
||||
echo;echo "[Copying USER data....]";echo
|
||||
rsync -av --delete /home/ /mnt/home/
|
||||
}
|
||||
|
||||
usb-backup() {
|
||||
umount $TARGET
|
||||
|
||||
echo;echo "[Mounting $USB_BACKUP]";echo
|
||||
mount $USB_BACKUP $TARGET
|
||||
|
||||
homeBackup
|
||||
clean-old-snapshots "$1"
|
||||
clean-old-usb-snapshots "$1"
|
||||
create-usb-snapshots "$1"
|
||||
send-snapshots "$1"
|
||||
clean-old-snapshots "$1"
|
||||
copy-efi-to-usb "$1"
|
||||
cp -f arch.sh $TARGET/$1
|
||||
cp -f /usr/bin/arch.sh $TARGET/$1
|
||||
ls $TARGET/
|
||||
umount $TARGET
|
||||
}
|
||||
|
||||
instlal-wine(){
|
||||
pacman -S lib32-alsa-plugins lib32-libpulse lib32-openal wine-gecko wine-mono
|
||||
}
|
||||
|
||||
usb-restore() {
|
||||
partitions
|
||||
rsync -av ../$ROOT_NAME-$1/ $TARGET/ --delete
|
||||
@ -121,6 +127,7 @@ install() {
|
||||
installSoftware
|
||||
locale
|
||||
accounts
|
||||
auto_login
|
||||
zram
|
||||
custom_service_files
|
||||
services
|
||||
@ -131,15 +138,29 @@ install() {
|
||||
unmount
|
||||
}
|
||||
|
||||
pacman-snapshot-hook(){
|
||||
echo "[Trigger]" > /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "Operation = Upgrade" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "Operation = Install" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "Operation = Remove" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "Type = Package" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "Target = *" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "[Action]" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "Description = Creating Snapshot" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "When = PreTransaction" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
echo "Exec = /usr/bin/arch.sh snapshot" >> /usr/share/libalpm/hooks/04-snapshot.hook
|
||||
}
|
||||
|
||||
snapshots() {
|
||||
echo
|
||||
echo "Creating Snapshots....."
|
||||
echo
|
||||
btrfs sub snapshot / /.snapshots/root-$(date +%Y-%m-%d)
|
||||
echo "Title $(date +%Y-%m-%d)" >/boot/loader/entries/root-$(date +%Y-%m-%d).conf
|
||||
echo 'linux /vmlinuz-linux-lts' >>/boot/loader/entries/root-$(date +%Y-%m-%d).conf
|
||||
echo 'initrd /initramfs-linux-lts.img' >>/boot/loader/entries/root-$(date +%Y-%m-%d).conf
|
||||
echo "options cryptdevice=UUID=$(blkid | grep ${BTRFS} | cut -d '"' -f2):root root=\"LABEL=arch\" rootflags=subvol=@.snapshots/"root-$(date +%Y-%m-%d) "rw" >>/boot/loader/entries/root-$(date +%Y-%m-%d).conf
|
||||
DATE=$(echo $(date +%Y-%m-%d-%H-%M-%S))
|
||||
btrfs sub snapshot / /.snapshots/root-${DATE}
|
||||
echo "Title ${DATE}" >/boot/loader/entries/root-${DATE}.conf
|
||||
echo 'linux /vmlinuz-linux-lts' >>/boot/loader/entries/root-${DATE}.conf
|
||||
echo 'initrd /initramfs-linux-lts.img' >>/boot/loader/entries/root-${DATE}.conf
|
||||
echo "options mitigations=off cryptdevice=UUID=$(blkid | grep ${BTRFS} | cut -d '"' -f2):root root=\"LABEL=arch\" rootflags=subvol=@.snapshots/"root-${DATE} "rw" >>/boot/loader/entries/root-${DATE}.conf
|
||||
}
|
||||
|
||||
remove-snapshots() {
|
||||
@ -168,22 +189,23 @@ bootloader() {
|
||||
echo 'title Arch Linux' >/boot/loader/entries/arch.conf
|
||||
echo 'linux /vmlinuz-linux-lts' >>/boot/loader/entries/arch.conf
|
||||
echo 'initrd /initramfs-linux-lts.img' >>/boot/loader/entries/arch.conf
|
||||
echo "options cryptdevice=UUID=$(blkid | grep ${BTRFS} | cut -d '"' -f2):root root=\"LABEL=arch\" rootflags=subvol=@$ROOT_NAME rw" >>/boot/loader/entries/arch.conf
|
||||
echo "options mitigations=off cryptdevice=UUID=$(blkid | grep ${BTRFS} | cut -d '"' -f2):root root=\"LABEL=arch\" rootflags=subvol=@$ROOT_NAME rw" >>/boot/loader/entries/arch.conf
|
||||
}
|
||||
|
||||
function setup_script() {
|
||||
cp -f arch.sh $TARGET/
|
||||
cp -f arch.sh $TARGET/usr/bin/
|
||||
|
||||
echo 'bash /arch.sh bootloader' >>$TARGET/setup.sh
|
||||
echo 'bash /arch.sh aur' >>$TARGET/setup.sh
|
||||
echo 'bash /arch.sh flatpaks' >>$TARGET/setup.sh
|
||||
echo 'bash /arch.sh btrfs-tweaks' >>$TARGET/setup.sh
|
||||
echo 'bash /usr/bin/arch.sh bootloader' >>$TARGET/setup.sh
|
||||
echo 'bash /usr/bin/arch.sh aur' >>$TARGET/setup.sh
|
||||
echo 'bash /usr/bin/arch.sh flatpaks' >>$TARGET/setup.sh
|
||||
echo 'bash /usr/bin/arch.sh btrfs-tweaks' >>$TARGET/setup.sh
|
||||
echo 'bash /usr/bin/arch.sh pacman-snapshot-hook' >>$TARGET/setup.sh
|
||||
|
||||
chmod +x $TARGET/usr/bin/arch.sh
|
||||
chmod +x $TARGET/setup.sh
|
||||
arch-chroot $TARGET /setup.sh
|
||||
sed -i '/#NoUpgrade/a IgnorePkg = linux-lts' $TARGET/etc/pacman.conf
|
||||
rm -f $TARGET/setup.sh
|
||||
rm -f $TARGET/arch.sh
|
||||
}
|
||||
|
||||
function cpuPower() {
|
||||
@ -215,7 +237,7 @@ mounts() {
|
||||
mount $EFI $TARGET/boot
|
||||
#CONFIGURE DATA DIRS (HOME AND FLATPAK)
|
||||
mkdir $TARGET/home
|
||||
mount -o subvol=@home /dev/mapper/root $TARGET/home
|
||||
#mount -o subvol=@home /dev/mapper/root $TARGET/home
|
||||
mkdir -p $TARGET/var/lib/flatpak
|
||||
mount -o subvol=@flatpak /dev/mapper/root $TARGET/var/lib/flatpak
|
||||
}
|
||||
@ -275,7 +297,7 @@ fstab() {
|
||||
accounts() {
|
||||
echo
|
||||
echo "Set Password for $USER"
|
||||
echo "useradd -m -s /bin/bash $USER" >>$TARGET/setup.sh
|
||||
echo "useradd -m -s /bash $USER" >>$TARGET/setup.sh
|
||||
echo "echo \"$USER:$USER_PASSWORD\"| chpasswd " >>$TARGET/setup.sh
|
||||
echo "gpasswd -a $USER wheel" >>$TARGET/setup.sh
|
||||
echo "gpasswd -a $USER network" >>$TARGET/setup.sh
|
||||
@ -309,6 +331,26 @@ DISABLE_COW=("/var/lib/docker" "/var/lib/containers" "/var/lib/postgresql" "/
|
||||
|
||||
custom_service_files() {
|
||||
echo "systemctl set-default graphical.target" >>$TARGET/setup.sh
|
||||
|
||||
echo "[Unit]" >$TARGET/etc/systemd/system/powertop.service
|
||||
echo "Description=Powertop tunings" >>$TARGET/etc/systemd/system/powertop.service
|
||||
echo "[Service]" >>$TARGET/etc/systemd/system/powertop.service
|
||||
echo "Type=oneshot" >>$TARGET/etc/systemd/system/powertop.service
|
||||
echo "ExecStart=/usr/bin/powertop --auto-tune" >>$TARGET/etc/systemd/system/powertop.service
|
||||
echo "[Install]" >>$TARGET/etc/systemd/system/powertop.service
|
||||
echo "WantedBy=multi-user.target" >>$TARGET/etc/systemd/system/powertop.service
|
||||
|
||||
echo "[Unit]" >$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "Description=Podman Hack" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "[Service]" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "Type=oneshot" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "ExecStartPre=/usr/bin/sysctl -w kernel.unprivileged_userns_clone=1" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "ExecStartPre=/usr/bin/touch /etc/subuid /etc/subgid" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "ExecStartPre=/usr/bin/usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "ExecStartPre=/usr/bin/chmod 4755 /usr/bin/newgidmap" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "ExecStart=/usr/bin/chmod 4755 /usr/bin/newuidmap" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "[Install]" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
echo "WantedBy=multi-user.target" >>$TARGET/etc/systemd/system/podman-hack.service
|
||||
|
||||
echo "[Unit]" >$TARGET/etc/systemd/system/zram.service
|
||||
echo "Description=Swap with zram" >>$TARGET/etc/systemd/system/zram.service
|
||||
@ -389,12 +431,13 @@ show-help() {
|
||||
echo "./arch.sh snapshot"
|
||||
echo "./arch.sh reomve-snapshot"
|
||||
echo "./arch.sh btrfs-tweaks"
|
||||
echo "./arch.sh install-wine"
|
||||
echo
|
||||
}
|
||||
|
||||
if [ "$1" = "install" ]; then
|
||||
install "$2"
|
||||
elif [ "$1" = "pacman-snapshot-hook" ]; then
|
||||
pacman-snapshot-hook
|
||||
elif [ "$1" = "upgrade-system" ]; then
|
||||
upgrade-system
|
||||
elif [ "$1" = "chroot" ]; then
|
||||
@ -405,8 +448,6 @@ elif [ "$1" = "aur" ]; then
|
||||
aur "$2"
|
||||
elif [ "$1" = "wifi" ]; then
|
||||
wifi
|
||||
elif [ "$1" = "install-wine" ]; then
|
||||
install-wine
|
||||
elif [ "$1" = "flatpaks" ]; then
|
||||
flatpaks
|
||||
elif [ "$1" = "bootloader" ]; then
|
||||
|
Loading…
Reference in New Issue
Block a user