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
|
clear
|
||||||
echo
|
echo
|
||||||
HARD_DISK="/dev/nvme0n1"
|
HARD_DISK=$(lsblk | cut -d ' ' -f1 | grep -vi zram | head -2 | tail -1)
|
||||||
EFI="${HARD_DISK}p1"
|
EFI="/dev/$(lsblk | grep $HARD_DISK | head -2 | tail -1 | cut -c 7-20 | cut -d ' ' -f1)"
|
||||||
BTRFS="${HARD_DISK}p2"
|
BTRFS="/dev/$(lsblk | grep $HARD_DISK | head -3 | tail -1 | cut -c 7-20 | cut -d ' ' -f1)"
|
||||||
ROOT_NAME='arch-gnome'
|
ROOT_NAME='arch'
|
||||||
USB_BACKUP='/dev/disk/by-uuid/770db62e-1893-42ce-be37-c70fa6578fba'
|
USB_BACKUP='/dev/disk/by-uuid/770db62e-1893-42ce-be37-c70fa6578fba'
|
||||||
######################################
|
######################################
|
||||||
USER="verita84"
|
USER="verita84"
|
||||||
@ -28,11 +28,15 @@ FLATPAKS+=( net.brinkervii.grapejuice )
|
|||||||
|
|
||||||
#Packages
|
#Packages
|
||||||
SHARED_DESKTOP_APPS=" gnome firefox evolution handbrake libreoffice-fresh mpv gimp element-desktop telegram-desktop sysstat keepassxc python-axolotl python-qrcode yt-dlp "
|
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 "
|
VIRTUALIZATION=" gnu-netcat virt-manager libvirt iptables-nft dnsmasq dmidecode edk2-ovmf qemu-base jack "
|
||||||
PACKAGES=$PACKAGES$SHARED_DESKTOP_APPS$VIRTUALIZATION
|
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(){
|
clean-old-usb-snapshots(){
|
||||||
echo;echo "[Cleaning up old USB snapshots.....]";echo
|
echo;echo "[Cleaning up old USB snapshots.....]";echo
|
||||||
@ -68,27 +72,29 @@ copy-efi-to-usb(){
|
|||||||
cp -rf /boot/* $TARGET/efi-$1/
|
cp -rf /boot/* $TARGET/efi-$1/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
homeBackup() {
|
||||||
|
echo;echo "[Copying USER data....]";echo
|
||||||
|
rsync -av --delete /home/ /mnt/home/
|
||||||
|
}
|
||||||
|
|
||||||
usb-backup() {
|
usb-backup() {
|
||||||
umount $TARGET
|
umount $TARGET
|
||||||
|
|
||||||
echo;echo "[Mounting $USB_BACKUP]";echo
|
echo;echo "[Mounting $USB_BACKUP]";echo
|
||||||
mount $USB_BACKUP $TARGET
|
mount $USB_BACKUP $TARGET
|
||||||
|
|
||||||
|
homeBackup
|
||||||
clean-old-snapshots "$1"
|
clean-old-snapshots "$1"
|
||||||
clean-old-usb-snapshots "$1"
|
clean-old-usb-snapshots "$1"
|
||||||
create-usb-snapshots "$1"
|
create-usb-snapshots "$1"
|
||||||
send-snapshots "$1"
|
send-snapshots "$1"
|
||||||
clean-old-snapshots "$1"
|
clean-old-snapshots "$1"
|
||||||
copy-efi-to-usb "$1"
|
copy-efi-to-usb "$1"
|
||||||
cp -f arch.sh $TARGET/$1
|
cp -f /usr/bin/arch.sh $TARGET/$1
|
||||||
ls $TARGET/
|
ls $TARGET/
|
||||||
umount $TARGET
|
umount $TARGET
|
||||||
}
|
}
|
||||||
|
|
||||||
instlal-wine(){
|
|
||||||
pacman -S lib32-alsa-plugins lib32-libpulse lib32-openal wine-gecko wine-mono
|
|
||||||
}
|
|
||||||
|
|
||||||
usb-restore() {
|
usb-restore() {
|
||||||
partitions
|
partitions
|
||||||
rsync -av ../$ROOT_NAME-$1/ $TARGET/ --delete
|
rsync -av ../$ROOT_NAME-$1/ $TARGET/ --delete
|
||||||
@ -121,6 +127,7 @@ install() {
|
|||||||
installSoftware
|
installSoftware
|
||||||
locale
|
locale
|
||||||
accounts
|
accounts
|
||||||
|
auto_login
|
||||||
zram
|
zram
|
||||||
custom_service_files
|
custom_service_files
|
||||||
services
|
services
|
||||||
@ -131,15 +138,29 @@ install() {
|
|||||||
unmount
|
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() {
|
snapshots() {
|
||||||
echo
|
echo
|
||||||
echo "Creating Snapshots....."
|
echo "Creating Snapshots....."
|
||||||
echo
|
echo
|
||||||
btrfs sub snapshot / /.snapshots/root-$(date +%Y-%m-%d)
|
DATE=$(echo $(date +%Y-%m-%d-%H-%M-%S))
|
||||||
echo "Title $(date +%Y-%m-%d)" >/boot/loader/entries/root-$(date +%Y-%m-%d).conf
|
btrfs sub snapshot / /.snapshots/root-${DATE}
|
||||||
echo 'linux /vmlinuz-linux-lts' >>/boot/loader/entries/root-$(date +%Y-%m-%d).conf
|
echo "Title ${DATE}" >/boot/loader/entries/root-${DATE}.conf
|
||||||
echo 'initrd /initramfs-linux-lts.img' >>/boot/loader/entries/root-$(date +%Y-%m-%d).conf
|
echo 'linux /vmlinuz-linux-lts' >>/boot/loader/entries/root-${DATE}.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
|
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() {
|
remove-snapshots() {
|
||||||
@ -168,22 +189,23 @@ bootloader() {
|
|||||||
echo 'title Arch Linux' >/boot/loader/entries/arch.conf
|
echo 'title Arch Linux' >/boot/loader/entries/arch.conf
|
||||||
echo 'linux /vmlinuz-linux-lts' >>/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 '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() {
|
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 /usr/bin/arch.sh bootloader' >>$TARGET/setup.sh
|
||||||
echo 'bash /arch.sh aur' >>$TARGET/setup.sh
|
echo 'bash /usr/bin/arch.sh aur' >>$TARGET/setup.sh
|
||||||
echo 'bash /arch.sh flatpaks' >>$TARGET/setup.sh
|
echo 'bash /usr/bin/arch.sh flatpaks' >>$TARGET/setup.sh
|
||||||
echo 'bash /arch.sh btrfs-tweaks' >>$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
|
chmod +x $TARGET/setup.sh
|
||||||
arch-chroot $TARGET /setup.sh
|
arch-chroot $TARGET /setup.sh
|
||||||
sed -i '/#NoUpgrade/a IgnorePkg = linux-lts' $TARGET/etc/pacman.conf
|
sed -i '/#NoUpgrade/a IgnorePkg = linux-lts' $TARGET/etc/pacman.conf
|
||||||
rm -f $TARGET/setup.sh
|
rm -f $TARGET/setup.sh
|
||||||
rm -f $TARGET/arch.sh
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function cpuPower() {
|
function cpuPower() {
|
||||||
@ -215,7 +237,7 @@ mounts() {
|
|||||||
mount $EFI $TARGET/boot
|
mount $EFI $TARGET/boot
|
||||||
#CONFIGURE DATA DIRS (HOME AND FLATPAK)
|
#CONFIGURE DATA DIRS (HOME AND FLATPAK)
|
||||||
mkdir $TARGET/home
|
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
|
mkdir -p $TARGET/var/lib/flatpak
|
||||||
mount -o subvol=@flatpak /dev/mapper/root $TARGET/var/lib/flatpak
|
mount -o subvol=@flatpak /dev/mapper/root $TARGET/var/lib/flatpak
|
||||||
}
|
}
|
||||||
@ -275,7 +297,7 @@ fstab() {
|
|||||||
accounts() {
|
accounts() {
|
||||||
echo
|
echo
|
||||||
echo "Set Password for $USER"
|
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 "echo \"$USER:$USER_PASSWORD\"| chpasswd " >>$TARGET/setup.sh
|
||||||
echo "gpasswd -a $USER wheel" >>$TARGET/setup.sh
|
echo "gpasswd -a $USER wheel" >>$TARGET/setup.sh
|
||||||
echo "gpasswd -a $USER network" >>$TARGET/setup.sh
|
echo "gpasswd -a $USER network" >>$TARGET/setup.sh
|
||||||
@ -310,6 +332,26 @@ DISABLE_COW=("/var/lib/docker" "/var/lib/containers" "/var/lib/postgresql" "/
|
|||||||
custom_service_files() {
|
custom_service_files() {
|
||||||
echo "systemctl set-default graphical.target" >>$TARGET/setup.sh
|
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 "[Unit]" >$TARGET/etc/systemd/system/zram.service
|
||||||
echo "Description=Swap with zram" >>$TARGET/etc/systemd/system/zram.service
|
echo "Description=Swap with zram" >>$TARGET/etc/systemd/system/zram.service
|
||||||
echo "After=multi-user.target" >>$TARGET/etc/systemd/system/zram.service
|
echo "After=multi-user.target" >>$TARGET/etc/systemd/system/zram.service
|
||||||
@ -389,12 +431,13 @@ show-help() {
|
|||||||
echo "./arch.sh snapshot"
|
echo "./arch.sh snapshot"
|
||||||
echo "./arch.sh reomve-snapshot"
|
echo "./arch.sh reomve-snapshot"
|
||||||
echo "./arch.sh btrfs-tweaks"
|
echo "./arch.sh btrfs-tweaks"
|
||||||
echo "./arch.sh install-wine"
|
|
||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$1" = "install" ]; then
|
if [ "$1" = "install" ]; then
|
||||||
install "$2"
|
install "$2"
|
||||||
|
elif [ "$1" = "pacman-snapshot-hook" ]; then
|
||||||
|
pacman-snapshot-hook
|
||||||
elif [ "$1" = "upgrade-system" ]; then
|
elif [ "$1" = "upgrade-system" ]; then
|
||||||
upgrade-system
|
upgrade-system
|
||||||
elif [ "$1" = "chroot" ]; then
|
elif [ "$1" = "chroot" ]; then
|
||||||
@ -405,8 +448,6 @@ elif [ "$1" = "aur" ]; then
|
|||||||
aur "$2"
|
aur "$2"
|
||||||
elif [ "$1" = "wifi" ]; then
|
elif [ "$1" = "wifi" ]; then
|
||||||
wifi
|
wifi
|
||||||
elif [ "$1" = "install-wine" ]; then
|
|
||||||
install-wine
|
|
||||||
elif [ "$1" = "flatpaks" ]; then
|
elif [ "$1" = "flatpaks" ]; then
|
||||||
flatpaks
|
flatpaks
|
||||||
elif [ "$1" = "bootloader" ]; then
|
elif [ "$1" = "bootloader" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user