web-dev-qa-db-ja.com

/ dev / dvdを適切に作成するにはどうすればよいですか?

特定のプログラムは、DVDを見つけるためにデフォルトで/dev/dvdを探します。 DVDを挿入せずに初めてコンピューターを起動すると、/dev/dvdが存在し、正しい場所(/dev/sr0)を指します。ただし、DVDを挿入すると、/dev/dvdが消えます。 DVDを探しているプログラムで/dev/sr0にナビゲートする必要がないように、それを維持したいです。 /dev/dvdシンボリックリンクが存在し、正しい場所を指していることを確認するにはどうすればよいですか?

/etc/udev/rules.d/70-persistent-cd.rulesに何かを追加できるようです。 このサイト にはいくつかの例がありますが、70-persistent-cd.rulesファイルには「ENV {GENERATED} = 1フラグを独自のルールに追加する」と書かれていますが、これは例の一部ではありません。 man 7 udevページは理解できないため、リンクされたページが必要な情報の100%を提供することを確信していません。

/dev/dvdが常に存在し、適切なデバイスを指すようにするために、最新のUbuntu 12.04(以降)システムで何ができますか?

編集:リンクされたページのルールにENV{GENERATED}=1を追加するのと同じくらい簡単ですか?

SUBSYSTEM=="block", KERNEL=="sr0", SYMLINK+="dvd", GROUP="cdrom", ENV{GENERATED}=1

それは現代のUbuntuにとって正しい情報ですか? ENV{GENERATED}はそこで生成されたのではなく、手書きで何をしていますか?

10
chazomaticus

このチュートリアルは、あなたが望むことをする方法をとても素敵に説明しています:

それによると、シンボリックリンクを作成するには2つのアプローチがあります。最初の方法は、モデル名とシリアル番号を使用することです:

SUBSYSTEM=="block", ENV{ID_MODEL}=="...", ENV{ID_SERIAL}=="...", ENV{GENERATED}="1", SYMLINK+="dvd"

この方法では、ドライブをIDEバス上の別の位置に移動してもシンボリックリンクは正しいままですが、ドライブを交換しても/dev/dvdシンボリックリンクは作成されません。

2番目は、バス上のデバイスの場所に基づいています。

SUBSYSTEM=="block", ENV{ID_TYPE}=="...", ENV{ID_PATH}=="pci-...", ENV{GENERATED}="1", SYMLINK+="dvd"

このように、異なるモデルのドライブを交換しても、シンボリックリンクは正しいままですが、IDEバス上の同じ位置に配置します。 ENV{ID_TYPE}キーは、バス上のその位置にDVD以外のものを置いた場合にシンボリックリンクが消えることを確認します。

次のコマンドを使用して、ID_MODELID_SERIALID_TYPEID_PATHの値を見つけることができます(チュートリアルのudevtestコマンドは機能しません-もう?-Ubuntuで):

udevadm info --query=all --name=sr0

SCSI汎用デバイスの一致を回避するために、SUBSYSTEM=="block"キーが必要です。これがないと、SCSI DVDの場合、シンボリックリンクは正しい/dev/sr0デバイスを指すことがありますが、間違った/dev/sg0を指すこともあります。

ENV{GENERATED}="1"キーは、udev 75-cd-aliases-generator.rulesファイルがカスタムルールを上書きしないようにするために必要です。

8
Radu Rădeanu

Fedoraフォーラムでこれが役立つことがわかった:

シェルスクリプトファイルを作成するそのファイルに、以下を配置します。

#!/bin/bash
ln -s /dev/sr0 /dev/dvd

ファイルが実行可能であることを確認します。

Sudo chmod +x /etc/rc.d/rc.local

Rc.localルートを使用する場合は、rootとしてこれも行う必要があります。

systemctl enable rc-local.service

デフォルトでは有効になっていないため

source:http://forums.fedoraforum.org/showthread.php? t = 295048

---------最近の好ましい方法はUDevルールです--------------

/ dev/cdromシンボリックリンクを作成する/lib/udev/rules.d/60-cdrom_id.rulesに基づいて、次を含むファイル/etc/udev/rules.d/60-dvd.rulesを追加してみてください。

KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"
0
Cester Nilap