Last night when I made partitions of one large 3T flash disk, I got some issues with the parted command.
The flash disk would be used as an Oracle ASM disk, so I preferred to split it to two partitions and every one would use half of it and the size would less than 2TB.
Below are some examples in my own VM and I only could add a 2TB hark disk.
- [root@olinux73 ~]# parted /dev/sdb
- GNU Parted 3.1
- Using /dev/sdb
- Welcome to GNU Parted! Type 'help' to view a list of commands.
- (parted) print
- Error: /dev/sdb: unrecognised disk label
- Model: ATA VBOX HARDDISK (scsi)
- Disk /dev/sdb: 2199GB
- Sector size (logical/physical): 512B/512B
- Partition Table: unknown
- Disk Flags:
- (parted) mklabel gpt
- (parted) help mkpart
- mkpart PART-TYPE [FS-TYPE] START END make a partition
- PART-TYPE is one of: primary, logical, extended
- FS-TYPE is one of: btrfs, nilfs2, ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp, linux-swap(v1), linux-swap(v0), ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs,
- amufs5, amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5, affs4, affs3, affs2, affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)
- START and END are disk locations, such as 4GB or 10%. Negative values count from the end of the disk. For example, -1s specifies exactly the last sector.
- 'mkpart' makes a partition without creating a new file system on the partition. FS-TYPE may be specified to set an appropriate partition ID.
So to create two primary partitions, I run below commands:
- (parted) mkpart primary 2048s 50%
- (parted) print
- Model: ATA VBOX HARDDISK (scsi)
- Disk /dev/sdb: 2199GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Disk Flags:
- Number Start End Size File system Name Flags
- 1 1049kB 1100GB 1100GB primary
- (parted) mkpart primary 1100G 100%
- (parted) print
- Model: ATA VBOX HARDDISK (scsi)
- Disk /dev/sdb: 2199GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Disk Flags:
- Number Start End Size File system Name Flags
- 1 1049kB 1100GB 1100GB primary
- 2 1100GB 2199GB 1100GB primary
- (parted) quit
- Information: You may need to update /etc/fstab.
- [root@olinux73 ~]# partprobe
- [root@olinux73 ~]# gdisk -l /dev/sdb
- GPT fdisk (gdisk) version 0.8.6
- Partition table scan:
- MBR: protective
- BSD: not present
- APM: not present
- GPT: present
- Found valid GPT with protective MBR; using GPT.
- Disk /dev/sdb: 4294965248 sectors, 2.0 TiB
- Logical sector size: 512 bytes
- Disk identifier (GUID): 39EBA439-3FC3-4D1B-889A-1FA66E9B7850
- Partition table holds up to 128 entries
- First usable sector is 34, last usable sector is 4294965214
- Partitions will be aligned on 2048-sector boundaries
- Total free space is 4029 sectors (2.0 MiB)
- Number Start (sector) End (sector) Size Code Name
- 1 2048 2147481599 1024.0 GiB 0700 primary
- 2 2147481600 4294963199 1024.0 GiB 0700 primary
Please note the partition names were the same!
- [root@olinux73 ~]# ls -l /dev/disk/by-partlabel/
- total 0
- lrwxrwxrwx. 1 root root 10 May 16 02:32 primary -> ../../sdb1
- [root@olinux73 ~]# lsblk -o NAME,PARTLABEL
- NAME PARTLABEL
- sda
- ├─sda1
- ├─sda2
- │ ├─ol-root
- │ └─ol-swap
- └─sda3
- sdb
- ├─sdb1 primary
- └─sdb2 primary
- sr0
On some systems such thing will cause warning messages in the /var/log/messages file:
- May 14 20:51:39 upderp1 systemd: Device dev-disk-by\x2dpartlabel-primary.device appeared twice with different sysfs paths /sys/devices/pci0000:00/0000:00:03.2/0000:06:00.0/nvme/nvme0/nvme0n1/nvme0n1p2 and /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0/nvme/nvme1/nvme1n1/nvme1n1p1
- May 14 20:51:39 upderp1 systemd: Device dev-disk-by\x2dpartlabel-primary.device appeared twice with different sysfs paths /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0/nvme/nvme1/nvme1n1/nvme1n1p1 and /sys/devices/pci0000:00/0000:00:03.2/0000:06:00.0/nvme/nvme0/nvme0n1/nvme0n1p2
- May 14 20:51:39 upderp1 systemd: Device dev-disk-by\x2dpartlabel-primary.device appeared twice with different sysfs paths /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0/nvme/nvme1/nvme1n1/nvme1n1p2 and /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0/nvme/nvme1/nvme1n1/nvme1n1p1
- May 14 20:51:39 upderp1 systemd: Device dev-disk-by\x2dpartlabel-primary.device appeared twice with different sysfs paths /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0/nvme/nvme1/nvme1n1/nvme1n1p2 and /sys/devices/pci0000:00/0000:00:03.2/0000:06:00.0/nvme/nvme0/nvme0n1/nvme0n1p2
- May 14 20:51:39 upderp1 systemd: Device dev-disk-by\x2dpartlabel-primary.device appeared twice with different sysfs paths /sys/devices/pci0000:80/0000:80:02.0/0000:82:00.0/nvme/nvme1/nvme1n1/nvme1n1p2 and /sys/devices/pci0000:00/0000:00:03.2/0000:06:00.0/nvme/nvme0/nvme0n1/nvme0n1p1
So we'd better correct this issue:
- [root@olinux73 ~]# sgdisk -c 1:sdb1 /dev/sdb
- The operation has completed successfully.
- [root@olinux73 ~]# sgdisk -c 2:sdb2 /dev/sdb
- The operation has completed successfully.
- [root@olinux73 ~]# lsblk -o NAME,PARTLABEL
- NAME PARTLABEL
- sda
- ├─sda1
- ├─sda2
- │ ├─ol-root
- │ └─ol-swap
- └─sda3
- sdb
- ├─sdb1 sdb1
- └─sdb2 sdb2
- sr0
- [root@olinux73 ~]# ls -l /dev/disk/by-partlabel/
- total 0
- lrwxrwxrwx. 1 root root 10 May 16 05:03 sdb1 -> ../../sdb1
- lrwxrwxrwx. 1 root root 10 May 16 05:03 sdb2 -> ../../sdb2
Another issue was that if the partition had been formatted before, and then I removed it and created a new partition, the filesystem information would be kept.
- [root@olinux73 ~]# parted /dev/sdb
- GNU Parted 3.1
- Using /dev/sdb
- Welcome to GNU Parted! Type 'help' to view a list of commands.
- (parted) print
- Model: ATA VBOX HARDDISK (scsi)
- Disk /dev/sdb: 2199GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Disk Flags:
- Number Start End Size File system Name Flags
- 1 1049kB 1100GB 1100GB ext4 sdb1
- 2 1100GB 2199GB 1100GB sdb2
- (parted) rm 2
- (parted) rm 1
- (parted) mkpart primary 2048s 100%
- (parted) print
- Model: ATA VBOX HARDDISK (scsi)
- Disk /dev/sdb: 2199GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Disk Flags:
- Number Start End Size File system Name Flags
- 1 1049kB 2199GB 2199GB ext4 primary
- (parted) quit
It was not a big issue if I would create a new filesystem on it, but I created it for Oracle ASM usage and it took me one hour to figure out I need to sweep the filesystem first or the installation program would never find it!