Debian 8.xでCDROMをISOにコピーする方法は?

Debian 8.xでCDROMをISOにコピーする方法は?

コピーする必要がありますコドニックスCDからISOへの医療データ。 CDドライブにCDROMを挿入します。TSSTcorp DVD+-RW TS-H653H私のものデルプリシジョンT1600。 CDをDebianに挿入すると、検出されインストールされます。レプリケーションでは、分化ddシステムは体系的に失敗しますが、readom成功する唯一の分化ツールです。しかし、cpそれも失敗したので、コマンドラインからCDをISOにコピーするためのより良いdiffツールが必要です。関連LinuxJournal記事ここ。作業プロセス

  1. オプティカルドライブの取り外し

    root@masi:/home/masi# unmount /dev/sr0
    
  2. コピーコマンドを擬似コードとして実行する

    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

試行が失敗したため、ddddを使用して操作を実行することはお勧めできません。

dd if=/dev/cdrom of=/home/masi/Desktop/image.isoDebian でコマンドを使用すると、次のメッセージが表示されます。

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を使用すると、失敗するその他のコピーコマンド

  1. そしてbsconv

    # http://crunchbang.org/forums/viewtopic.php?id=23659
    dd if=/dev/scd0 of=whatever.iso bs=2048 conv=sync,notrunc
    
  2. 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-amd64Debin 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/cdromdev/dvdscd0wodim -scanbus/dev/scdXwodim

readomドキュメントは通常readcdからコピーされるため、cdrecordとreadcdの作成者の一意の見解を反映しています。それでも確実に動作するはずです。

データCD、DVD、またはBDメディアからコピーする場合は、ddとcpが機能します。ここでは、ddオプションはほとんど使用されません conv=sync,notruncconv=syncデータソースが読み取り操作ごとにbsバイト未満を渡す場合は0を注入するため、一部のデータソースでは本当に危険です。 (これは確かにCDでは発生しませんbs=2048。)

"Input/output error"これは、プログラムのコピーによるものではなく、カーネルからそのプログラムに送信されるメッセージが原因で発生します。これは通常、ドライブの誤った表示が原因で発生します。

この特別なケースでは、典型的な「CD先読みエラー」と判明した。一部のドライブでは、ペイロードデータの一部として1つまたは2つのワンタイムトラックの消耗ブロックを報告するため、CD(DVDまたはBDではない)の最後の1つまたは2つのブロックを読み取ることができませんが、これは真ではありません。

ほとんどの場合、ddカーネルcp3.16 では、I/O エラーにより中断される前にすべてのペイロードチャンクが渡されます。古いカーネルや不幸な状況では、mkisofsISOを生成するときに伝統的に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

関連情報