03a.Partitionning Workstation - Jubijub/arch-config GitHub Wiki

Pre-installation - disk partitioning - Workstation (dual drive / dual EFI partitions)

Table of Contents

This part follows closely the Arch wiki Installation Guide, and covers the part called Pre-installation link in the wiki.

The goal of this section is to partition the drives of the computer to be able to Install Arch, and to mount the drives to start the chroot environment.

Note
It is always assumed that Windows has been installed before Linux.

References

Workstation - dual drive dual EFI

workstation

In this setup, the OS selection is done at boot time via the EFI bios : F8 during startup, and selecting the right disk. This is thus a dual bootloader dual boot. This setup prevents any OS from messing up with the other one (I am looking at you Windows 11).

Important
Windows has to be installed first as it still tries to colonise the Linux boot partition if it exists.

List of drives on my workstation

Table 1. Table List of drives
Capacity Model Name Device path OS Usage

931.51 GiB

Crucial SSD MX200 1TiB SATA

Disk 0

/dev/sda

Windows

Data

931.51 GiB

Samsung SSD 860 EVO 1TiB SATA

Disk 1

/dev/sdb

Windows

/Videos2

1863 GiB

Samsung SSD 980 Pro 2Tib M2.2280 NVME

Disk 2

/dev/nvme0n1

Windows

Videos

931.50 GiB

Samsung SSD 990 Pro 2Tib M2.2280 NVME

Disk 3

/dev/nvme1n1

Windows

OS

931.50 GiB

Samsung SSD 990 Pro 2Tib M2.2280 NVME

Disk 4

/dev/nvme2n1

Linux

OS

Linux Partition tables

My workstation has 64GiB of ram, so I am using 64GiB of swap size. This is probably overkill 😃

Table 2. Partition table for the main Arch drive
Linux Path Size Type Usage

/dev/nvme2n1p1

2048MiB

EFI System - ef00

/boot

/dev/nvme2n1p2

64GiB

Linux Swap - 8200

swap

/dev/nvme2n1p3

(128Gio)

Linux Filesystem - 8300

/

/dev/nvme2n1p4

(500Gio)

Linux Filesystem - 8300

/home

/dev/nvme2n1p5

(~1.1Tio)

Linux Filesystem - 8300

/projects

Check current disks and partitions

lsblk # (1)
lsblk -o name,size,type,mountpoints,vendor,model,label,partuuid    (2)
fdisk -l # (3)
  1. shows an overview as a tree <.> no spaces after the commas <.> shows a high level partition table for each disk

Create the partitions for the main Arch drive

Wipe existing partitions for the main Arch drive

gdisk /dev/nvme2n1
  • X then Z then confirm with Y, Y

Setup the new partition table structure for the main Arch drive

This follows exactly the partition structure given in the tables above.

cgdisk /dev/nvme2n1
  • Confirm warning with Enter

  • Create boot partition (/dev/nvme2n1p1)

    • Select free space, choose new option

    • Enter (to set first sector)

    • 2048M (for end sector)

    • ef00 (partition type = EFI system)

    • boot (partition name)

  • Create swap partition (/dev/nvme2n1p2)

    • Select free space (the large one), choose new option

    • -64G (to set first sector, starting from the end)

    • Enter (default value for end sector)

    • 8200 (partition type = Linux swap 8200)

    • swap (partition name)

  • Create root partition (/dev/nvme2n1p3)

    • Select free space (the large one), choose new option

    • Enter (default value for first sector)

    • 128G (to set the end sector)

    • Enter (partition type = Linux Filesystem 8300)

    • root (partition name)

  • Create home partition (/dev/nvme2n1p4)

    • Select free space (the large one), choose new option

    • Enter (default value for first sector)

    • 500G (to set the end sector)

    • Enter (partition type = Linux Filesystem 8300)

    • home (partition name)

  • Create projects partition (/dev/nvme2n1p5)

    • Select free space (the large one), choose new option

    • Enter (default value for first sector)

    • Enter (default value for end sector)

    • Enter (partition type = Linux Filesystem 8300)

    • projects (partition name)

  • Select write

  • Confirm by typing yes

  • Select quit

Format the partitions

mkfs.fat -F32 /dev/nvme2n1p1 # (1)
mkfs.ext4 /dev/nvme2n1p3 -L ArchLinux # (2)
mkfs.ext4 /dev/nvme2n1p4 -L Home # (3)
mkfs.ext4 /dev/nvme2n1p5 -L Projects # (4)
mkswap /dev/nvme2n1p2 -L Swap # (5)
swapon /dev/nvme2n1p2 # (6)
  1. formats /boot <.> formats / <.> formats /home <.> formats /projects <.> declares /swap <.> enables swapping

Verify that the partitions are OK

lsblk -o name,model,fstype,parttype,mountpoint,label,size,partuuid
  • Standard Linux partition should have parttype 0FC63DAF-8483-4772-8E79-3D69D8477DE4

  • Swap Linux partition should have parttype 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F

Mount the filesystem

mount /dev/nvme2n1p3 /mnt # (1)

mkdir /mnt/boot # (2)
mount /dev/nvme2n1p1 /mnt/boot

mkdir /mnt/home # (3)
mount /dev/nvme2n1p4 /mnt/home

mkdir /mnt/projects # (4)
mount /dev/nvme2n1p5 /mnt/projects
  1. Mount / <.> creates the boot mounting point and mounts /boot <.> creates the data mounting point and mounts /home <.> creates the data mounting point and mounts /projects

Note
You can proceed to the next section.

What you got so far

Your hardrives are ready for Arch linux installation, which we will cover next.

⚠️ **GitHub.com Fallback** ⚠️