1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497
|
.\" @(#)readcd.1 1.5 01/04/16 Copyright 1996 J. Schilling
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\"
.\" Japanese Version Copyright (c) 2001 Yuichi SATO
.\" all rights reserved.
.\" Translated Sat Dec 1 03:06:05 JST 2001
.\" by Yuichi SATO <ysato@h4.dion.ne.jp>
.\"
.if t .ds a \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'a
.if t .ds o \v'-0.55m'\h'0.00n'\z.\h'0.45n'\z.\v'0.55m'\h'-0.45n'o
.if t .ds u \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'u
.if t .ds A \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'A
.if t .ds O \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'O
.if t .ds U \v'-0.77m'\h'0.30n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.75n'U
.if t .ds s \\(*b
.if t .ds S SS
.if n .ds a ae
.if n .ds o oe
.if n .ds u ue
.if n .ds s sz
.TH READCD 1 "Version 1.10" "J\*org Schilling" "Schily\'s USER COMMANDS"
.SH 名前
readcd \- データ CD を読み出す・書き込む
.SH 書式
.B readcd
.BI dev= device
[
.I options
]
.SH 説明
.B readcd
は CD を読み出したり、データを CD に書き込んだりするのに使う。
.PP
.I device
は CD レコーダの
.IR scsibus / target / lun
を指す。
.I SunOS
での通信は汎用 SCSI ドライバ
.B scg
を用いて行われる。
他の OS では、このドライバをシミュレートするライブラリを使う。
使用可能な書式は、
.B dev=
.IR scsibus , target , lun
または
.B dev=
.IR target , lun
である。
後者の場合、CD-R はマシンのデフォルトの SCSI バスに
接続されていなければならない。
.IR scsibus ,
.IR target ,
.I lun
は整数である。
OS や SCSI 転送の実装のなかには、これに加えてデバイスファイル名を
指定しなければならないものもある。
この場合の正しい書式は、
.B dev=
.IR devicename : scsibus , target , lun
または
.B dev=
.IR devicename : target , lun
である。
このようなシステムでは、指定されたデバイスノード名が
1 つの SCSI デバイスのみを参照している場合、
.B dev=
.IR devicename : scsibus , target , lun
の代わりに、省略形の
.B dev=
.IR devicename : @
または
.B dev=
.IR devicename : @ , lun
を使うことができる。
.PP
リモートの SCSI デバイスにアクセスするためには、
リモートのデバイスであることを示すインジケータを
SCSI デバイス名の前に付ける必要がある。
リモートデバイスのインジケータは
.BI REMOTE: user@host:
または
.BI REMOTE: host:
という形式である。
.br
指定可能なリモート SCSI デバイス名は、
.BI REMOTE: user@host:
または
.BI REMOTE: user@host:1,0,0
という形式である。
1 つ目の形式では、リモートで SCSI デバイスのスキャンを行わせる。
2 つ目の形式では、
.I host
の SCSI bus # 1,target 0 lun 0 に接続されている
SCSI デバイスにアクセスする。
.PP
.B readcd
を全ての \s-2UNIX\s0 系プラットフォームで汎用的にするためには、
.B dev=
.IR devicename : scsibus , target , lun
という書式が好ましい。
これによりデバイスについての各 OS 特有の知識を
ユーザーに対して隠蔽することができる。
またこれにより、実際のデバイスファイル名や
.IR scsibus , target , lun
を指定する方法を、特定の OS 上でサポートする必要がなくなる。
.PP
.I scsibus
0 はマシンのデフォルトの SCSI バスである。
マシンの SCSI 設定についてのより詳細な情報は、
ブート時のメッセージや
.B /var/adm/messages
を参照すること。
.IR scsibus , target , lun
にどのような値を指定してよいか分らない場合は、
.B cdrecord
の
.B \-scanbus
オプションを使ってみること。
.SH オプション
.PP
.I dev=
以外のオプションが何も指定されていない場合、
.B readcd
は対話モードになる。
対話モードでは、主要な機能を選択した後、指示に従って操作する。
.PP
.TP
.B \-version
バージョン情報を表示して、終了する。
.TP
.BI dev= target
CD レコーダの SCSI target を設定する。上記を参照。
一般的なデバイス指定では
.BI dev= 6,0
である。
数値での target 指定の他に、
ファイル名も指定しなければならない場合、
そのファイル名は実装依存である。
この場合の正確なファイル名は、
対象とする OS の独自のマニュアルに書かれているだろう。
.I CAM
をサポートしてない
.I FreeBSD
システムでは、
.RI ( /dev/rcd0.ctl
などの) 制御デバイスを使う必要がある。
この場合の正確なデバイス指定は、
.BI dev= /dev/rcd0.ctl:@
である。
.sp
Linux では、パラレルポートアダプタに接続されたデバイスは、
仮想 SCSI bus に対応付けされる。
別のパラレルポートアダプタは、
この仮想 SCSI bus の別の target に対応付けされる。
.sp
.I dev
オプションが指定されていない場合、
.B cdrecord
は環境変数
.B CDR_DEVICE
からデバイスを取得しようとする。
.sp
.B dev=
オプションの引き数に文字 ',', '/', '@', ':' がない場合、
ファイル /etc/default/cdrecord に書かれたラベル名として扱われる
(「ファイル」セクションを参照すること)。
.TP
.BI timeout= #
SCSI コマンドのデフォルトのタイムアウトを
.I #
秒にする。
SCSI コマンドのデフォルトのタイムアウトは、
SCSI コマンドを送る際の最短タイムアウトとして使われる。
SCSI コマンドがタイムアウトにより失敗した場合、
タイムアウトの値を失敗したコマンドの
デフォルトのタイムアウトより長くすることができる。
タイムアウトを長くしてコマンドが正常に動作した場合は、
成功したときのタイムアウト時間とそのコマンドを、
このプログラムの著者に知らせて下さい。
.I timeout
オプションが指定されない場合、
デフォルトのタイムアウト 40 秒が使われる。
.TP
.BI debug= "#, " -d
(debug=# を使って) その他のデバッグレベルを # に設定する。
または (-d を使って) デバッグレベルを 1 つ上げる。
.I -dd
を指定した場合、
.BI debug= 2
と等しくなる。
libscg でドライバをオープンする際の問題や、
セクタサイズとセクタタイプの問題を発見するのに役立つ。
.B \-debug
を使うと、処理が遅くなりバッファアンダーランの原因になるかもしれない。
.TP
.BR kdebug= "#, " kd= #
.B scg
ドライバに対して、SCSI コマンドを動作させているときの
カーネルデバッグレベルを変更させる。
.TP
.BR \-silent ", " \-s
SCSI コマンドが失敗したときの状況報告を表示させない。
.TP
.B \-v
一般的な表示の詳細度を 1 つ上げる。
例えば、書き込み処理の進捗状況を表示するために使われる。
.TP
.B \-V
SCSI コマンド転送に関する表示の詳細度を 1 つ上げる。
CD レコーダにおける書き込み処理での問題をデバックするのに役立つ。
簡単なエラーメッセージしか表示されない場合は、
このフラグを使って詳細な表示を行わせることができる。
.B \-VV
を指定すると、データバッファの内容も表示される。
.B \-V
や
.B \-VV
を使うと、処理が遅くなりバッファアンダーランの原因になるかもしれない。
.TP
.BI f= file
.TP
.B \-w
書き込みモードに変更する。
このオプションが指定されない場合、
.B readcd
は指定されたデバイスから読み出しを行う。
.TP
.BI sectors= range
読み出しを行うセクタの範囲を指定する。
範囲は「開始セクタ番号-終了セクタ番号」という形式で指定する。
.TP
.B \-notrunc
出力ファイルをオープンするときに切り詰めない。
.SH 例
.PP
以下の例では、CD レコーダがマシンのプライマリ SCSI バスに
接続されていると仮定している。
SCSI ターゲット ID は 2 に設定されている。
.PP
CD-ROM のメディア全体を読み出して、ファイル
.I cdimage.raw
にデータを書き出す:
.PP
readcd dev=2,0 f=cdimage.raw
.PP
CD-ROM のセクタ範囲 150 〜 10000 を読み出して、ファイル
.I cdimage.raw
に書き出す:
.PP
readcd dev=2,0 sectors=150-10000 f=cdimage.raw
.PP
ファイル
.I cdimage.raw
のデータ (例えば、
.B mkisofs
で作成したファイルシステムイメージ) を DVD-RAM に書き出す:
.PP
readcd dev=2,0 -w f=cdimage.raw
.SH ファイル
.SH 関連項目
.BR cdrecord (1),
.BR mkisofs (1),
.BR scg (7),
.BR fbk (7).
.SH 注意
.PP
システム上でユーザーが root になるのを許可したくない場合は、
.B readcd
を root に suid することで安全にインストールできる。
これにより、root 権限を持たない全てのユーザーやユーザーのグループが
.B readcd
を使うことができる。
この場合
.B readcd
は、CD-ROM タイプデバイスへのアクセスのみを許可する。
全てのユーザーに
.B readcd
を使う権限を与えたいならば以下を実行する:
.PP
chown root /usr/local/bin/readcd
.br
chmod 4711 /usr/local/bin/readcd
.PP
特定のユーザーのグループに
.B readcd
を使う権限を与えたいならば以下を実行する:
.PP
chown root /usr/local/bin/readcd
.br
chgrp cdburners /usr/local/bin/readcd
.br
chmod 4710 /usr/local/bin/readcd
.PP
そして、システムの
.I cdburners
グループに追加する。
.PP
ディスクの読み込み・書き出し・フォーマットを
全てのユーザーに許可したい場合を除き、
root 以外のユーザーに
.I /dev/scg?
への書き込みを許可してはならない。
.PP
CD レコーダや読み込み元のディスクが接続された SCSI バスに、
切断や再接続に対応していない昔のディスクを接続するべきではない。
.PP
壊れた
.B "Linux SCSI generic driver"
で
.B readcd
を使う場合、
.B readcd
は scg ドライバの機能をエミュレートを試みるという対処療法を使う。
不幸なことに、
.B Linux
の sg ドライバには以下のような酷いバグがある:
.TP
\(bu
SCSI コマンドが全く送られていないかを調べることができない。
.TP
\(bu
SCSI status バイトを取得できない。
このため、
.B readcd
は失敗した SCSI コマンドをある状況下では報告できない。
.TP
\(bu
転送時の実際の DMA カウントを取得できない。
.B readcd
は、DMA の残余カウントがあるかをユーザーに知らせることができない。
.TP
\(bu
auto sense データのうち有効なバイト数を取得できない。
.B readcd
は、認識したデータをデバイスが全く転送していないかを
ユーザーに知らせることができない。
.TP
\(bu
auto request sense では非常に少ないデータしか取得できない
(CCS/SCSI-2/SCSI-3 では 18 以上でなければならない)。
.SH 返り値
.PP
.PP
SCSI コマンドの典型的なエラーメッセージは以下のようなものである:
.sp
.RS
.nf
readcd: I/O error. test unit ready: scsi sendcmd: no error
CDB: 00 20 00 00 00 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
Sense Key: 0x5 Illegal Request, Segment 0
Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.002s timeout 40s
.fi
.sp
.RE
1 行目はコマンドの転送についての情報である。
最初のコロンのあとの文字列は、
カーネルの視点からみたシステムコールのエラーである。
他の問題が起こらないときに、一般的なのは
.B "I/O error
である。
次の文字列は失敗した SCSI コマンドの簡単な説明である。
残りの部分は SCSI バス越しにコマンドを転送する際に
問題が発生したことを示す。
.B "fatal error
はコマンドを転送できなかったことを示す
(つまり、要求された SCSI アドレスにデバイスが存在しなかった)。
.PP
2 行目には失敗したコマンドの SCSI コマンドの
ディスクリプターブロックが表示される。
.PP
3 行目には、コマンドの転送が成功した場合に、
コマンドによって返される SCSI status コードについての情報が表示される。
これは SCSI デバイスからのエラー情報である。
.PP
4 行目はコマンドの auto request sense 情報の 16 進ダンプである。
.PP
5 行目は (もし存在すれば) sense key のエラー文字列である。
コマンドが
.I copy
の場合にのみ、セグメント番号が続く。
エラーメッセージが現在のコマンドに直接関係していない場合、
.I deferred error
という文字列が表示される。
.PP
6 行目は sense code のエラー文字列である。
存在する場合には sense qualifier も表示される。
デバイスのタイプが既知の場合、
sense data は
.I scsierrs.c"
にあるテーブルを用いてデコードされる。
その文字列の後には field replaceable unit についてのエラー値が続く。
.PP
7 行目には、失敗したコマンドに関連したブロック番号と
エラーフラグ文字列が表示される。
ブロック番号は有効ではないかも知れない。
.PP
8 行目は、そのコマンドについて設定されたタイムアウトと、
実際にコマンドが完了するまでにかかった時間が表示される。
.SH バグ
.SH 謝辞
.SH メーリングリスト
cdrecord の開発に積極的に参加したいなら、本文に
.I subscribe
と書いたメールを
.nf
.sp
other-cdwrite-request@lists.debian.org
.sp
.fi
へ送って、cdwriting メーリングリストに入ることができる。
.nf
.sp
cdwrite@lists.debian.org
.sp
.fi
がメーリングリストのアドレスである。
.SH 著者
.nf
J\*org Schilling
Seestr. 110
D-13353 Berlin
Germany
.fi
.PP
その他の情報は以下で入手できる。
.br
http://www.fokus.gmd.de/usr/schilling/cdrecord.html
.PP
サポートに関する質問は、
.PP
.B
cdrecord-support@berlios.de
.br
または
.B
other-cdwrite@lists.debian.org
.PP
にメールを送ってください。
.PP
明らかなバグを見付けた場合は、
.PP
.B
cdrecord-developers@berlios.de
.br
または
.B
schilling@fokus.gmd.de
.PP
にメールを送ってください。
.PP
メーリングリストを購読するには、
.PP
.B
http://lists.berlios.de/mailman/listinfo/cdrecord-developers
.br
または
.B
http://lists.berlios.de/mailman/listinfo/cdrecord-support
.PP
を参照すること。
|