Oli*_*Oli 11 nfs file-sharing optical
坦率地说,我处于一种荒谬的境地,我的台式机有两个光驱,而我的媒体中心没有(也没有一个空间)。在我考虑购买外置光驱这样极端的事情之前,我想看看是否有办法将我的驱动器连接到网络上。
两台机器都是 Ubuntu,它们已经有 NFS 共享,可以从桌面访问媒体。
我问的原因(而不仅仅是导出 /media/cdrom)是挂载的 NFS 共享看起来不像远程机器的 CDROM 式设备。这对我来说很重要,因为我需要 XBMC 来识别驱动器,以便它能够自动适当地处理光盘。
现在我不知道是什么让光驱看起来像 Ubuntu 的光驱。如果我知道这一点,我可能会知道我需要做什么。我猜udev
在某个时候会有一些热门动作。
是否有某种方式可以共享块级设备(例如/dev/sr0
),以便允许两台计算机分别安装它......我觉得我正在跌入兔子洞,我可以看到所有这些大规模过度设计的解决方案,如 iSCSI和直通虚拟化突然出现在我面前......当然有一种简单的方法可以在两台 Ubuntu 计算机之间共享一些驱动模式!
slm*_*slm 10
我认为您可以使用网络块设备 (NBD) 完成您想要的操作。查看有关该主题的维基百科页面,提到了一个名为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
Run Code Online (Sandbox Code Playgroud)
共享 CD
现在回到服务器(Fedodra 19)上,我使用它的包管理器 YUM 做了类似的事情。完成后,我弹出一张 CD 并运行此命令以将其作为块设备共享:
$ 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.
$
Run Code Online (Sandbox Code Playgroud)
快速检查它是否正在运行:
$ 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
Run Code Online (Sandbox Code Playgroud)
安装光盘
现在回到 Ubuntu 客户端,我们需要像这样连接到nbd-server
使用nbd-client
:
$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes
Run Code Online (Sandbox Code Playgroud)
我们可以使用以下命令确认 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
Run Code Online (Sandbox Code Playgroud)
现在我们安装它:
$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
Run Code Online (Sandbox Code Playgroud)
它起作用了吗?
悬念正在扼杀我,我们有起飞:
$ sudo ls /mnt/
EFI GPL isolinux LiveOS
Run Code Online (Sandbox Code Playgroud)
我在 Fedora 19 笔记本电脑中安装了 CentOS 的 LiveCD 的内容,并且能够将其安装为 Ubuntu 上的网络块设备。
在上面的设置中,我必须手动安装 DVD。
在调查这种方法是否适用于自动播放和自动挂载的合理性时,开箱即用,Ubuntu 的自动播放不起作用,但是当我弹出磁盘时nbd-client
,它nbd-server
一直在工作。当我放回 DVD 时,我能够mount
在 Ubuntu 上运行命令,重新安装 DVD 就好了。
因此,我假设您可以在 Ubuntu 上粘贴 UDEV 规则以检测此更改并自动执行自动挂载/自动播放。我不会全部尝试,但我没有看到任何会让我认为它行不通的东西。
归档时间: |
|
查看次数: |
7460 次 |
最近记录: |