# Resource # https://gist.github.com/brammitch/281e9a2f3aca57ae4a333fc63732f602 # https://wiki.archlinux.org/index.php/Installation_guide # https://wiki.archlinux.org/index.php/Dell_XPS_13_(9370) # Switching from RAID to AHCI # https://gist.github.com/chenxiaolong/4beec93c464639a19ad82eeccc828c63 # https://www.tenforums.com/drivers-hardware/15006-attn-ssd-owners-enabling-ahci-mode-after-windows-10-installation.html # Turn off Windows fast boot # http://lifehacker.com/enable-this-setting-to-make-windows-10-boot-up-faster-1743697169 # Set the keyboard layout and font loadkeys it setfont latarcyrheb-sun32 # Verify the boot mode ls /sys/firmware/efi/efivars # Connect to the Internet # If you have a WPA2 Enterprise (user+password) setup netctl or easly use NetShare android app (wifi bridge) wifi-menu -o # if you need to use a proxy (e.g. NetShare) export http_proxy=172.25.21.6:44355 # Update the system clock timedatectl set-ntp true # Check service status timedatectl status # if under a proxy (e.g. NetShare app), set the date manually: date +%T -s "11:14:00" and execute timedatectl after installation # Resizing NTFS Windows partition # Display partitions status # https://gparted.sourceforge.io/download.php # Partition the disks # EFI partition will not be created since we are dual booting with Windows 10 # Existing EFI partition will be mounted to /boot # Identify disks lsblk cgdisk /dev/nvme0n1 # Create 8GiB swap partition (8200) # Create 100% LVM partition (8e00) # Exit cgdisk # List devices for LVM lvmdiskscan # Create physical volume pvcreate /dev/nvme0n1p8 # Verify physical volumes pvdisplay # Create volume group vgcreate xps_vg /dev/nvme0n1p8 # Verify volume groups vgdisplay # Create logical volumes lvcreate -l100%FREE xps_vg -n lv_root #lvcreate -L 40G xps_vg -n lv_home # Verify logical volumes lvdisplay # Format the partitions # Format /root and /home as ext4 mkfs.ext4 /dev/xps_vg/lv_root #mkfs.ext4 /dev/xpsvg/lvhome # Setup swap partition mkswap /dev/nvme0n1p7 swapon /dev/nvme0n1p7 # Mount the file systems # Mount /root mount /dev/xps_vg/lv_root /mnt # Mount /home mkdir /mnt/home # mount /dev/xps_gv/lv_home /mnt/home # Mount existing EFI partition mkdir /mnt/boot mount /dev/nvme0n1p1 /mnt/boot # Select mirrors # Edit mirros list vim /etc/pacman.d/mirrorlist # Install the base packages pacstrap /mnt base vim git efibootmgr wpa_supplicant iw zsh dialog sudo binutils make base-devel # Configure the system # Fstab # Generate an fstab file genfstab -L /mnt >> /mnt/etc/fstab # Verify and adjust /mnt/etc/fstab # Chroot # Change root into the new system arch-chroot /mnt # Time zone # Set the time zone ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime # Generate /etc/adjtime hwclock --systohc # Locale # Uncomment en_US.UTF-8 UTF-8 in /etc/locale.gen and generate them with locale-gen # Set the LANG variable in /etc/locale.conf echo 'LANG=en_US.UTF-8' > /etc/locale.conf # Set keyboard font echo 'FONT=latarcyrheb-sun32' > /etc/vconsole.conf # Set keyboard layout echo 'KEYMAP=it' >> /etc/vconsole.conf # 3.5 Hostname echo 'arch-xps' > /etc/hostname vi /etc/hosts 127.0.0.1 localhost ::1 localhost 127.0.1.1 arch-xps.localdomain arch-xps # Initramfs # Get rid of errors for psmouse echo 'blacklist psmouse' >> /etc/modprobe.d/modprobe.conf # Configure mkinitcpio vi /etc/mkinitcpio.conf # Update HOOKS=(...) to add: systemd sd-vconsole sd-lvm2 # note: s/udev/systemd/ and sd-lvm2 before filesystem # Update FILES=(/etc/modprobe.d/modprobe.conf) # Generate initrd image mkinitcpio -p linux # Add user useradd -m -g users -G wheel -s /bin/zsh # Set password passwd # Enable wheel group as sudoers visudo # Uncomment %wheel ALL=(ALL) ALL # Disable root user passwd -l root # Boot loader # Setup systemd-boot bootctl --path=/boot install # Enable Intel microcode updates pacman -S intel-ucode # Create bootloader entry vi /boot/loader/entries/arch.conf title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options root=/dev/xps_vg/lv_root rw # Set default bootloader entry vi /boot/loader/loader.conf timeout 8 default arch editor 0 # Reboot exit umount -R /mnt reboot # Post-installation # zsh home-end key fix # http://zshwiki.org/home/zle/bindkeys#reading_terminfo # ...and ctrl+r bindkey -M viins '^r' history-incremental-search-backward bindkey -M vicmd '^r' history-incremental-search-backward # Connect to wifi sudo wifi-menu -o # if you need to use a proxy (e.g. NetShare) export http_proxy=172.25.21.6:44355 # Install Intel graphic drivers (-E if you use http_proxy) sudo -E pacman -S xf86-video-intel sudo -E pacman -S xorg-server plasma-meta kde-applications-meta sudo systemctl enable --now sddm.service sudo systemctl enable --now NetworkManager.service # Install pacaur su - mkdir aur cd aur git clone https://aur.archlinux.org/cower.git cd cower makepkg -si --skipinteg cd .. git clone https://aur.archlinux.org/pacaur.git cd pacaur makepkg -si # Enable fstrim sudo systemctl enable --now fstrim.timer # set issue_discards=1 in /etc/lvm/lvm.conf # Firmware update sudo pacman -S fwupd fwupdmgr refresh fwupdmgr get-updates fwupdmgr update # /etc/sddm.conf # [X11] # ServerArguments=-nolisten tcp -dpi 276 # Useful programs pacaur -S chromium pacaur -S libreoffice-fresh hunspell hunspell-it hunspell-en_US pacaur -S breeze-gtk kde-gtk-config pacaur -S ttf-bitstream-vera ttf-croscore ttf-dejavu ttf-droid ttf-roboto noto-fonts ttf-liberation ttf-ubuntu-font-family pacaur -S cups cups-pdf pacaur -S copyqp pacaur -S kdeconnect pacaus -S keeweb-desktop pacaur -S syncthing # TODO: https://github.com/robbyrussell/oh-my-zsh https://github.com/systemd/systemd/issues/2750 https://bbs.archlinux.org/viewtopic.php?pid=1775108#p1775108 quiet mem_sleep_default=deep to the Kernel parameters.