Linux Basic Partitioning: Difference between revisions

From WikiMLT
m (Text replacement - "mlw-continue" to "code-continue")
 
Line 11: Line 11:
In this guide we will use the tool <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/fdisk.8.html fdisk]</code> to accomplish this task.
In this guide we will use the tool <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/fdisk.8.html fdisk]</code> to accomplish this task.


<syntaxhighlight lang="shell" line="1" class="mlw-continue">
<syntaxhighlight lang="shell" line="1" class="code-continue">
sudo fdisk /dev/nvme0n1
sudo fdisk /dev/nvme0n1
</syntaxhighlight><syntaxhighlight lang="yaml" class="mlw-continue">
</syntaxhighlight><syntaxhighlight lang="yaml" class="code-continue">
# Create a new empty GPT partition table:
# Create a new empty GPT partition table:
Command (m for help): g   
Command (m for help): g   
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
# Add a new partition:
# Add a new partition:
Command (m for help): n
Command (m for help): n
Line 24: Line 24:
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-1951473664, default 1951473664): +512M
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-1951473664, default 1951473664): +512M
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB.
Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB.
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
# Add a new partition:
# Add a new partition:
Command (m for help): n
Command (m for help): n
Line 34: Line 34:
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-1951473664, default 1951473664): +488M
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-1951473664, default 1951473664): +488M
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
Created a new partition 2 of type 'Linux filesystem' and of size 488 MiB.
Created a new partition 2 of type 'Linux filesystem' and of size 488 MiB.
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
# Add a new partition:
# Add a new partition:
Command (m for help): n
Command (m for help): n
Line 44: Line 44:
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2050048-1951473664, default 1951473664): [Press Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2050048-1951473664, default 1951473664): [Press Enter]
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
Created a new partition 3 of type 'Linux filesystem' and of size 930.54 GiB.
Created a new partition 3 of type 'Linux filesystem' and of size 930.54 GiB.
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
# Change a partition type:
# Change a partition type:
Command (m for help): t
Command (m for help): t
Line 53: Line 53:
Partition type (type L to list all types): 1
Partition type (type L to list all types): 1
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
Changed type of partition 'Linux filesystem' to 'EFI System'.
Changed type of partition 'Linux filesystem' to 'EFI System'.
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
# Change a partition type:
# Change a partition type:
Command (m for help): t
Command (m for help): t
Line 62: Line 62:
Partition type (type L to list all types): 31
Partition type (type L to list all types): 31
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
Changed type of partition 'Linux filesystem' to 'Linux LVM'.
Changed type of partition 'Linux filesystem' to 'Linux LVM'.
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
# Print the partition table:
# Print the partition table:
Command (m for help): p
Command (m for help): p


</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB                     
Disk model: Samsung SSD 980 1TB                     
Line 85: Line 85:


</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
#  Verify the partition table
#  Verify the partition table
Command (m for help): v
Command (m for help): v
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="shell-session" class="mlw-continue">
<syntaxhighlight lang="shell-session" class="code-continue">
No errors detected.
No errors detected.
Header version: 1.0
Header version: 1.0
Line 95: Line 95:
A total of 0 free sectors is available in 0 segments (the largest is (null)).
A total of 0 free sectors is available in 0 segments (the largest is (null)).
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="yaml" class="mlw-continue">
<syntaxhighlight lang="yaml" class="code-continue">
# Write the table to the disk and exit:
# Write the table to the disk and exit:
Command (m for help): w
Command (m for help): w
</syntaxhighlight><syntaxhighlight lang="shell-session" class="mlw-continue">
</syntaxhighlight><syntaxhighlight lang="shell-session" class="code-continue">
The partition table has been altered.
The partition table has been altered.
Calling ioctl() to re-read partition table.
Calling ioctl() to re-read partition table.
Line 105: Line 105:


