03b.Partitionning T480s laptop - Jubijub/arch-config GitHub Wiki

Pre-installation - disk partitioning - T480s laptop (dual boot, single EFI partition)

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

Laptop - Single drive single EFI Dual boot

laptop

This is a traditional dual boot on one single drive. The linux bootloader offers the OS selection at boot time, and the /boot partition is shared between Linux and Windows.

Important
Windows has to be installed first.
Warning
By default windows boot size is 100mb, which is enough for one linux kernel. You can work around this at Windows setup time by using diskpart to delete the boot partition and create a larger one instead.

List of drives on my laptop

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

477 GiB

Samsung PM981 SSD 512 GiB NVME

Disk 0

/dev/nvme0n1

Windows + Linux

/ + C:

Partition table (T480s) for the main drive

My laptop has 16GiB of ram, so I am also using 16GiB of swap.

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

/dev/nvme0n1p1

499MiB

Windows recovery environment

/dev/nvme0n1p2

1024MiB

EFI System partition (ef00)

/boot

/dev/nvme0n1p3

16MiB

Windows reserved

/dev/nvme0n1p4

194.7GiB

Microsoft basic data

C: (Windows 10)

/dev/nvme0n1p5

16GiB

Linux Swap 8200

/swap

/dev/nvme0n1p6

50GiB

Linux Filesystem (8300)

/

/dev/nvme0n1p7

*

Linux Filesystem (8300)

/home

Note
the standard EFI partition created by windows is usually 100MiB. I configured it to be 550MiB during the Windows setup.

Check current disks and partitions (T480s)

lsblk -o name,model,fstype,parttype,mountpoint,label,size,partuuid    #(1)
fdisk -l    #(2)
  1. shows an overview as a tree <.> shows a high level partition table for each disk

Create the partitions for the main drive

Warning
Do not wipe the partitions or you will delete Windows

Setup the new partition table structure for the main drive

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

cgdisk /dev/nvme0n1
  • The Windows partition structure will appear, leave it alone.

  • Create swap partition (/dev/nvme0n1p5)

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

    • -16GiB (to set first sector, from the end of the drive)

    • [Enter] (default value for end sector)

    • 8200 (partition type = Linux swap 8200)

    • swap (partition name)

    • The partition will appear at the end of the list

  • Create root partition (/dev/nvme0n1p6)

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

    • [Enter] (to set first sector)

    • 50GiB (default value for end sector)

    • [Enter] (partition type = Linux Filesystem 8300)

    • root (partition name)

  • Create home partition (/dev/nvme0n1p7)

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

    • [Enter] (to set first sector)

    • [Enter] (default value for end sector to use the*remaining size of the disk)

    • [Enter](partition type = Linux Filesystem 8300)

    • home (partition name)

  • Select [write]

  • Confirm by typing yes

  • Select [Quit]

Format the partitions

mkfs.ext4 /dev/nvme0n1p6 -L ArchLinux       # (1)
mkfs.ext4 /dev/nvme0n1p7 -L JubiHome        # (2)
mkswap /dev/nvme0n1p5 -L Swap               # (3)
swapon /dev/nvme0n1p5                       # (4)
  1. formats / <.> formats /home <.> declares /swap <.> enables swapping

Verify that the partitions are OK

ls -l /dev/disk/by-partuuid
lsblk -o name,fstype,parttype,mountpoint,label,size,uuid
  • 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/nvme0n1p6 /mnt # (1)
mkdir /mnt/home # (2)
mount /dev/nvme0n1p7 /mnt/home
mkdir /mnt/boot # (3)
mount /dev/nvme0n1p2 /mnt/boot
  1. Mount / <.> creates the home mounting point and mounts /home <.> creates the boot mounting point and mounts /boot

    • Verify that /mnt/boot contains a folder called EFI (this is the pre-existing Windows bootloader)

What you got so far

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

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