外置 USB 硬盘有大小限制吗?

Kar*_*rim 18 usb hard-drive

内置 SATA 硬盘驱动器对很多 2TB 的主板都有限制,如果我想要一个 3TB 的硬盘,那么我需要使用 PCI 卡连接它(或获得一个新的主板)。

但我想问:如果我将 3TB 硬盘连接到外部 USB 外壳,它会起作用吗?我想购买的Vantec 机箱说它最多支持 3TB 硬盘,但我想确定一下。

Dav*_* C. 32

为了回答主题行,USB 的限制是其大容量存储类 (MSC) 规范的限制。该规范又基于 SCSI 透明命令集。(另见http://en.wikipedia.org/wiki/USB_mass_storage_device_class#Device_access)。

查看各种 SCSI 读取命令(https://www.seagate.com/files/staticfiles/support/docs/manual/Interface%20manuals/100293068j.pdf,第 3.15 至 3.19 节)您可以看到有多个版本的读取命令:

  • READ(6) 使用 21 位块地址,对具有 512 字节块的设备施加 1 GiB 限制。READ(6) 已过时,但旧设备仍可使用。
  • READ(10) 和 READ(12) 使用 32 位 LBA,强加了今天许多情况下的 2 TiB 限制。
  • READ(16) 和 READ(32) 使用 64 位 LBA,施加 8 ZiB 限制(即 8 GB!)。

现代 USB 机箱将支持 64 位 LBA,并且应该支持您可能找到的任何驱动器。较旧的机箱不支持此功能,如果它们连接到大于 2TiB 的驱动器,则会出现异常。

假设您的 USB 外壳支持该驱动器,则存在对驱动器进行分区的问题。MBR 分区方案(自 MS-DOS 以来以各种形式使用)使用 32 位块索引。所以它有 2TiB 的限制。今天使用的解决方案是切换到使用 64 位块号的 GUID 分区表 (GPT) 格式。

所有现代操作系统(包括 Windows、Mac OS X 和 Linux)都支持 GUID 分区表,并且应该能够支持大于 2TiB 的驱动器作为数据磁盘。

如果您是 Mac 或 Linux 用户,那么您也应该能够从驱动器启动。Mac 具有 EFI 固件并支持启动 GPT 卷。现代 Linux 系统在 GRUB 引导加载程序中有代码,据我所知,它允许从没有 EFI 固件的 GUID 驱动器引导 Linux。

但是,如果您运行的是 Windows,您可能会也可能无法从驱动器启动。您将需要主板上的 EFI 固件,并且您需要运行 64 位版本的 Windows。Microsoft 需要两者才能从任何大小的 GPT 驱动器启动。这意味着如果您运行的是 32 位 Windows 或只有 BIOS 固件(没有 EFI),您将需要确保您的启动磁盘为 2TiB 或更小,以便您可以应用 MBR 分区。

  • Windows XP 没有内置支持 GPT 分区和大于 2TB 的磁盘,但我相信您可以下载 3rd 方软件来添加对不可启动卷的支持。对于内置支持,您将需要 Vista 或更高版本。(希捷的 DiskWizard 声称在 XP 上包含用于大型驱动器的软件。我没有这方面的个人经验。http://knowledge.seagate.com/articles/en_US/FAQ/218619en) (2认同)