From 3d8a7cf5e0f1ee9992957de3e552bb065628101f Mon Sep 17 00:00:00 2001 From: lelgenio Date: Sun, 24 Nov 2019 03:54:02 -0300 Subject: [PATCH] updated install script --- scripts/.config/scripts/arch_install.sh | 680 ++++++++---------------- 1 file changed, 208 insertions(+), 472 deletions(-) diff --git a/scripts/.config/scripts/arch_install.sh b/scripts/.config/scripts/arch_install.sh index 73f124f..89d68a1 100644 --- a/scripts/.config/scripts/arch_install.sh +++ b/scripts/.config/scripts/arch_install.sh @@ -42,10 +42,10 @@ DRIVE='/dev/sda' # Hostname of the installed machine. -HOSTNAME='host100' +HOSTNAME='arch' # Encrypt everything (except /boot). Leave blank to disable. -ENCRYPT_DRIVE='FALSE' +ENCRYPT_DRIVE='' # Passphrase used to encrypt the drive (leave blank to be prompted). DRIVE_PASSPHRASE='' @@ -69,6 +69,8 @@ TMP_ON_TMPFS='TRUE' KEYMAP='br' # KEYMAP='dvorak' +LANG=pt_BR.UTF-8 + # Choose your video driver # For Intel VIDEO_DRIVER="i915" @@ -79,12 +81,8 @@ VIDEO_DRIVER="i915" # For generic stuff #VIDEO_DRIVER="vesa" -# Wireless device, leave blank to not use wireless and use DHCP instead. -WIRELESS_DEVICE="wlan0" -# For tc4200's -#WIRELESS_DEVICE="eth1" - -setup() { +# Setup{{{ +setup() {#{{{ local boot_dev="$DRIVE"1 local lvm_dev="$DRIVE"2 @@ -135,20 +133,102 @@ setup() { unmount_filesystems echo 'Done! Reboot system.' fi -} +}#}}} +partition_drive() {#{{{ + local dev="$1"; shift -configure() { + # 100 MB /boot partition, everything else under LVM + parted -s "$dev" \ + mklabel gpt \ + mkpart boot 1 100M \ + mkpart lvm 100M 100% \ + set 1 boot on\ + set 2 lvm on +}#}}} +encrypt_drive() {#{{{ + local dev="$1"; shift + local passphrase="$1"; shift + local name="$1"; shift + + echo -en "$passphrase" | cryptsetup luksFormat "$dev" + echo -en "$passphrase" | cryptsetup luksOpen "$dev" lvm +}#}}} +setup_lvm() {#{{{ + local partition="$1"; shift + local volgroup="$1"; shift + + pvcreate "$partition" + vgcreate "$volgroup" "$partition" + + # Create a 1GB swap partition + lvcreate -C y -L1G "$volgroup" -n swap + + # Use the rest of the space for root + lvcreate -L '30G' "$volgroup" -n root + lvcreate -l '+100%FREE' "$volgroup" -n home + + # Enable the new volumes + vgchange -ay +}#}}} +format_filesystems() {#{{{ + local boot_dev="$1"; shift + + mkfs.fat -L boot "$boot_dev" + mkfs.ext4 -L root /dev/vg00/root + mkfs.ext4 -L home /dev/vg00/home + mkswap /dev/vg00/swap +}#}}} +mount_filesystems() {#{{{ + local boot_dev="$1"; shift + + mount /dev/vg00/root /mnt + mkdir /mnt/boot + mount "$boot_dev" /mnt/boot + swapon /dev/vg00/swap +}#}}} +install_base() {#{{{ + pacstrap /mnt base base-devel\ + linux-zen linux-firmware\ + networkmanager git + + local packages='' + + # On Intel processors + packages+=' intel-ucode' + if [ "$VIDEO_DRIVER" = "i915" ] + then + packages+=' xf86-video-intel libva-intel-driver' + elif [ "$VIDEO_DRIVER" = "nouveau" ] + then + packages+=' xf86-video-nouveau' + elif [ "$VIDEO_DRIVER" = "radeon" ] + then + packages+=' xf86-video-ati' + elif [ "$VIDEO_DRIVER" = "vesa" ] + then + packages+=' xf86-video-vesa' + fi + + pacstrap /mnt $packages +}#}}} +unmount_filesystems() {#{{{ + umount /mnt/boot + umount /mnt + swapoff /dev/vg00/swap + vgchange -an + if [ -n "$ENCRYPT_DRIVE" ] + then + cryptsetup luksClose lvm + fi +}#}}} +#}}} +# Configuration{{{ +configure() {#{{{ local boot_dev="$DRIVE"1 local lvm_dev="$DRIVE"2 - echo 'Installing additional packages' - install_packages - - echo 'Installing packer' - install_packer - - echo 'Installing AUR packages' - install_aur_packages + echo 'Building locate database' + update_locate echo 'Clearing package tarballs' clean_packages @@ -163,7 +243,7 @@ configure() { set_timezone "$TIMEZONE" echo 'Setting locale' - set_locale + set_localet echo 'Setting console keymap' set_keymap @@ -192,12 +272,6 @@ configure() { echo 'Configuring slim' set_slim - if [ -n "$WIRELESS_DEVICE" ] - then - echo 'Configuring netcfg' - set_netcfg - fi - if [ -z "$ROOT_PASSWORD" ] then echo 'Enter the root password:' @@ -218,204 +292,74 @@ configure() { echo 'Creating initial user' create_user "$USER_NAME" "$USER_PASSWORD" - echo 'Building locate database' - update_locate + echo 'Installing AUR packages' + install_aur_packages rm /setup.sh -} +}#}}} +install_aur_packages() {#{{{ -partition_drive() { - local dev="$1"; shift + sudo pacman -S --needed \ + git pacman-contrib \ + base base-devel \ + linux-zen linux-firmware - # 100 MB /boot partition, everything else under LVM - parted -s "$dev" \ - mklabel msdos \ - mkpart primary ext2 1 100M \ - mkpart primary ext2 100M 100% \ - set 1 boot on \ - set 2 LVM on -} - -encrypt_drive() { - local dev="$1"; shift - local passphrase="$1"; shift - local name="$1"; shift - - echo -en "$passphrase" | cryptsetup -c aes-xts-plain -y -s 512 luksFormat "$dev" - echo -en "$passphrase" | cryptsetup luksOpen "$dev" lvm -} - -setup_lvm() { - local partition="$1"; shift - local volgroup="$1"; shift - - pvcreate "$partition" - vgcreate "$volgroup" "$partition" - - # Create a 1GB swap partition - lvcreate -C y -L1G "$volgroup" -n swap - - # Use the rest of the space for root - lvcreate -L '30G' "$volgroup" -n root - lvcreate -l '+100%FREE' "$volgroup" -n home - - # Enable the new volumes - vgchange -ay -} - -format_filesystems() { - local boot_dev="$1"; shift - - mkfs.ext2 -L boot "$boot_dev" - mkfs.ext4 -L root /dev/vg00/root - mkfs.ext4 -L home /dev/vg00/root - mkswap /dev/vg00/swap -} - -mount_filesystems() { - local boot_dev="$1"; shift - - mount /dev/vg00/root /mnt - mkdir /mnt/boot - mount "$boot_dev" /mnt/boot - swapon /dev/vg00/swap -} - -install_base() { - echo 'Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist - - pacstrap /mnt base base-devel - pacstrap /mnt syslinux -} - -unmount_filesystems() { - umount /mnt/boot - umount /mnt - swapoff /dev/vg00/swap - vgchange -an - if [ -n "$ENCRYPT_DRIVE" ] + # getting yay + if [ ! -x /bin/yay ]; then - cryptsetup luksClose lvm - fi -} - -install_packages() { - local packages='' - - # General utilities/libraries - packages+=' alsa-utils cpupower gvim mlocate net-tools ntp openssh p7zip pkgfile powertop python python2 rfkill rsync sudo unrar unzip wget zip systemd-sysvcompat zsh grml-zsh-config' - - # Development packages - packages+=' apache-ant cmake gdb git maven mercurial subversion tcpdump valgrind wireshark-gtk' - - # Netcfg - if [ -n "$WIRELESS_DEVICE" ] - then - packages+=' netcfg ifplugd dialog wireless_tools wpa_actiond wpa_supplicant' + git clone http://aur.archlinux.org/yay.git ~/yay + cd ~/yay + makepkg -si + cd - fi - # Java stuff - packages+=' icedtea-web-java7 jdk7-openjdk jre7-openjdk' + # Install a lot of things + yay -Syu --noconfirm --needed \ + sway light mako pulseaudio pavolume-git udiskie wofi-hg \ + httpie jq python-keepmenu-git\ + ttf-hack inter-font\ + grim slurp wl-clipboard\ + materia-custom-accent papirus-icon-theme-git\ + papirus-folders-git capitaine-cursors \ + termite neovim ranger mimeo atool\ + zsh powerline-fonts\ + qutebrowser \ + steam lutris \ + gimp kdenlive mpv mpd mpc ncmpcpp - # Libreoffice - packages+=' libreoffice-calc libreoffice-en-US libreoffice-gnome libreoffice-impress libreoffice-writer hunspell-en hyphen-en mythes-en' - - # Misc programs - packages+=' mpv dosfstools ntfsprogs' - - # Fonts - packages+=' ttf-dejavu ttf-liberation' - - # On Intel processors - packages+=' intel-ucode' - - # For laptops - packages+=' xf86-input-synaptics' - - # Extra packages for tc4200 tablet - #packages+=' ipw2200-fw xf86-input-wacom' - - if [ "$VIDEO_DRIVER" = "i915" ] - then - packages+=' xf86-video-intel libva-intel-driver' - elif [ "$VIDEO_DRIVER" = "nouveau" ] - then - packages+=' xf86-video-nouveau' - elif [ "$VIDEO_DRIVER" = "radeon" ] - then - packages+=' xf86-video-ati' - elif [ "$VIDEO_DRIVER" = "vesa" ] - then - packages+=' xf86-video-vesa' - fi - - pacman -Sy --noconfirm $packages -} - -install_packer() { - mkdir /foo - cd /foo - curl https://aur.archlinux.org/packages/pa/packer/packer.tar.gz | tar xzf - - cd packer - makepkg -si --noconfirm --asroot - - cd / - rm -rf /foo -} - -install_aur_packages() { - mkdir /foo - export TMPDIR=/foo - - - packer -S --noconfirm android-udev - packer -S --noconfirm chromium-pepper-flash-stable - packer -S --noconfirm chromium-libpdf-stable - unset TMPDIR - rm -rf /foo -} - -clean_packages() { +}#}}} +clean_packages() {#{{{ yes | pacman -Scc -} - -update_pkgfile() { +}#}}} +update_pkgfile() {#{{{ pkgfile -u -} - -set_hostname() { +}#}}} +set_hostname() {#{{{ local hostname="$1"; shift echo "$hostname" > /etc/hostname -} - -set_timezone() { - local timezone="$1"; shift - - ln -sT "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime -} - -set_locale() { - echo 'LANG="en_US.UTF-8"' >> /etc/locale.conf - echo 'LC_COLLATE="C"' >> /etc/locale.conf - echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen - locale-gen -} - -set_keymap() { - echo "KEYMAP=$KEYMAP" > /etc/vconsole.conf -} - -set_hosts() { - local hostname="$1"; shift cat > /etc/hosts <> /etc/locale.conf + echo "LC_COLLATE=C" >> /etc/locale.conf + echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen + echo "$LANG UTF-8" >> /etc/locale.gen + locale-gen +}#}}} +set_keymap() {#{{{ + echo "KEYMAP=$KEYMAP" > /etc/vconsole.conf +}#}}} +set_fstab() {#{{{ local tmp_on_tmpfs="$1"; shift local boot_dev="$1"; shift @@ -427,18 +371,14 @@ set_fstab() { # # -/dev/vg00/swap none swap sw 0 0 -/dev/vg00/root / ext4 defaults,relatime 0 1 +/dev/vg00/swap none swap sw 0 0 +/dev/vg00/root / ext4 rw,relatime 0 1 +/dev/vg00/home /home ext4 rw,relatime 0 2 UUID=$boot_uuid /boot ext2 defaults,relatime 0 2 EOF -} - -set_modules_load() { - echo 'microcode' > /etc/modules-load.d/intel-ucode.conf -} - -set_initcpio() { +}#}}} +set_initcpio() {#{{{ local vid if [ "$VIDEO_DRIVER" = "i915" ] @@ -458,31 +398,26 @@ set_initcpio() { encrypt="encrypt" fi - - # Set MODULES with your video driver cat > /etc/mkinitcpio.conf < /boot/syslinux/syslinux.cfg < /boot/loader/entries/arch.conf < /etc/sudoers < /etc/slim.conf < /etc/network.d/wired < /etc/conf.d/netcfg <