我家里有两台装有 Ubuntu 的电脑,它们之间有网络连接。
如果我做
$ sshfs [email protected]:/ /media/pc2
我可以将远程设备用作本地设备吗?(在这种情况下:/media/pc2/dev/sr0
作为本地 DVD-RW)。最后,Unix 中的一切都是文件,对吗?
我做到了
culebrón@culebrón:/dev$ sudo ln -s /media/pc2/dev/sr0 dvdrw
但没有成功:Brasero 和 K3b 没有看到任何 DVD 设备。
我知道,对于大多数任务来说,SSH 和 sshfs 已经足够了,但想知道是否有一个通用的解决方案。
答案1
SSHFS 并非如此——它处理文件,但不处理设备。一切都是文件,但文件类型有很多,包括:常规文件、目录、符号链接、套接字、字符设备和块设备。
% ls -l /dev/sda
brw-r----- 1 root disk 8, 0 Oct 9 20:59 /dev/sda
字母b
表示这是一个块设备。这些类型的文件ioctl
除了支持正常的读写功能外,还支持其他功能。其目的ioctl
是允许对设备进行“额外”操作。这些操作对于每种类型的设备都不同:DVD 设备可以打开/关闭其门,但以太网设备不能。
这就是 SSHFS 软件无法通过网络提供设备文件的原因。
您将需要一个为此目的而制作的不同系统,例如网络CD刻录机。
答案2
如果你想远程访问块设备,有一个名为“暂无'(网络块设备)。我过去曾使用过它来克隆硬盘,并取得了dd if=/dev/nbd0 of=/dev/hda
一定的成功。
然而,我怀疑这是否适用于光驱。
我认为您最好在远程机器上本地运行刻录软件(例如使用 X 或 VNC),并让它使用常规文件共享机制(如 samba 或 NFS)提取文件。
答案3
Linux/UNIX 不是 Plan 9。“一切都是文件”并不意味着它们都是同一类型的文件。FIFO 和设备节点就是典型的例子。
不,您不能这样做。我的建议是使用虚拟写入器(celebron 写入映像、.iso 或其他)并通过 ssh 将其传输到 cdrecord。
答案4
Brasero 和 K3b 看不到 DVD 设备,因为您本地计算机的操作系统内核看不到 DVD 设备。
远程安装文件系统很容易;有 CIFS、NFS、AFS 甚至 SSHFS 等网络协议来处理文件访问的所有细节。但低级设备访问则完全不同——请注意,这些协议都不允许对正在访问的文件系统进行重新分区或重新格式化等操作。
您需要一个低级协议,例如 iSCSI、FCoE(以太网光纤通道)或ATAoE(以太网 ATA)做你想做的事情。这将涉及远程设备上的驱动程序级软件来导出设备,以及本地设备上的驱动程序级软件来连接到它。Windows 中有一个名为星港声称具备这种能力,Linux-iSCSI 站点这可能会给你提供更多有关当前可能发生的事情的信息。
但一般来说,这些技术用于硬件昂贵的企业数据中心。对于一般家庭使用,您确实希望在远程计算机上运行 Brasero,并在本地系统上显示 GUI 窗口(通过 X、VNC 或其他远程桌面技术)。