コピーする必要がありますコドニックスCDからISOへの医療データ。 CDドライブにCDROMを挿入します。TSSTcorp DVD+-RW TS-H653H私のものデルプリシジョンT1600。 CDをDebianに挿入すると、検出されインストールされます。レプリケーションでは、分化dd
システムは体系的に失敗しますが、readom
成功する唯一の分化ツールです。しかし、cp
それも失敗したので、コマンドラインからCDをISOにコピーするためのより良いdiffツールが必要です。関連LinuxJournal記事ここ。作業プロセス
オプティカルドライブの取り外し
root@masi:/home/masi# unmount /dev/sr0
コピーコマンドを擬似コードとして実行する
readom... / cp... / dd... / ...
ワークフローは成功しましたが、readom
いくつかのエラーがあります
Atoponceのコマンド提案readom
# http://www.commandlinefu.com/commands/view/1396/create-a-cddvd-iso-image-from-disk.
readom dev=/dev/scd0 f=/path/to/image.iso
文書
Create a CD/DVD ISO image from disk.
多くの人が「dd」を使ってCD / DVD isoイメージを作成するのが好きです。これは良くありません。非常に悪い。その理由は、「dd」にエラーチェック機能が組み込まれていないためです。したがって、すべてのビットを取得しているかどうかはわかりません。したがって、作業に適したツールではありません。代わりに、wodimパッケージの「reaom」(光メディアの読み取り)を使用する必要があります。エラーチェック機能が内蔵されています。同様に、新しく作成されたISOを焼きたい場合は、「dd」を離れて次のように使用します。wodim -v -eject /path/to/image.iso
作業プロセス
root@masi:/home/masi# umount /dev/sr0
root@masi:/home/masi# readom dev=/dev/sr0 f=/home/masi/Desktop/image.iso
Read speed: 8467 kB/s (CD 48x, DVD 6x).
Write speed: 8467 kB/s (CD 48x, DVD 6x).
Capacity: 35829 Blocks = 71658 kBytes = 69 MBytes = 73 prMB
Sectorsize: 2048 Bytes
Copy from SCSI (3,0,0) disk to file '/home/masi/Desktop/image.iso'
end: 35829
Errno: 5 (Input/output error), read_g1 scsi sendcmd: no error
CDB: 28 00 00 00 8B C0 00 00 35 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 03 00 00 00 00 0A 00 00 00 00 11 00 00 00
Sense Key: 0x3 Medium Error, Segment 0
Sense Code: 0x11 Qual 0x00 (unrecovered read error) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 7.038s timeout 40s
readom: Input/output error. Cannot read source disk
readom: Retrying from sector 35776.
.....................................................~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~+~~~-~~~
readom: Input/output error. Error on sector 35828 not corrected. Total of 1 errors.
Time total: 1259.495sec
Read 71552.00 kB at 56.8 kB/sec.
Max corected retry count was 0 (limited to 128).
The following 1 sector(s) could not be read correctly:
35828
出力:CDROMが.isoに正しくコピーされているようですが、エラーが発生した理由はわかりません。テストされたCD:3。
失敗したcp
ワークフロー
root@masi:/home/masi# unmount /media/
root@masi:/home/masi# cp /dev/sr0 /home/masi/Desktop/image.iso
cp: error reading ‘/dev/sr0’: Input/output error
cp: failed to extend ‘/home/masi/Desktop/image.iso’: Input/output error
試行が失敗したため、dd
ddを使用して操作を実行することはお勧めできません。
dd if=/dev/cdrom of=/home/masi/Desktop/image.iso
Debian でコマンドを使用すると、次のメッセージが表示されます。
dd: error reading '/dev/cdrom': Input/output error
143312+0 records in
143312+0 records out
73375744 bytes (73 MB) copied, 37.6356 s, 1.9 MB/s
ddを使用すると、失敗するその他のコピーコマンド
そして
bs
conv
# http://crunchbang.org/forums/viewtopic.php?id=23659 dd if=/dev/scd0 of=whatever.iso bs=2048 conv=sync,notrunc
conv
ただdd if=/dev/scd0 of=whatever.iso conv=sync,notrunc
jc___ 分析提案を正常にテストしました。
root@masi:/home/masi# mkdir /media/cdMP
root@masi:/home/masi# mount /dev/cdrom /media/cdMP/
mount: /dev/sr0 is write-protected, mounting read-only
root@masi:/home/masi# umount /dev/cdrom
root@masi:/home/masi# mount /dev/cdrom /media/cdMP/
mount: /dev/sr0 is write-protected, mounting read-only
root@masi:/home/masi# readom dev=/dev/sr0 -scanbus
Error trying to open /dev/sr0 exclusively (Device or resource busy)... retrying in 1 second.
Error trying to open /dev/sr0 exclusively (Device or resource busy)... retrying in 1 second.
したがって、root以外の場所で作業し、CDROMを使用することがないことを確認し、CDROMのファイルブラウザを明示的に有効にします。
masi@masi:~$ readom dev=/dev/sr0 -scanbus
scsibus3:
3,0,0 300) 'TSSTcorp' 'DVD+-RW TS-H653H' 'D700' Removable CD-ROM
3,1,0 301) *
3,2,0 302) *
3,3,0 303) *
3,4,0 304) *
3,5,0 305) *
3,6,0 306) *
3,7,0 307) *
ThomasSchmittの提案をテストする
削除とxorrisoで失敗しました。
masi@masi:~$ umount /dev/sr0
masi@masi:~$ xorriso -outdev /dev/sr0 -check_media use=outdev sector_map="$HOME"/cdrom_sector_map data_to="$HOME"/cdrom_copy.iso abort_file="$HOME"/cdrom_copy_abort --
xorriso 1.3.2 : RockRidge filesystem manipulator, libburnia project.
xorriso : NOTE : Disc status unsuitable for writing
Drive current: -outdev '/dev/sr0'
Media current: CD-R
Media status : is written , is closed
Media summary: 1 session, 35829 data blocks, 70.0m data, 0 free
xorriso : UPDATE : 32 blocks read in 7 seconds , 0.1xC
xorriso : UPDATE : 352 blocks read in 9 seconds , 2.8xC
xorriso : UPDATE : 1216 blocks read in 10 seconds , 11.5xC
xorriso : UPDATE : 2784 blocks read in 11 seconds , 20.7xC
xorriso : UPDATE : 4416 blocks read in 12 seconds , 21.4xC
xorriso : UPDATE : 6048 blocks read in 13 seconds , 21.6xC
xorriso : UPDATE : 7712 blocks read in 14 seconds , 21.9xC
xorriso : UPDATE : 9376 blocks read in 15 seconds , 22.1xC
xorriso : UPDATE : 11072 blocks read in 16 seconds , 22.3xC
xorriso : UPDATE : 12768 blocks read in 17 seconds , 22.5xC
xorriso : UPDATE : 14496 blocks read in 18 seconds , 22.7xC
xorriso : UPDATE : 16224 blocks read in 19 seconds , 22.9xC
xorriso : UPDATE : 17984 blocks read in 20 seconds , 23.1xC
xorriso : UPDATE : 19744 blocks read in 21 seconds , 23.3xC
xorriso : UPDATE : 21536 blocks read in 22 seconds , 23.5xC
xorriso : UPDATE : 23328 blocks read in 23 seconds , 23.7xC
xorriso : UPDATE : 25152 blocks read in 24 seconds , 23.9xC
xorriso : UPDATE : 26976 blocks read in 25 seconds , 24.1xC
xorriso : UPDATE : 28832 blocks read in 26 seconds , 24.3xC
xorriso : UPDATE : 30688 blocks read in 27 seconds , 24.5xC
xorriso : UPDATE : 32576 blocks read in 28 seconds , 24.8xC
xorriso : UPDATE : 34464 blocks read in 29 seconds , 25.0xC
libburn : SORRY : SCSI error on read_10(35828,1): [3 11 00] Medium error. Unrecovered read error.
xorriso : UPDATE : 35829 blocks read in 37 seconds , 2.4xC
xorriso : UPDATE : 35829 blocks read in 37 seconds = 13.0xC
Media checks : lba , size , quality
Media region : 0 , 35828 , + good
Media region : 35828 , 1 , - unreadable
xorriso : NOTE : Tolerated problem event of severity 'SORRY'
xorriso : NOTE : -return_with SORRY 32 triggered by problem severity SORRY
出力品質テスト
masi@masi:~$ ls /home/masi/
cdrom_copy.iso Desktop Downloads Pictures Templates WolframWorkspaces
cdrom_sector_map Documents Music Public Videos
masi@masi:~$ su
root@masi:/home/masi# mkdir /mnt/iso
root@masi:/home/masi# mount -o loop /home/masi/cdrom_copy.iso /mnt/iso
mount: /dev/loop0 is write-protected, mounting read-only
root@masi:/home/masi# exit
exit
masi@masi:~$ tar cf - /mnt/iso/ | wc
tar: Removing leading `/' from member names
303452 886038 72867840
masi@masi:~$ tar cf - /dev/sr0 | wc
tar: Removing leading `/' from member names
0 3 10240
masi@masi:~$ umount /dev/sr0
masi@masi:~$ tar cf - /dev/sr0 | wc
tar: Removing leading `/' from member names
0 3 10240
コピーされたISOファイルにエラーがあるように見えるため、CDの完全なコピーである必要があります。両方のファイルツリーを見て、それを決定します。
masi@masi:~$ su
root@masi:/home/masi# mkdir /mnt/orig_cd
root@masi:/home/masi# mount /dev/sr0 /mnt/orig_cd
mount: /dev/sr0 is write-protected, mounting read-only
root@masi:/home/masi# mount -o loop /home/masi/Desktop/image.iso /mnt/iso
mount: /dev/loop0 is write-protected, mounting read-only
root@masi:/home/masi# diff -q -r /mnt/orig_cd/ /mnt/iso/ | less
出力:出力に正確な同等性を示す行はありませんless
。また、まったく異なるものとしてテストしたので、どちらの場合も出力は予想と同じです。
システムの特徴
dmesg | grep cd
返品中です。cdrom: Uniform CD-ROM driver Revision: 3.20 Volume set (in), Read cd: be 00 00 00 8b f3 00 00 02 00 00 00
lsscsi -s
与えるcd/dvd TSSTcorp DVD+-RW TS-H653H D700 /dev/sr0 -
オペレーティングシステム:Debian 8.5
Linuxカーネル:3.16.0-4-amd64
Debin 8.5のネイティブカーネル
ハードウェア:顧客Dell PC 2011(Dell Precision T1600);1CY515J
CDドライブ:Dell PC用の基本ドライブ -TSSTcorp DVD+-RW TS-H653H
テストCD:完全な空の
Debian CD文書:ディスクイメージ
違い:CDドライブドライバの問題
関連トピック:readomとddは異なるISOイメージを生成しています。、コマンドラインからCDをISOとしてアーカイブ、「dd」はCD-ROMとその効果を読みます。 (Re:書き込みを確認する方法は?)、CDをハードディスクにコピーするddコマンド - 入力/出力エラーこれらのI / Oループのいくつかは...
答え1
私は開発者libburn
であり、ここで言及したのと同じシステムを1年間使用してきました。カーネル3.16には2.6でいくつかのCD回帰がありますが、データコピーのユースケースは正しく機能します。
ここでは、ビット破損(保持されていない)、ユーザーエラー(誤ったデバイスファイル、マウントされたメディアから読み取る)、書き込みタイプTrack-At-Onceで書かれたCDメディアの「事前読み込みエラー」(I / Oエラー)を見たいです。readom
。 )。読みにくいメディアによってI / Oエラーが発生する可能性があります。
詳細:
/dev/scd0
バニラ Debian 8 では使用できません。 、、.../dev/sr0
などのシンボリックリンクのみが可能なので、すべての失敗を簡単に説明できます。それ以外の場合はそのアドレスのみが表示されるため、提案された実行は無駄です。/dev/cdrom
dev/dvd
scd0
wodim -scanbus
/dev/scdX
wodim
readom
ドキュメントは通常readcdからコピーされるため、cdrecordとreadcdの作成者の一意の見解を反映しています。それでも確実に動作するはずです。
データCD、DVD、またはBDメディアからコピーする場合は、ddとcpが機能します。ここでは、ddオプションはほとんど使用されません conv=sync,notrunc
。
conv=sync
データソースが読み取り操作ごとにbsバイト未満を渡す場合は0を注入するため、一部のデータソースでは本当に危険です。 (これは確かにCDでは発生しませんbs=2048
。)
"Input/output error"
これは、プログラムのコピーによるものではなく、カーネルからそのプログラムに送信されるメッセージが原因で発生します。これは通常、ドライブの誤った表示が原因で発生します。
この特別なケースでは、典型的な「CD先読みエラー」と判明した。一部のドライブでは、ペイロードデータの一部として1つまたは2つのワンタイムトラックの消耗ブロックを報告するため、CD(DVDまたはBDではない)の最後の1つまたは2つのブロックを読み取ることができませんが、これは真ではありません。
ほとんどの場合、dd
カーネルcp
3.16 では、I/O エラーにより中断される前にすべてのペイロードチャンクが渡されます。古いカーネルや不幸な状況では、mkisofs
ISOを生成するときに伝統的に300kBのパディングが追加されました。これらの300KBの一部がカーネルで提供されていない場合、ISOのファイル内容は破損しません。
CDの最後の2つのブロックより前にI / Oエラーが発生した場合、読み取りが困難なメディアが原因である可能性が高くなります。この場合は、dmesg出力または/var/log/messages
同様のレポートを確認することをお勧めします。
Aug 29 15:51:12 NN kernel: [9852911.947547] sr 2:0:0:0: [sr0] Unhandled sense code
Aug 29 15:51:12 NN kernel: [9852911.947549] sr 2:0:0:0: [sr0]
Aug 29 15:51:12 NN kernel: [9852911.947550] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Aug 29 15:51:12 NN kernel: [9852911.947551] sr 2:0:0:0: [sr0]
Aug 29 15:51:12 NN kernel: [9852911.947552] Sense Key : Medium Error [current]
Aug 29 15:51:12 NN kernel: [9852911.947554] Info fld=0x710
Aug 29 15:51:12 NN kernel: [9852911.947554] sr 2:0:0:0: [sr0]
Aug 29 15:51:12 NN kernel: [9852911.947555] Add. Sense: Unrecovered read error
Aug 29 15:51:12 NN kernel: [9852911.947556] sr 2:0:0:0: [sr0] CDB:
Aug 29 15:51:12 NN kernel: [9852911.947557] Read(10): 28 00 00 00 06 f8 00 00 40 00
これは典型的な通常のエラーです。ソフトウェアに問題はありません。最初はドライブの問題でもありません。
"(Device or resource busy)"
open(2)
Linuxデバイスの移植不能な役割デバイスファイルを開こうとすると、エラーが発生します。O_EXCL
バラよりここopen()
CDレコーダーデバイスファイルの特性を理解してください。
mount(8)
このフラグを使用してデバイスを開きます。正しく機能する書き込みプログラムは、マウントまたは焼き付けドライブを使用しようとするときに学習するためにこのフラグを使用する必要があります。
readom
進行中の書き込みの実行が中断されないようにするには、この機能を使用します。
したがって、readom
プログラムを焼いたり使用したりするには、まずメディアをアンマウントする必要があります。dd
そして、コピーする前に必ず削除する必要はありませんcp
。
libburnベースのデータ読み取りに関する質問に対する回答:
xorrisoのdd_rescue-ishコマンドを試してみてください。
xorriso -outdev /dev/sr0 -check_media use=outdev sector_map="$HOME"/cdrom_sector_map data_to="$HOME"/cdrom_copy.iso abort_file="$HOME"/cdrom_copy_abort --
コピーはファイルとして表示する必要があります~/cdrom_copy.iso
。読み取りエラーが報告され、次のブロックをコピーしようとします。このファイルは、~/cdrom_sector_map
失敗した読み取りと成功した読み取りのパターンを記録します。別の読み取り実行はそれをロードし、正常にコピーされなかったブロックのみを試みます。
成功した実行は、次のようなメッセージで終了する必要があります。
Media checks : lba , size , quality
Media region : 0 , 359062 , + good
不良ブロックが残っている実行には、品質列に「-」文字を含む「メディア領域」行があります。 「+」は正常に読み出されたブロック間の間隔を示す。 「0」は、まだ試みていないブロックを示す。 (トラック間にこのように残ることがあります。CD-ROMにはトラックが1つしかありません。)
ブロック不足のCD Track-At-Onceの品質は「-」です。 CDの最後の2つのブロックのうちの1つにのみこの問題が発生すると、すべてのペイロードブロックがにコピーされた可能性があります~/cdrom_copy.iso
。
この頑固なプログラムの実行を停止するには、他のシェルで実行するのが最善です。
touch "$HOME"/cdrom_copy_abort
プロセスを終了すると、セクタマップは記録されず、コピーされたブロックは次回の実行時に再読み込みされます。
完全に成功したか、最後の1つまたは2つのブロックのみが欠落している場合は、コピーされたISOに欠落しているブロックアドレスを指すファイルがないことをテストする必要があります。
スーパーユーザーとして(またはを通じてsudo
):
mkdir /mnt/iso
mount -o loop ...your.users.home.../cdrom_copy.iso /mnt/iso
このコメントは報告する必要がありますが、それ以上のエラーメッセージはありません。
mount: /dev/loop0 is write-protected, mounting read-only
tar
一般ユーザーとしてすべてのファイルを読み取り、出力を試してみましょうwc
。
tar cf - /mnt/iso | wc
I / Oエラーは報告されず、警告のみが報告され、後に3つの数字が続きます。
tar: Removing leading `/' from member names
1343012 7725571 331386880
CDをマウントできるほど読みやすい場合は、cdrom_copy.iso
別のインストールディレクトリを作成してマウントしてCDとCDのファイルを比較します/dev/sr0
。
mkdir /mnt/orig_cd
mount /dev/sr0 /mnt/orig_cd
次に、2つのファイルツリーを比較します。less
違いが多い場合は、端子が溢れないように出力をパイプに接続してください。
diff -q -r /mnt/orig_cd /mnt/iso 2>&1 | less
空の出力は違いがないことを意味します。別のCDをマウントすると、次のようなメッセージがたくさん表示されます。
Only in /mnt/iso: ...some_name...
...
Only in /mnt/orig_cd: ...some_other_name...
両方のツリーで同じ相対パスを持つファイルの内容が異なる場合、同様のメッセージが表示されます。
Files /mnt/cd_orig/...some_file... and /mnt/iso/...some_file... differ
すべてが正常な場合は、ファイルを削除してプロセス全体を適用する必要がある次のCDからブロックを読み取ることを~/cdrom_sector_map
防ぎます。xorriso