Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Is it possible to export a block device such as a DVD or CDROM and make it so that it's mountable on another computer as a block device?

NOTE: I'm not interested in doing this using NFS or Samba, I actually want the optical drive to show up as a optical drive on a remote computer.

share|improve this question
add comment

3 Answers

I think you might be able to accomplish what you want using network block devices (NBD). Looking at the wikipedia page on the subject there is mention of a tool called nbd. It's comprised of a client and server component.

Example

In this scenario I'm setting up a CDROM on my Fedora 19 laptop (server) and I'm sharing it out to an Ubuntu 12.10 system (client).

installing
$ 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
sharing a CD

Now back on the server (Fedodra 19) I do a similar thing using its package manager YUM. Once complete I pop a CD in and run this command to share it out as a block device:

$ 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.
$

A quick check to see if it's running:

$ 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
Mounting the CD

Now back on the Ubuntu client we need to connect to the nbd-server using nbd-client like so:

$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes

We can confirm that there's now a block device on the Ubuntu system using 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 

And now we mount it:

$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
did it work?

The suspense is killing me, and we have liftoff:

$ sudo ls /mnt/
EFI  GPL  isolinux  LiveOS

There's the contents of a LiveCD of CentOS that I mounted in the Fedora 19 laptop and was able to mount it as a block device of the network on Ubuntu.

share|improve this answer
add comment

One alternative to nbd (if you're interested) is using iSCSI. tgtd can be configured to have a /dev device as its backing storage for a particular iSCSI IQN.

You're probably on a RHEL system so you just need to install scsi-target-utils and then configure/start tgtd on the source system. Configuration of tgtd can get involved but Red Hat provides plenty of different examples for the various scenarios.

For Example:

<target iqn.2008-09.com.example:server.target4>
    direct-store /dev/sdb      # Becomes LUN 1
    direct-store /dev/sdc      # Becomes LUN 2
    direct-store /dev/sdd      # Becomes LUN 3
    write-cache off
    vendor_id MyCompany Inc.
</target>

You'll install iscsi-initiator-utils on the client system and use iscsiadm to send targets then to "log into" enumerated targets. Example:

# iscsiadm -m discovery -t sendtargets -p <remoteHost>
# iscsiadm -m node -T <Complete Target Name> -l -p <remoteHost>:3260
share|improve this answer
2  
If you want you can add your A to this AU Q too, it's what prompted me to write this one up: askubuntu.com/questions/433231/… –  slm 11 hours ago
 
I would, but I don't really have an Ubuntu system handy to ensure the package names are the same or if the configuration examples I referenced are upstream or just something Red Hat does. The configuration itself should be the same, though. –  Joel Davis 11 hours ago
1  
Joel you're the best...no Ubuntu system 8-) –  slm 11 hours ago
add comment

You obviously prefer the SAN solution. Beside the already mentioned iSCSI and NBD, you have also the AoE (ATA over ethernet) approach.

This is very easy to do:

On the serving side you need to

modprobe aoe
vbladed 0 0 eth0 /dev/sdc

On the client side

modprobe aoe
aoe-discover
aoe-stat
e0.0      1000.204GB       eth0 1024  up

Your devices are in

ls -l /dev/etherd/
c-w--w----  1 root disk 152, 3 Mar 12 22:47 discover
brw-rw----  1 root disk 152, 0 Mar 12 22:47 e0.0
brw-rw----  1 root disk 152, 1 Mar 12 22:47 e0.0p1
cr--r-----  1 root disk 152, 2 Mar 12 22:47 err
c-w--w----  1 root disk 152, 6 Mar 12 22:47 flush
c-w--w----  1 root disk 152, 4 Mar 12 22:47 interfaces
c-w--w----  1 root disk 152, 5 Mar 12 22:47 revalidate

Where e0.0 is your /dev/sdc and e0.0.p1 is /dev/sdc1

dmesg on server:

[221384.454447] aoe: AoE v85 initialised.

dmesg output on client:

[ 1923.225832] aoe: AoE v85 initialised.
[ 1923.226379] aoe: e0.0: setting 1024 byte data frames
[ 1923.226910] aoe: 38607725d8b1 e0.0 v4014 has 1953525168 sectors
[ 1923.653820]  etherd/e0.0: p1

Pretty easy.

Additional Notes

  • vbladed is part of the package vblade on Fedora & Ubuntu, likely the same in other distros as well.
  • aoe-discover & aoe-stat are part of the package aoetools on Fedora & Ubuntu as well.
  • Device shows up in fdisk as a block device, for example, /dev/etherd/e0.0.

References

share|improve this answer
 
Tried doing this b/w Fedora and Ubuntu, it's not working. –  slm 5 hours ago
 
I usually check everything before I post. Q: is aoe loaded? Did you give proper arguments? On receiver: did aoe found the opponent? What says dmesg? –  bersch 5 hours ago
 
I know you do, I wasn't implying that it was wrong only that there might be some extra steps 8-) –  slm 5 hours ago
1  
ROTFL, and did you count the smartphone too? –  bersch 5 hours ago
1  
aaahh, well, thanks for the votes :) –  bersch 5 hours ago
show 10 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.