1

I realize that there can be an issue using 3TB drives with Ubuntu:

Trouble creating 3TB ext4 partition due to msdos-partition-table-imposed error

I read the answer given here but am still unsure, plus the answer is a few years old now.

The partition of free space I am trying to install to is 1.8T, so will this still cause the same problem as it's under the 2TB limit where problems start (see James Henstridge's answer above)?

I am trying to create a dual boot machine, where windows 10 is already installed, I got as far as creating the root partition as shown here:

https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/

However, when I try to add the swap partition I get the error above.

If this is the same problem, I'd like to be hand held through the whole process of repartitioning the dice as I really don't understand the answer above properly.

3
  • 1
    I suggest that you use a GUID partition table, GPT, instead of an MSDOS partition table. GPT can manage drives bigger than 2 TB. See this link.
    – sudodus
    Apr 12, 2018 at 12:32
  • Can I change to a GUID partitioning and still keep the existing partitions in place? The disk is currently partitioned as sdb1 2.2TB,sdb2 471.9 MB, sdb3 18 GB, free space 1.8 TB. I'm trying to install to the 1.8TB of free space without affecting the other partitions.
    – Bazman
    Apr 12, 2018 at 12:37
  • 1
    It might work, but is risky. I would get a new drive (or use another existing drive for backup of the data on this drive), and then use gparted to create a new partition table (via the pulldown menu Device) and the partitions you want. Finally I would copy the data to the partitions in the GUID partition table.
    – sudodus
    Apr 12, 2018 at 12:42

1 Answer 1

1

With MSDOS/MBR partition tables, partitions are defined mainly by two numbers, size and offset.

Both are 32 bit unsigned integers, so the maximum value they can hold is 232. The unit used by these numbers is a sector, which normally has a size of 512 bytes. This means, both the maximum size of a partition as well as the maximum offset/starting address must be lower than 232×512 bytes, which equals 2TB.

So, if you have 3TB in total, and the first 1.8GB are occupied by Windows, you can still create another partition with the offset of 1.8TB very well, as you say you did with your Ubuntu root partition. The remaining space is smaller than 2TB anyway, so size will not be a constraint. However, if we say we want the root partition to take all remaining space except for e.g. 8GB for swap, the offset of that swap partition will be far outside the 2TB range, and thus not supported.

You have a few options now:

  • Create the swap partition before the Ubuntu root partition, like this:

       0GB - 1800GB  Windows (or whatever)
    1800GB - 1808GB  Ubuntu Swap
    1808GB - 3072GB  Ubuntu /
    

    That way all starting offsets will be below the 2TB limit.

  • Don't create a swap partition at all and use a swapfile instead. The process is described e.g. in How do I add a swap partition after system installation?

  • Use GPT instead of the old MSDOS/MBR partition table. This would require converting your existing disk with Windows though. The process is probably not trivial and always comes with a risk of something going wrong and causing you to lose all data...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .