In the 21st century, we are inclined to take knowledge storage with no consideration. We have plenty of it, it is comparatively reasonably priced, and there are a lot of several types of storage out there. No matter how a lot cloud cupboard space you are given totally free, there’s nothing fairly like having a bodily onerous drive to your actually essential (or actually huge, once you stay on a sluggish community) knowledge. However, few onerous drives are offered proper off the shelf, prepared to make use of—in a super configuration, a minimum of. Whether you are shopping for a brand new drive or establishing a system with a unique configuration, you’ll want to know the way to partition a drive on Linux.
This article demonstrates GNU Parted, top-of-the-line instruments for partitioning drives. If you like to make use of a graphical software as an alternative of a terminal command, learn my article on formatting drives for Linux.
Disk labels, partitions, and filesystems
A tough drive would not technically require a lot software program to function a storage system. However, utilizing a drive with out fashionable conventions like a partition desk and filesystem is troublesome, impractical, and unsafe to your knowledge.
There are three essential ideas you’ll want to learn about onerous drives:
- A disk label or partition desk is metadata positioned at first of a drive, serving as a clue for the pc studying it about what sort of storage is obtainable and the place it is positioned on the drive.
- A partition is a boundary figuring out the place a filesystem is positioned. For occasion, in case you have a 512GB drive, you may have a partition on that system that takes up all the drive (512GB), or two partitions that every take 256GB every, or three partitions taking over another variation of sizes, and so forth.
- A filesystem is a storage scheme agreed upon by a tough drive and a pc. A pc should know the way to learn a filesystem to piece collectively all the information saved on the drive, and it should know the way to write knowledge again to the filesystem to keep up the information’s integrity.
The GNU Parted software manages the primary two ideas: disk labels and partitions. Parted has some consciousness of filesystems, however it leaves the main points of filesystem implementation to different instruments like mkfs
.
[Download the GNU Parted cheat sheet]
Locating the drive
Before utilizing GNU Parted, you have to be sure the place your drive is positioned in your system. First, connect the onerous drive you need to format to your system, after which use the parted
command to see what’s hooked up to your laptop:
$ parted /dev/sda print gadgets
/dev/sda (2000GB)
/dev/sdb (1000GB)
/dev/sdc (1940MB)
The system you most just lately hooked up will get a reputation later within the alphabet than gadgets which were hooked up longer. In this instance, /dev/sdc
is more than likely the drive I simply hooked up. I can verify that by its measurement as a result of I do know that the USB thumb drive I hooked up is just 2GB (1940MB is shut sufficient), in comparison with my workstation’s important drives, that are terabytes in measurement. If you are undecided, then you will get extra details about the drive you assume is the one you need to partition:
$ parted /dev/sdc print
Model: Yoyodyne Tiny Drive 1.zero (scsi)
Disk /dev/sdc: 1940MB
Sector measurement (logical/bodily): 512B/512B
Partition Table: msdos
Disk Flags:Number Start End Size File system Name Flags
1 1049kB 2048kB 1024kB BS Bloat Hidden
2 2049kB 1939MB 1937MB FAT32 MyDrive
Some drives present extra metadata than others. This one identifies itself as a drive from Yoyodyne, which is precisely the branding on the bodily drive. Furthermore, it incorporates a small hidden partition on the entrance of the drive with some bloatware adopted by a Windows-compatible FAT32 partition. This is certainly the drive I intend to reformat.
Before persevering with, be sure you have got recognized the proper drive you need to partition. Repartitioning the incorrect drive leads to misplaced knowledge. For security, all doubtlessly damaging instructions on this article reference the /dev/sdX
system, which you might be unlikely to have in your system.
Creating a disk label or partition desk
To create a partition on a drive, the drive will need to have a disk label. A disk label can also be known as a partition desk, so Parted accepts both time period.
To create a disk label, use the mklabel
or mktable
subcommand:
$ parted /dev/sdX mklabel gpt
This command creates a gpt label on the entrance of the drive positioned at /dev/sdX
, erasing any label which will exist. This is a fast course of as a result of all that is being changed is metadata about partitions.
Creating a partition
To create a partition on a drive, use the mkpart
subcommand, adopted by an optionally available title to your partition, adopted by the partition’s begin and finish factors. If you solely want one partition in your drive, then sizing is straightforward: begin at 1 and finish at 100%. Use the --align choose
choice to permit Parted to regulate the place of the partition boundaries for greatest efficiency:
$ parted /dev/sdX --align choose
mkpart instance 1 100%
View your new partition with the print
subcommand:
$ parted /dev/sdX print
Model: Yoyodyne Tiny Drive 1.zero (scsi)
Disk /dev/sdi: 1940MB
Sector measurement (logical/bodily): 512B/512B
Partition Table: gpt
Disk Flags:Number Start End Size
1 1049kB 1939MB 1938MB
You do not have to make use of the entire disk for one partition. The benefit to a partition is that multiple filesystem can exist on a drive with out interfering with the opposite partition(s). When sizing partitions, you need to use the unit
subcommand to set what sort of measurements you need to use. Parted understands sectors, cylinders, heads, bytes, kilobytes, megabytes, gigabytes, terabytes, and percentages.
You may also specify what filesystem you plan to make use of a partition for. This would not create the filesystem, however it does present metadata that might be helpful to you later.
Here’s a 50-50 cut up, one for an XFS filesystem and one other for an EXT4 filesystem:
$ parted /dev/sdX --align choose
mkpart xfs 1 50%
$ parted /dev/sdX --align choose
mkpart ext4 51% 100%
Naming a partition
In addition to marking what filesystem a partition is for, you can even title every partition. Some file managers and utilities learn partition names, which may help you determine drives. For occasion, I typically have a number of completely different drives hooked up on my media workstation, every belonging to a unique venture. When creating these drives, I title each the partition and the filesystem in order that, irrespective of how I am taking a look at my system, the places with essential knowledge are clearly labeled.
To title a partition, you have to know its quantity:
$ parted /dev/sdX print
[...]
Number Start End Size File system Name Flags
1 1049kB 990MB 989MB xfs instance
2 1009MB 1939MB 930MB ext4 noname
To title partition 1:
$ parted /dev/sdX title 1 instance
$ parted /dev/sdX print
[...]
Number Start End Size File system Name Flags
1 1049kB 990MB 989MB xfs instance
2 1009MB 1939MB 930MB ext4 noname
Create a filesystem
For your drive to be helpful, you have to create a filesystem in your new partition. GNU Parted would not do this as a result of it is solely a partition supervisor. The Linux command to create a filesystem on a drive is mkfs
, however there are useful utilities aliased so that you can use to create a particular type of filesystem. For occasion, mkfs.ext4
creates an EXT4 filesystem, whereas mkfs.xfs
creates an XFS filesystem, and so forth.
Your partition is positioned “in” the drive, so as an alternative of making a filesystem on /dev/sdX
, you create your filesystem in /dev/sdX1
for the primary partition, /dev/sdX2
for the second partition, and so forth.
Here’s an instance of making an XFS filesystem:
$ sudo mkfs.xfs -L mydrive /dev/sdX1
Download our cheat sheet
Parted is a versatile and highly effective command. You can subject it instructions, as demonstrated on this article, or activate an interactive mode so that you simply’re consistently “connected” to a drive you specify:
$ parted /dev/sdX
(parted) print
[...]
Number Start End Size File system Name Flags
1 1049kB 990MB 989MB xfs instance
2 1009MB 1939MB 930MB ext4 noname(parted) title 1 mydrive
(parted)
If you plan to make use of Parted typically, download our GNU Parted cheat sheet so that you’ve all of the subcommands you want shut at hand.