HDD: Difference between revisions

From Q
Jump to navigation Jump to search
Tgurr (talk | contribs)
No edit summary
Tgurr (talk | contribs)
No edit summary
Line 9: Line 9:
| EF02 || BIOS boot partition
| EF02 || BIOS boot partition
|-
|-
| EF00 || EFI System partition
| EF00 || EFI System Partition
|-
|-
| FD00 || Linux RAID
| FD00 || Linux RAID
|-
|-
| 8200 || Linux swap
| 8200 || Linux swap (auto-mounted by systemd)
|-
|-
| 8300 || Linux filesystem
| 8300 || Linux filesystem
|-
|-
| 8302 || Linux /home
| 8302 || Linux /home (auto-mounted by systemd)
|-
|-
| 8303 || Linux x86 root
| 8303 || Linux x86 root (/) (auto-mounted by systemd)
|-
|-
| 8304 || Linux x86-64 root
| 8304 || Linux x86-64 root (/) (auto-mounted by systemd)
|-
|-
| 8305 || Linux ARM64 root
| 8305 || Linux ARM64 root (/) (auto-mounted by systemd)
|-
|-
| 8306 || Linux /srv
| 8306 || Linux /srv (auto-mounted by systemd)
|}
|}


Line 35: Line 35:
/dev/sda2 500 MiB /boot 8300 ext4 Linux filesystem
/dev/sda2 500 MiB /boot 8300 ext4 Linux filesystem
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda4 25  GiB / 8303 ext4 Linux filesystem
/dev/sda4 25  GiB / 8304 ext4 Linux x86-64 root (/)
</pre>
</pre>
}}
}}
Line 74: Line 74:
enter
enter
enter
enter
8300
8304


p
p
Line 89: Line 89:
/dev/sda2 100 MiB /boot 8300 ext4 Linux filesystem
/dev/sda2 100 MiB /boot 8300 ext4 Linux filesystem
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda3 512 MiB 8200 swap Linux swap
/dev/sda4 25  GiB / 8303 ext4 Linux filesystem
/dev/sda4 25  GiB / 8304 ext4 Linux x86-64 root (/)
</pre>
</pre>
}}
}}
Line 125: Line 125:
enter
enter
enter
enter
8303
8304


p
p

Revision as of 13:01, 8 April 2014

Apart from the last step, setting up /etc/fstab there are no differences between partitioning a HDD or SSD drive. All modern Linux partitioning tools take care of aligning the partitions automatically.

Relevant Partition IDs

Partition ID Description
EF02 BIOS boot partition
EF00 EFI System Partition
FD00 Linux RAID
8200 Linux swap (auto-mounted by systemd)
8300 Linux filesystem
8302 Linux /home (auto-mounted by systemd)
8303 Linux x86 root (/) (auto-mounted by systemd)
8304 Linux x86-64 root (/) (auto-mounted by systemd)
8305 Linux ARM64 root (/) (auto-mounted by systemd)
8306 Linux /srv (auto-mounted by systemd)

Create a simple Linux GPT partition layout (UEFI with or without secure boot)

Code: GPT partition layout for UEFI
/dev/sda1	200 MiB	/boot/efi	EF00	vfat		EFI System Partition
/dev/sda2	500 MiB	/boot		8300	ext4		Linux filesystem
/dev/sda3	512 MiB			8200	swap		Linux swap
/dev/sda4	25  GiB	/		8304	ext4		Linux x86-64 root (/)
# gdisk /dev/sda


Code: gdisk commands
Command (? for help): p
Disk /dev/sda: 156301488 sectors, 74.5 GiB
[...]

n
1
enter
+200M
EF00

c
1
EFI System Partition

n
2
enter
+500M
8300

n
3
enter
+512M
8200

n
4
enter
enter
8304

p
w
Y

Create a simple Linux GPT partition layout (Legacy BIOS)

Code: GPT partition layout for legacy BIOS
/dev/sda1	1   MiB		EF02	BIOS boot	BIOS boot partition
/dev/sda2	100 MiB	/boot	8300	ext4		Linux filesystem
/dev/sda3	512 MiB		8200	swap		Linux swap
/dev/sda4	25  GiB	/	8304	ext4		Linux x86-64 root (/)


# gdisk /dev/sda


Code: gdisk commands
Command (? for help): p
Disk /dev/sda: 156301488 sectors, 74.5 GiB
[...]

n
1
enter
+1M
EF02

n
2
enter
+100M
8300

n
3
enter
+512M
8200

n
4
enter
enter
8304

p
w
Y

Create the filesystems

# mkfs.ext4 /dev/sda2
# mkswap /dev/sda3
# mkfs.ext4 /dev/sda4

Additional for UEFI:

# mkfs.vfat -F 32 /dev/sda1

Label the filesystems

# tune2fs -L boot /dev/sda2
# mkswap -L swap /dev/sda3
# tune2fs -L root /dev/sda4

Additional for UEFI:

# fatlabel /dev/sda1 efi

And verify with:

# blkid

Mount the filesystems

# mkdir -p /mnt/exherbo
# swapon /dev/sda3
# mount /dev/sda4 /mnt/exherbo
# mkdir /mnt/exherbo/boot
# mount /dev/sda2 /mnt/exherbo/boot

Additional for UEFI:

# mkdir /mnt/exherbo/boot/efi
# mount /dev/sda1 /mnt/exherbo/boot/efi

Optional: For installation or rescue purposes you might also need to mount the following.

# mount -o rbind /dev /mnt/exherbo/dev/
# mount -o bind /sys /mnt/exherbo/sys/
# mount -t proc none /mnt/exherbo/proc/

Configure /etc/fstab

List the UUIDs with:

# blkid


For HDDs

File: /etc/fstab
UUID=cf602240-7bac-4b29-8930-2080a5aac7cd       /            ext4    defaults                      0 1
UUID=0930a69b-f2d5-4607-93fe-4f8bfdf2ea87       /boot        ext4    defaults                      0 2
UUID=8E3D-60F5                                  /boot/efi    vfat    umask=0077,shortname=winnt    0 0
UUID=8431f5f2-0cb1-4831-aed2-00d618543e0a       swap         swap    defaults                      0 0

For SSDs

  • You could go for relatime as a compromise instead, but there are currently no known issues (exception is mutt) when using noatime
  • discard enables the TRIM function which should be available on all modern SSDs, check with
    # hdparm -I /dev/sda
  • mdraid, dm-crypt and the loopback block driver support passing discard commands to the underlying layer(s) since kernel 3.7


File: /etc/fstab
UUID=cf602240-7bac-4b29-8930-2080a5aac7cd       /            ext4    defaults,noatime,discard           0 1
UUID=0930a69b-f2d5-4607-93fe-4f8bfdf2ea87       /boot        ext4    defaults,noatime,discard,noauto    0 2
UUID=8E3D-60F5                                  /boot/efi    vfat    umask=0077,shortname=winnt         0 0
UUID=8431f5f2-0cb1-4831-aed2-00d618543e0a       swap         swap    defaults                           0 0

SSD: Check estimated remaining life time / Wear Leveling Count

To check the current Wear Leveling Count (supported e.g. by Samsung SSDs).

# smartctl -a /dev/sda
Code: smartctl Wear_Leveling_Count Output
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       2

The Wear_Leveling_Count starts to count down from 100 to 01, in this example it's 099 since the drive is pretty new.

Then proceed to configure GRUB and your Kernel.