HOME> 世界杯北京> 如何以一种方式共享光驱,让客户认为它是本地驱动器?

如何以一种方式共享光驱,让客户认为它是本地驱动器?

2025-09-08 17:09:43     世界杯北京    

我认为你可以使用网络块设备(NBD)来实现你想要的功能。在wikipedia页面上有提到一个叫做nbd的工具。它由客户端和服务器组件组成。

示例

在这个场景中,我正在为我的Fedora 19笔记本电脑(服务器)设置一个CDROM,并将其共享给一个Ubuntu 12.10系统(客户端)。

安装

$ apt-cache search ^nbd-

nbd-client - Network Block Device protocol - client

nbd-server - Network Block Device protocol - server

$ sudo apt-get install nbd-server nbd-client

共享一张光盘

现在回到服务器(Fedora 19),我使用它的软件包管理器YUM做类似的事情。完成后,我插入一张光盘,并运行以下命令将其共享为块设备:

$ sudo nbd-server 2000 /dev/sr0

** (process:29516): WARNING **: Specifying an export on the command line is deprecated.

** (process:29516): WARNING **: Please use a configuration file instead.

$

快速检查一下是否正在运行:

$ ps -eaf | grep nbd

root 29517 1 0 12:02 ? 00:00:00 nbd-server 2000 /dev/sr0

root 29519 29071 0 12:02 pts/6 00:00:00 grep --color=auto nbd

挂载CD

现在回到Ubuntu客户端,我们需要使用nbd-client连接到nbd-server,就像这样:

$ sudo nbd-client greeneggs 2000 /dev/nbd0

Negotiation: ..size = 643MB

bs=1024, sz=674983936 bytes

我们可以确认,在Ubuntu系统上现在有一个块设备,使用lsblk命令可以查看到。

$ sudo lsblk -l

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 465.8G 0 disk

sda1 8:1 0 243M 0 part /boot

sda2 8:2 0 1K 0 part

sda5 8:5 0 465.5G 0 part

ubuntu-root (dm-0) 252:0 0 461.7G 0 lvm /

ubuntu-swap_1 (dm-1) 252:1 0 3.8G 0 lvm [SWAP]

sr0 11:0 1 654.8M 0 rom

nbd0 43:0 0 643M 1 disk

nbd0p1 43:1 0 643M 1 part

现在我们安装它:

$ sudo mount /dev/nbd0p1 /mnt/

mount: block device /dev/nbd0p1 is write-protected, mounting read-only

$

成功了吗?

悬念让我着急不已,我们终于起飞了:

$ sudo ls /mnt/

EFI GPL isolinux LiveOS

我在 Fedora 19 笔记本电脑上挂载了 CentOS LiveCD 的内容,并成功将其作为网络块设备挂载到 Ubuntu 上。

自动播放和自动挂载?

在上述设置中,我不得不手动挂载 DVD。

在调查这种方法是否可以实现自动播放和自动挂载时,Ubuntu 的自动播放不起作用,但是当我弹出磁盘时,nbd-client 和 nbd-server 仍然保持连接。当我重新插入 DVD 时,我能够在 Ubuntu 上运行 mount 命令,成功重新挂载 DVD。

因此,我认为您可以在 Ubuntu 上添加 UDEV 规则来检测此更改并自动执行自动挂载/自动播放。虽然我没有尝试过所有操作,但我没有看到任何可能导致它无法工作的问题。