== Format the Partitions ==
== Format the Partitions ==
'''1.''' Format the UEFI partition, <code>/dev/nvme0n1p1</code>, as Fat32 by <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/mkfs.vfat.8.html mkfs.vfat]</code>.<syntaxhighlight lang="shell" line="1" class="mlw-continue">
'''1.''' Format the UEFI partition, <code>/dev/nvme0n1p1</code>, as Fat32 by <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/mkfs.vfat.8.html mkfs.vfat]</code>.<syntaxhighlight lang="shell" line="1" class="code-continue">
sudo mkfs.vfat -F 32 /dev/nvme0n1p1
sudo mkfs.vfat -F 32 /dev/nvme0n1p1
</syntaxhighlight>'''2.''' Format the BOOT partition, <code>/dev/nvme0n1p2</code>, as Ext2 (or Ext4) by <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/mkfs.ext2.8.html mkfs.ext2]</code> (or <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/mkfs.ext4.8.html mkfs.ext4]</code>).<syntaxhighlight lang="shell" line="1" class="mlw-continue">
</syntaxhighlight>'''2.''' Format the BOOT partition, <code>/dev/nvme0n1p2</code>, as Ext2 (or Ext4) by <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/mkfs.ext2.8.html mkfs.ext2]</code> (or <code>[https://manpages.ubuntu.com/manpages/jammy/en/man8/mkfs.ext4.8.html mkfs.ext4]</code>).<syntaxhighlight lang="shell" line="1" class="code-continue">
sudo mkfs.ext2 /dev/nvme0n1p2
sudo mkfs.ext2 /dev/nvme0n1p2
</syntaxhighlight>'''3.''' Create LVM Physical volume (PV) on the largest partition, <code>/dev/nvme0n1p2</code>, by <code>pvcreate</code>.<syntaxhighlight lang="shell" line="1" class="mlw-continue">
</syntaxhighlight>'''3.''' Create LVM Physical volume (PV) on the largest partition, <code>/dev/nvme0n1p2</code>, by <code>pvcreate</code>.<syntaxhighlight lang="shell" line="1" class="code-continue">
sudo pvcreate /dev/nvme0n1p3
sudo pvcreate /dev/nvme0n1p3
</syntaxhighlight>Lather when the Volume groups and Logical volumes are create they could be formatted as certain file system. For more details read the article [[LVM Basic Operations]].
</syntaxhighlight>Lather when the Volume groups and Logical volumes are create they could be formatted as certain file system. For more details read the article [[LVM Basic Operations]].


== Get information about a Block device by Fdisk and Parted ==
== Get information about a Block device by Fdisk and Parted ==
<syntaxhighlight lang="shell" line="1" class="mlw-continue">
<syntaxhighlight lang="shell" line="1" class="code-continue">
sudo fdisk -l /dev/nvme0n1
sudo fdisk -l /dev/nvme0n1
</syntaxhighlight><syntaxhighlight lang="terraform">
</syntaxhighlight><syntaxhighlight lang="terraform">
Line 129: Line 129:
/dev/nvme0n1p2 1050624    2050047    999424  488M Linux filesystem
/dev/nvme0n1p2 1050624    2050047    999424  488M Linux filesystem
/dev/nvme0n1p3 2050048 1953523711 1951473664 930.5G Linux LVM
/dev/nvme0n1p3 2050048 1953523711 1951473664 930.5G Linux LVM
</syntaxhighlight><syntaxhighlight lang="shell" line="1" class="mlw-continue">
</syntaxhighlight><syntaxhighlight lang="shell" line="1" class="code-continue">
sudo parted -l  # -l, --list - lists partition layout on all block device
sudo parted -l  # -l, --list - lists partition layout on all block device
</syntaxhighlight><syntaxhighlight lang="terraform">
</syntaxhighlight><syntaxhighlight lang="terraform">

Latest revision as of 08:30, 26 September 2022

In this guide we are as­sum­ing that, we want to pre­pare the de­vice /​​​dev/​​​nvme0n1 for Lin­ux UE­FI in­stal­la­tion with LVM and GPT par­ti­tion ta­ble. So the par­ti­tions that will be cre­at­ed are as fol­low:

  • /​​​dev/​​​nvme0n1p1 – EFI Sys­tem (for: /​​​boot/​​​efi),
  • /​​​dev/​​​nvme0n1p2 – Lin­ux filesys­tem (for: /​​​boot),
  • /​​​dev/​​​nvme0n1p3 – Lin­ux LVM (for: /, /​​​home, etc.).

We can use fdisk, part­ed or gdisk with­in the com­mand line, or we can use gpart­ed and oth­er sim­i­lar tools for ma­nip­u­la­tion the par­ti­tion ta­ble via the graph­i­cal user in­ter­face. Note this op­er­a­tion will wipe all par­ti­tions and cre­ate new par­ti­tions you need.

Par­ti­tion­ing with Fdisk

In this guide we will use the tool fdisk to ac­com­plish this task.

sudo fdisk /dev/nvme0n1
# Create a new empty GPT partition table:
Command (m for help): g
# Add a new partition:
Command (m for help): n
Partition number (1-128, default 1): 1
First sector (2048-1951473664, default 2048): [Press Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-1951473664, default 1951473664): +512M
Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB.
# Add a new partition:
Command (m for help): n
Partition number (2-128, default 1): 2
First sector (1050624-1951473664, default 1050624): [Press Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-1951473664, default 1951473664): +488M
Created a new partition 2 of type 'Linux filesystem' and of size 488 MiB.
# Add a new partition:
Command (m for help): n
Partition number (3-128, default 1): 3
First sector (2050048-1951473664, default 2050048): [Press Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2050048-1951473664, default 1951473664): [Press Enter]
Created a new partition 3 of type 'Linux filesystem' and of size 930.54 GiB.
# Change a partition type:
Command (m for help): t
Partition number (1-3, default 3): 1
Partition type (type L to list all types): 1
Changed type of partition 'Linux filesystem' to 'EFI System'.
# Change a partition type:
Command (m for help): t
Partition number (1-3, default 3): 3
Partition type (type L to list all types): 31
Changed type of partition 'Linux filesystem' to 'Linux LVM'.
# Print the partition table:
Command (m for help): p
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB                     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: E5B93AC4-141D-4174-B94D-07FCBB074D5C

Device           Start        End    Sectors   Size Type
/dev/nvme0n1p1    2048    1050623    1048576   512M EFI System
/dev/nvme0n1p2 1050624    2050047     999424   488M Linux filesystem
/dev/nvme0n1p3 2050048 1953523711 1951473664 930.5G Linux LVM
#  Verify the partition table
Command (m for help): v
No errors detected.
Header version: 1.0
Using 2 out of 128 partitions.
A total of 0 free sectors is available in 0 segments (the largest is (null)).
# Write the table to the disk and exit:
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

For­mat the Par­ti­tions

1. For­mat the UE­FI par­ti­tion, /​​​dev/​​​nvme0n1p1, as Fat32 by mkfs.vfat.

sudo mkfs.vfat -F 32 /dev/nvme0n1p1

2. For­mat the BOOT par­ti­tion, /​​​dev/​​​nvme0n1p2, as Ext2 (or Ext4) by mkfs.ext2 (or mkfs.ext4).

sudo mkfs.ext2 /dev/nvme0n1p2

3. Cre­ate LVM Phys­i­cal vol­ume (PV) on the largest par­ti­tion, /​​​dev/​​​nvme0n1p2, by pvcre­ate.

sudo pvcreate /dev/nvme0n1p3

Lath­er when the Vol­ume groups and Log­i­cal vol­umes are cre­ate they could be for­mat­ted as cer­tain file sys­tem. For more de­tails read the ar­ti­cle LVM Ba­sic Op­er­a­tions.

Get in­for­ma­tion about a Block de­vice by Fdisk and Part­ed

sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB                     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: E5B93AC4-141D-4174-B94D-07FCBB074D5C

Device           Start        End    Sectors   Size Type
/dev/nvme0n1p1    2048    1050623    1048576   512M EFI System
/dev/nvme0n1p2 1050624    2050047     999424   488M Linux filesystem
/dev/nvme0n1p3 2050048 1953523711 1951473664 930.5G Linux LVM
sudo parted -l   # -l, --list - lists partition layout on all block device
...
Model: Samsung SSD 980 1TB (nvme)
Disk /dev/nvme0n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size   File system  Name                  Flags
 1      1049kB  538MB   537MB  fat32        EFI System Partition  boot, esp
 2      538MB   1050MB  512MB  ext2
 3      1050MB  1000GB  999GB                                     lvm

Ref­er­ences