Is there a size limit on external USB hard drives?

The internal SATA hard drives have a limit on a lot of motherboards of 2TB and if I want to get a 3TB HDD then I need to connect it using a PCI card (or get a new motherboard).

But I wanted to ask: If I connect a 3TB harddrive to a external USB enclosure, will it work? The Vantec enclosure I want to buy says it supports up to 3TB HDD but I want to make sure.


To answer the subject line, USB's limit is the limit of its mass-storage class (MSC) spec. This spec is in turn based on the SCSI transparent command set. (See also http://en.wikipedia.org/wiki/USB_mass_storage_device_class#Device_access).

Looking at the various SCSI read commands (https://www.seagate.com/files/staticfiles/support/docs/manual/Interface%20manuals/100293068j.pdf, sections 3.15 through 3.19) you can see that there are several versions of the READ command:

  • READ(6) uses 21-bit block address, imposing a 1 GiB limit for devices with 512 byte blocks. READ(6) is obsolete, but may still be used by older devices.
  • READ(10) and READ(12) use 32-bit LBAs, imposing the 2 TiB limit many cases have today.
  • READ(16) and READ(32) use 64-bit LBAs imposing an 8 ZiB limit (that's 8 giga-terabytes!).

Modern USB cases will support 64-bit LBAs and should support any drive you're likely to find. Older cases won't support this and will misbehave if they are attached to a drive larger than 2TiB.

Assuming your USB case supports the drive, then there's the issue of partitioning the drive. The MBR partition scheme (used in various forms since MS-DOS) uses a 32-bit block index. So it has a limit of 2TiB. The solution used today is to switch to the GUID partition table (GPT) format which uses 64-bit block numbers.

All modern operating systems (including Windows, Mac OS X and Linux) support GUID partition tables and should be able to support a >2TiB drive as a data disc.

If you're a Mac or Linux user, then you should be able to boot from the drive as well. Macs have EFI firmware and support booting GPT volumes. Modern Linux systems have code in the GRUB bootloader that, I'm told, will allow booting Linux from a GUID drive without EFI firmware..

If you're running Windows, however, you may or may not be able to boot from the drive. You will need EFI firmware on your motherboard, and you will need to be running a 64-bit version of Windows. Microsoft requires both in order to boot from a GPT drive of any size. This means that if you are running 32-bit Windows or have BIOS-only firmware (without EFI), you will want to make sure your boot disk is 2TiB or smaller, so you can apply an MBR partition.


The 2TB issue is mainly with computers that need to boot from a large drive as the BIOS has problems understanding them. Even without a card or extra addon, using a standard lower drive for boot and a 2+TB drive for data works fine (at least the few times I have tried).

USB to SATA enclosures usually just emulate a hard drive controller. Some of the older ones were very rough and had a few issues, but with any recent one, I don't think you will have any issues what so ever.


It will really come down to your motherboard, but most of the issues you are worried about relate to directly-connected SATA drives, which use a SATA driver, not a USB driver as in your case. These SATA issues are being addressed in newer motherboards.

Doing a search, I could not find one person, who had problems with a 3TB external drive, but of course, I cannot say 100% since I do not have your specific hardware to test. This is interesting as a general paper (Note number 10, which is directly relevant to your question).

You might want to create a couple of partitions <2TB, or you can create GPT partitions >2TB. Select the largest block size you can when formatting, as there are known issues with some programs, like Windows Backup and small block sizes. With that much space, you may lose a little, but not much relatively speaking.