web-dev-qa-db-ja.com

WodimはDebianJessieでSCSIドライバーを開くことができませんか?

DebianJessieのCDにISOイメージを書き込もうとしています。ドライブにCDがありますが、すべてのシンボリックリンクが本来あるべき場所を指しているようで、カーネルがCD-RWドライブを認識しました。 (ちなみにIDE)経由で接続されています)

公式のDebianリポジトリからWodimをインストールしました。 wodim --devicesまたはwodim -scanbusのいずれかで受け取ります...

wodim: No such file or directory. 
Cannot open SCSI driver!
For possible targets try 'wodim --devices' or 'wodim -scanbus'.
For possible transport specifiers try 'wodim dev=help'.
For IDE/ATAPI devices configuration, see the file README.ATAPI.setup from
the wodim documentation.

違いはないと思いますが、リモートSSH経由で行っています。

エラーは、特にREADME.ATAPI.setupを読み取る必要があることを示しています。それがどこにあるのか何か考えがあれば、私はそれを喜んでやります。そのファイルをGoogleで検索しましたが、さまざまなフォーラムで私のような問題に関する質問しか見つかりませんでした。見つけた後 この質問 同じ問題が発生したかどうかを確認するためにいくつかのテストコマンドを実行しました。

lsmod | grep sr_modは..を生成します.

sr_mod                 21568  0 
cdrom                  46828  1 sr_mod
scsi_mod              164132  4 sg,libata,sd_mod,sr_mod

lsmod | grep sgは..を生成します.

sg                     25573  0 
scsi_mod              164132  4 sg,libata,sd_mod,sr_mod

ls -l /dev/sr0は..を生成します.

brw-rw---- 1 root cdrom 11, 0 Mar 12 17:20 /dev/sr0

その記事は、/dev/cdrom/dev/sr0にリンクする必要があると述べています。 ls -l /dev/cdromの結果は...

lrwxrwxrwx 1 root root 3 Mar 12 17:20 /dev/cdrom -> sr0

Sudoを使用してrootとして、またはルートシェルを使用してこれらのコマンドを実行しても、これらのコマンドの結果には影響しません。さらに、wodim dev=/dev/sr0 --scanbusで使用するデバイスをWodimに指示すると、シェル変数を宣言しない場合と同じ結果が得られます。

何が問題なのですか?

2
Allenph

Wodimによって生成されるこのエラーメッセージは、通常、CD-RWドライブにディスクがあり、ディスクがマウントされていることを意味します。ディスクをアンマウントして、wodim -scanbusを再度実行してみてください。 Wodimは、次の理由で「そのようなファイルまたはディレクトリはありません」と表示します。 Wodimの-scanbusオプションは、CD/DVDライターを指す可能性のあるすべてのファイルを開き、各デバイスにクエリを実行して、デバイスのいずれかがCD/DVDライターであるかどうかを判断することで機能します。これで、wodimの動作方法では、デバイスが見つからない場合は失敗し、最後に発生したエラーに対応するエラーメッセージが表示されます。私のシステムでは、wodimが最後に遭遇したデバイスは/dev/scd255であり、おそらくシステムに存在しないため、wodimは、最後に遭遇したエラーに対応するエラーメッセージ「Nosuch fileordirectory」を表示します。 wodimがすべてのデバイスをチェックするときにすべてのエラーメッセージを表示したい場合は、strace wodim -scanbusを実行できます。ドライブにディスクがマウントされている私のシステムでは、次のようになります。

[many irrelevant and repetitive lines of output deleted]
        ︙
open("/dev/hdy", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/dev/hdz", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
uname({sys="Linux", node="ubuntu", ...}) = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 399999000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 399999000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 399999000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 400000000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 400000000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
open("/dev/scd1", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/dev/scd2", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
        ︙
[many more irrelevant and repetitive lines of output deleted]

上記の出力でわかるように、wodimは光学ドライブを検出しますが、それ自体だけで開くことはできません。ちなみに、私のシステムでは、/dev/scd0/dev/sr0へのシンボリックリンクです。

$ ls -l /dev/scd0
lrwxrwxrwx 1 root root 3 2019-04-03 11:13 /dev/scd0 -> sr0

README.ATAPI.setupと呼ばれるそのファイルについては、Debianとその派生物では、ファイルはディレクトリ/usr/share/doc/wodimにあり、オンラインで見つけることができます ここ そしておそらく 他の場所 。その内容は古く、一部の情報は誤解を招く可能性があります。たとえば、ドキュメントには次のように記載されています。

コンピュータにCDライターが1つしかない場合、CD書き込みはそのままで機能します。実際のCDライターのデバイスを指すシンボリックリンク/dev/cdrwが必要です(例:/dev/hdb)。リンクが存在しない場合(たとえば、システムがudev/devfsを使用していない場合)、またはデフォルトとして別のデバイスを使用する場合は、/etc/wodim.confでデバイスを構成できます。

CDR_DEVICE=/dev/hdd

デフォルトのデバイスを/dev/hddに設定します。つまり、セカンダリIDEバス上のスレーブデバイスです。

Linuxカーネルが「IDE-SCSI」エミュレーションを使用してIDE/PATAデバイスがSCSIとして表示されるようになったため、/dev/hdbまたは/dev/hddの使用に関するアドバイスは適用されなくなりました。したがって、ドキュメントを読むことはできますが、/dev/hd*がある場合は、それを/dev/sr0に置き換えてください。

1
zguest13