37

I just installed ubuntu on my new intel SSD. Now I am not sure, whether paritions are properly aligned in respect to my specific SSD.

Here's my fdisk output.

$ fdisk -l

    Platte /dev/sda: 120.0 GByte, 120034123776 Byte
255 Köpfe, 63 Sektoren/Spur, 14593 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a6294

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *           1        1913    15360000   83  Linux
/dev/sda2            1913       14058    97558528   83  Linux
/dev/sda3           14058       14594     4300800   82  Linux Swap / Solaris

Also, do I still need to align my SSD at all, since I am using TRIM on the ext4 partitions by mounting them with the discard flag.

If it is the case, that my partitions are not properly aligned, what could I do to fix this without having to reinstall everything?

jottr
  • 764

3 Answers3

59

Parted has an align-check build in.

parted /dev/sda
align-check opt n

n is the partition you want to check.

wjp79
  • 691
11

Ensuring SSD alignment with parted tool looks like a pretty good guide for aligning your filesystem on the SSD:

  1. Get the block size of your SSD in bytes (there are heaps of tips, and I don't know which ones will work for which hardware).
  2. Start the partition editor:

    sudo parted
    
  3. Show the partition table:

    p
    
  4. Verify that the numbers in the Start and Size columns are divisible by the block size.
Eponymous
  • 115
David
  • 1,111
6

To be sure you have to use both built-in parted align-check option:

HDD:

DEVICE=/dev/sda && for i in `sudo parted $DEVICE print | grep -oE "^[[:blank:]]*[0-9]+"`; do   sudo parted $DEVICE align-check opt "$i"; done

SSD:

DEVICE=/dev/nvme0n1 && for i in `sudo parted $DEVICE print | grep -oE "^[[:blank:]]*[0-9]+"`; do   sudo parted $DEVICE align-check opt "$i"; done

and manual check (calculate divisibility by 4096B)

I've written a bash script to perform both checks:

https://github.com/crysman/check-partitions-alignment

(works on any GNU/Linux OS)

Or you can check manually using this table:

https://docs.google.com/spreadsheets/d/1dnDlhglxxgApvtUv0-nxn1iFYTqkjRELqCOWJtp3hbs/edit#gid=0

And yes, SSD HDD's partitions need to be aligned properly for maximum performance.

crysman
  • 538