03a.Partitionning Workstation - Jubijub/arch-config GitHub Wiki
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. |
-
Linux EFI partition size recommendation (ESP size guide)
-
Windows (UEFI/GPT-based hard drive partition)

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. |
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 |
My workstation has 64GiB of ram, so I am using 64GiB of swap size. This is probably overkill 😃
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 |
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
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)
-
formats /boot <.> formats / <.> formats /home <.> formats /projects <.> declares /swap <.> enables swapping
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 /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
-
Mount / <.> creates the
boot
mounting point and mounts /boot <.> creates thedata
mounting point and mounts /home <.> creates thedata
mounting point and mounts /projects
Note
|
You can proceed to the next section. |