-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Willian Santos edited this page Feb 7, 2025
·
10 revisions
Warning
I do not recommend you to follow this guide. I am just saving it here in case I need it in the future.
If you want a shared partition to easily share files between Windows and Linux, make sure to create it before installing Arch.
- Create the partition using the Disk Management tool and format it as NTFS. Make sure to assign a drive letter so it shows in File Explorer.
- Install ntfs-3g
$ sudo pacman -S ntfs-3g
- Verify the partition name:
$ lsblk
- Mount the partition
$ mkdir -p /Windows
$ mount /dev/<partition_name> /Windows
- Check the partition UUID:
$ lsblk -f
- Edit
/etc/fstab
$ sudoedit /etc/fstab
- Append the following line to the end of the file:
UUID=<shared_partition_uuid> /Windows ntfs defaults 0 2
-
Make sure there is enough free space to install.
-
Keyboard layout
$ loadkeys us-acentos
- Sync date and time
$ timedatectl set-timezone America/Sao_Paulo
$ timedatectl set-ntp on
$ timedatectl
- Check partitions
$ lsblk
$ lsblk -f
# The Windows EFI partition is the one formatted as vfat FAT32 with 100MB
- Partitioning
$ cfdisk /dev/<disk>
# e.g. $ cfdisk /dev/nvme0n1
Create 1 partition with the total available space and make sure its type is "Linux filesystem".
There is no need to create an EFI partition since we'll use the existing one from Windows.
- Check partitions
$ lsblk
- Format partition
$ mkfs.ext4 -L "Arch" /dev/<partition>
# e.g. $ mkfs.ext4 -L "Arch" /dev/nvme0n1p5
# MAKE SURE TO USE THE NEWLY CREATED PARTITION
- Mount partition
$ mount /dev/<partition> /mnt
- Configure mirrorlist
$ cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
$ reflector --verbose --country 'Brazil' -l 5 --sort rate --save /etc/pacman.d/mirrorlist
- Install essentials
$ pacstrap /mnt base sudo linux linux-firmware sof-firmware base-devel grub efibootmgr neovim git networkmanager os-prober man-db man-pages intel-ucode dhcpcd
- Generate fstab
$ genfstab -U /mnt >> /mnt/etc/fstab
- cd into the new system:
$ arch-chroot /mnt
- Change root password
$ passwd
- Create user
$ useradd -m <username>
$ passwd <username>
$ usermod -aG wheel,storage,power <username>
# Edit visudo and uncomment this line: %wheel ALL=(ALL) ALL
$ EDITOR=nvim visudo
- Locale
# Edit /etc/locale.gen and uncomment this line: en_US.UTF-8 UTF-8
$ nvim /etc/locale.gen
$ locale-gen
$ echo LANG=en_US.UTF-8 > /etc/locale.conf
$ export LANG=en_US.UTF-8
- Hosts
$ echo arch > /etc/hostname
# Edit /etc/hosts and add the following:
# 127.0.0.1 localhost
# ::1 localhost
# 127.0.0.1 arch.localdomain localhost
$ nvim /etc/hosts
- Configure localtime
$ ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
$ hwclock --systohc
$ timedatectl
- Configure bootloader
$ mkdir /boot/efi
$ lsblk -f
$ mount /dev/<efi_partition> /boot/efi/
# <efi_partition> is the same as Windows, the one formatted as vfat FAT32 with 100MB
$ pacman -S os-prober
# Edit /etc/default/grub and uncomment this line: GRUB_DISABLE_OS_PROBER=false
$ nvim /etc/default/grub
$ grub-install --target=x86_64-efi --bootloader-id="Grub - Arch Linux" --efi-directory=/boot/efi/ --modules="tpm" --disable-shim-lock
$ grub-mkconfig -o /boot/grub/grub.cfg
# Make sure Windows boot entry is found.
- Enable network services
$ sudo systemctl enable NetworkManager.service
$ sudo systemctl start NetworkManager.service
$ ping google.com
- Umount and reboot
$ exit
$ umount -lR /mnt
$ reboot
Next: Set up environment