最近的PC等同于Mac Target Disk Mode?[关闭]


8

Mac固件具有特殊的启动模式,可让您将其内部硬盘作为外部磁盘提供给另一台计算机(只需通过IEEE 1394电缆连接两台计算机)。仅第二台计算机需要安装正常运行的操作系统。

对于PC方面类似的东西有什么好的建议吗?块级访问对我而言并不重要,我只希望能够从中复制文件。它使用以太网,IEEE 1394还是wifi对我来说都没有关系-我只是喜欢一种快速的方法来访问客户端PC上的文件。

是否有专门为此目的设计的单用途Linux发行版?拥有可以安装在USB驱动器上的超级简单,快速启动和小巧的设备,将是很好的选择。我曾经使用过Knoppix,但作为目标模式的替代者却过于刻板。

Answers:


5

可悲的是没有。考虑到USB OTG和EFI固件的可用性,这种缺失不再有任何借口,但是没有人在实施它。

最好的选择是引导一个迷你Linux发行版CD或USB密钥,该CD或USB密钥完全加载到RAM中,枚举存储设备,并通过iSCSI或NBD通过以太网和/或通过FireWire SDB2主机模式(如果您具有FireWire端口)公开它们。我不知道有哪个罐头发行版可以做到这一点,但是使用自定义init脚本在SysRescCD上安装起来应该很容易。

我刚刚写了一个关于该主题的大文章,归结为“ FFS,有了EFI固件和USB OTG,就没有理由不再提供目标磁盘;即使没有OTG Micro-AB端口也可以通过iSCSI或ATAoE提供基于以太网的目标磁盘,不会不合理的。”

认真地看一下英特尔AMT(vPro)可以做什么。与该级别的固件功能(通过EFI可以实现)相比,目标磁盘模式什么都不是。


为什么不喜欢PXE引导?
jscott 2012年

如果网络上有方便的非braindead DHCP服务器和TFTP服务器,则@jscott PXE引导非常有用。我自己大量使用它-实际上,我的穷人的“目标磁盘模式”解决方案是PXE引导我们用于工作LAN上的瘦客户机的Linux Terminal Server Project(LTSP)系统,并切换到本地Shell,然后启动nbd服务器。但是,在典型的家庭网络中,用一些死灵般的Belkin垃圾进行DHCP,很难或不可能进行PXE引导。无论如何,无论如何启动操作系统,都仍然需要相同的东西。
Craig Ringer 2012年

@jscott顺便说一句,我目前正在研究编写UEFI EBC(EFI字节码)或本机编译的EFI驱动程序以提供诸如目标磁盘模式之类的东西有多难。看起来在支持EFI Shell的计算机上是可行的,但严谨的Intel不在台式机主板上包括EFI Shell,仅在服务器主板上包括。如果没有EFI Shell,我不确定是否可以实现真正的无磁盘,它可能需要目标磁盘EFI驱动程序的USB密钥。
Craig Ringer 2012年

@Craig,不错的博客文章。很长一段时间以来,我一直主要使用Apple设备,而我从未听说过USB OTG。有趣。
用户名

@username我最初写的btw不正确;我以为OTG可以支持标准USB A型连接器,但不能,它需要USB Micro-AB连接器。仍然没有理由不至少在诸如空间有限的超便携式笔记本电脑之类的产品中不包含它。出于某些完全疯狂的原因,USB3规范未提供与A型USB插头兼容的全尺寸USB OTG插座,因此我们错过了USB3的USB端口更改的真正机会。
Craig Ringer 2012年

6

目标磁盘模式是Mac固件的功能。我从未听说过这是在PC制造商的BIOS中实现的。


好答案。细说:当前Mac不使用“ BIOS”(作为软件的名称,而不是软件的类型)。PPC Mac使用开放固件,而Intel Mac使用EFI,但从技术上讲,它们都是BIOS类型。
Chealion

是的,没有确切的等价物。我不介意插入可启动的拇指驱动器。真正想到的是,某些即时操作系统(与上网本一起发货)很合适。嗯
用户名

@Chealion好收获,我已经更新了我的答案
Dave Cheney

2

很久以前,您可以使用特殊的并行电缆或空调制解调器电缆来连接两台计算机。尽管鉴于您可能需要传输的数据的速度和数量,这完全是毫无价值的。

您可以使用特殊的USB电缆连接到计算机。一些供应商出售电缆,使您可以通过USB连接两台计算机。

如果两台计算机都具有以太网,那么您当然可以在两者之间建立网络。您可能需要交叉电缆。我不知道有什么事可做,但可以肯定的是,构建一个实时的cd / usb确实很容易,它可以简单地引导,安装所有可能的设备并通过smb,nfs,ssh共享并启动DHCP服务器。


2

我认为市场上没有任何东西可以做。

如果您真的致力于实现它并具有时间和编程技能,则可以看看其中一种Firewire DMA漏洞并弄清楚它们是如何工作的。去年有一个用Python编写的代码非常易读。

Firewire为您提供直接的内存访问权限,因此您可以引导一个最低限度的内核并通过该连接执行任何您想做的事情。如果您担心全盘加密,那么这是您需要考虑的主要风险,因为有人可以将Firewire设备插入正在睡眠(相对于休眠或关机)的笔记本电脑中,并破坏加密密钥。


Firewire并非天生就没有安全感,只是大多数固件和驱动器没有正确配置控制器(不是吗?四年来可能发生了很多变化)。Firewire需要DMA,但正确配置的控制器将具有较小的DMA窗口,受IOMMU或控制器板载功能限制,分配给为其使用的DMA缓冲区。以这种方式设置时,它将无法访问所有内存。Firewire本质上并不需要访问所有RAM,而只是实现此安全漏洞的惰性实现。
Craig Ringer

2

这是由Linux内核版本3.5及更高版本sbp-target模块处理的,并通过SBP_TARGET启用。


是的,这是一个不错的发展。需要警告的是,您必须首先从某种方式启动Linux内核。除非您使用带有自定义闪存固件的coreboot,否则这意味着要启动USB密钥(在许多固件中不可靠)或CD(如果有驱动器)。它仍然很有用,但是最后我总是可以使用网络块设备(nbd)或iSCSI做同样的事情。
Craig Ringer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.