クライアントをだましてローカルドライブであると思わせるような方法で、光学ドライブを共有するにはどうすればよいですか?


10

私は率直に言ってばかばかしい状況にあり、デスクトップには2つの光学ドライブがあり、メディアセンターにはありません(1つのスペースもありません)。外付けの光学ドライブを購入するような極端なことを考える前に、ドライブをネットワーク全体でテザリングする方法があるかどうかを確認したいと思います。

どちらのマシンもUbuntuであり、デスクトップからメディアにアクセスするためのNFS共有がすでに用意されています。

(単に/ media / cdromをエクスポートするのではなく)質問している理由は、マウントされたNFS共有がリモートマシンに対してCDROMスタイルのデバイスのように見えないためです。これは私にとって重要です。なぜなら、ディスクを自動的かつ適切に処理するために、XBMCがドライブをドライブとして認識する必要があるからです。

今、私は、オプティカルドライブ作るのか分からない表情のUbuntuに光学ドライブなどを。それがわかっていれば、おそらく何をする必要があるのか​​わかります。udevある時点で、いくつかのホットなアクションがあると思います。

でブロックレベルのデバイス(例:)を共有/dev/sr0して、両方のコンピューターで個別にマウントできるようにする方法はありますか?私はウサギの穴をつぶしているように感じ、iSCSIのようにこれらの非常に高度に設計されたソリューションをすべて見ることができますパススルー仮想化が目の前に現れます... 2台のUbuntuコンピューター間でいくつかのドライブモードを共有する簡単な方法は確かにあります。


これで十分かどうかはわかりません。thegeekstuff.com / 2009/02 / …--- ioctlDVDに必要なスペシャルをエクスポートするかどうかはわかりません。私は何年も前に、ネットを介してスワッピングするというおかしな考えに使用しましたが、今まで忘れていました...(より良いリンク:linux-mag.com/id/7118
Rmano

NFSとSambaを使用して同様のことを成功させる2つの方法は、NFSとSambaを使用することです。LMKについてさらにサポートが必要な場合。
slm 2014年

@slmええ、2台のコンピューター間にはすでにNFSがあります。私はCD /media/cdromをnfs に追加し、反対側にマウントしました/media/cdrom(ファイルを表示できます)が、XBMCはメディアの変更を検出していません(マウントポイント DVDであるとは考えていません)。バカなことしてるの?
オリ

@オリ-わかりました、私のAを見て、それがあなたが探しているものかどうか教えてください。ちなみに、私が使用したもう1つの方法は、DVDのISOを作成し、それをNFS経由で共有してから、mount -o loop他のコンピューターでローカルに使用することです。
slm 2014年

回答:


9

ネットワークブロックデバイス(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
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.
$

それが実行されているかどうかを確認する簡単なチェック:

$ 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-server使用しnbd-clientてのように:

$ 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ラップトップにマウントして、UbuntuのネットワークのブロックデバイスとしてマウントすることができたCentOSのLiveCDの内容があります。

自動再生と自動マウント?

上記のセットアップでは、DVDを手動でマウントする必要がありました。

このアプローチが自動再生と自動マウントで機能するかどうかの妥当性を調査する際nbd-clientnbd-serverそのままではUbuntuの自動再生は機能しませんが、ディスクを取り出したときもそのままでした。DVDを元に戻すと、mountUbuntuでコマンドを実行でき、DVDを正常に再マウントしました。

したがって、UDEVにUDEVルールを適用して、この変更を検出し、自動マウント/自動再生を自動的に実行できると思います。私はそれをすべて試すつもりはありませんが、それが機能しないと思うように私を導くようなものは何も見ていません。


1
優れた指示!それは完璧ではありません。私のソフトウェアは、それが実際のディスクドライブではないことをまだ認識できます。私はioctl完全に処理されていないと思います。しかし、私は2台のarchlinuxのマシン上でこの作品を作ることができたゼロしゃっくり!(Archlinuxは「NBD」と一緒にクライアントとサーバーをインストールしました。)
リミテッドの贖罪

3

この方法もNBDを使用しますが、代わりに新しいスタイルの構成を使用します。唯一の利点は、サーバーを手動で起動する必要がなく、非推奨の醜い警告が表示されないことです。

nbd-servernbd-clientパッケージをインストールした後、サーバー(/etc/nbd-server/config)の構成ファイルを編集し、次のようになっていることを確認します。

[generic]
# If you want to run everything as root rather than the nbd user, you
# may either say "root" in the two following lines, or remove them
# altogether. Do not remove the [generic] section, however.
    user = nbd
    group = cdrom
    includedir = /etc/nbd-server/conf.d
    allowlist = true

# What follows are export definitions. You may create as much of them as
# you want, but the section header has to be unique.

[dvd]
    exportname = /dev/sr0
    readonly = true

注:上記の[dvd]ラベルはセクションヘッダーであり、角かっこで囲む任意の単語を指定できます。特定の共有を識別するために使用されるため、使いやすくてわかりやすい名前を使用してください。

変更を構成ファイルに保存した後、nbd-serverを起動または再起動します(再起動の例)。

sudo service nbd-server restart

次に、クライアントマシンに戻り、次のコマンドを使用してサーバーに接続します。

sudo nbd-client -N dvd hostname /dev/nbd0

注:dvd上記のサーバー構成で使用したhostname名前と、サーバーマシンのホスト名に置き換えます。

最後に、新しい共有ブロックデバイスをマウントするだけです。

sudo mount /dev/nbd0 /mnt/

引き続き取得する場合はNegotiation: ..Error: Server closed connection Exiting.userとの両方のgroup行をコメント化してください/etc/nbd-server/config。これによりnbd-server、あなたにアクセスできるルートの下で実行されます/dev/sr0
PetrÚjezdskýJun
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.