我想做的是将硬盘分成多个分区,然后将我的 PC 连接到其他设备。连接后,我希望其他设备能够识别硬盘的分区,就像它只是一个外部硬盘一样。理想情况下,我可以有多个分区,并选择设备从 PC 访问哪个分区。
这个问题仅用于教育目的。我并没有试图完成任何特定的事情。
答案1
是的,这是可能的 - 尽管在什么可以做和什么不可以做方面存在很多细微差别。在 Linux 中比在 Windows 中更容易实现。
一种标准化的方法是使用互联网SCSI协议。您需要某种可以在“文件服务器”上模拟 iSCSI 的东西,然后需要一个驱动程序/机制来在客户端识别和使用它。这可能是在互联网连接系统上共享块设备的最常见和“跨平台”方式 - 但还有其他方式。
答案2
谈到本地连接:
有可能一些计算机变成 USB“设备”——尽管常规 USB 是不对称的,而且大多数台式机/笔记本电脑没有支持该功能的硬件,但一些“Pi”纳米计算机做具有双模 USB 控制器,您可以找到有关设置 Linux“小工具模式”的说明,以便这样的 Pi 可以像 USB 记忆棒一样工作。
我不确定 Thunderbolt 的功能——我知道它可以进行点对点连接以传输以太网,但不知道它是否可以用于存储。
旧款 Mac 电脑配有 FireWire,曾是对称连接(如 USB4 甚至更多)并且不需要任何特殊硬件即可使计算机成为“设备”;因此,许多 Mac 笔记本电脑都内置了隐藏的“目标磁盘模式”。您可以在开机时按住某个键,整个笔记本电脑就会通过 FireWire 电缆显示为外部磁盘。
(一些新的 Linux 发行版具有一种模仿这种情况的模式,通过直接启动到通过以太网为系统磁盘提供服务的“NVMe-oF 目标”模式。)
这些事情通常在网络上完成 - 尽管通过网络存储当然也需要客户端的配合,但最终结果仍然是在客户端计算机上出现一个可以进行分区、格式化等的“磁盘”。
NVMe-oF 和 iSCSI 协议通常用于网络存储(就像常规 NVMe 和 SCSI 用于直接连接一样)。
Windows XP/10/11 可以作为 iSCSI 客户端(“启动器”),而 Windows Server 也可以充当 iSCSI 服务器(“目标”)。将 Linux 甚至 Solaris 设置为 iSCSI 服务器也很常见;许多 NAS 设备都具有 iSCSI 功能。我甚至见过通过 iSCSI 使 CD-RW 驱动器可用于远程 CD 刻录的软件。
由于这一切都是通过客户端/服务器协作进行的,因此可以制定任意数量的协议;例如,还有 ATA-over-Ethernet(罕见,特定于 Linux);有 NBD(也是特定于 Linux);曾经有一个用于以太网磁盘访问的 MS-DOS 程序;在 NFS 发明之前,旧的 SunOS 有“ND”协议;等等。
所有这些都是“磁盘共享”协议,使客户端假装它有一个外部磁盘,而不是像 NFS/SMB 这样的文件共享。