![外置 USB 硬盘有大小限制吗?](https://linux22.com/image/1282482/%E5%A4%96%E7%BD%AE%20USB%20%E7%A1%AC%E7%9B%98%E6%9C%89%E5%A4%A7%E5%B0%8F%E9%99%90%E5%88%B6%E5%90%97%EF%BC%9F.png)
许多主板上的内置 SATA 硬盘容量限制为 2TB,如果我想获得 3TB 的硬盘,那么我需要使用 PCI 卡连接它(或购买新的主板)。
但我想问一下:如果我将 3TB 硬盘连接到外部 USB 外壳,它可以工作吗?Vantec 外壳我想买据说支持高达 3TB 硬盘的产品,但我想确定一下。
答案1
回答主题,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 命令有多个版本:
- 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 分区。
答案2
2TB 的问题主要出现在需要从大驱动器启动的电脑上,因为 BIOS 无法理解它们。即使没有卡或额外的附加组件,使用标准的低驱动器进行启动和 2+TB 驱动器进行数据处理也可以正常工作(至少我尝试过几次)。
USB 转 SATA 外壳通常只是模拟硬盘控制器。一些较旧的外壳非常粗糙,存在一些问题,但对于任何较新的外壳,我认为您不会遇到任何问题。
答案3
这实际上取决于您的主板,但您担心的大多数问题都与直接连接的 SATA 驱动器有关,这些驱动器使用 SATA 驱动程序,而不是像您这种情况使用 USB 驱动程序。这些 SATA 问题正在较新的主板中得到解决。
经过搜索,我找不到一个在使用 3TB 外置硬盘时遇到问题的人,但当然,我无法 100% 确定,因为我没有特定的硬件来测试。这作为一篇一般性的论文很有趣(注释10,与您的问题直接相关)。
您可能想要创建几个小于 2TB 的分区,或者您可以创建大于 2TB 的 GPT 分区。格式化时选择最大的块大小,因为某些程序(如 Windows Backup)和小块大小存在已知问题。有了这么多空间,您可能会损失一点,但相对而言损失不大。