dd создает поврежденные ISO-образы на Snow Leopard (независимо от того, вызваны ли они из скрипта или оболочки)

1921
znice

Хорошо, я, вероятно, здесь идиот, но я пишу утилиту для копирования ISO, которая на самом деле представляет собой просто графический интерфейс, надетый поверх dd, и я не могу уговорить эту вещь, чтобы производить некоррупционные ISO на Snow Leopard. Я пробовал следующие варианты (все с / dev / disk1 размонтированы, как и должно быть):

dd if=/dev/disk1 of=/Users/[me]/Desktop/anIso.iso bs=2048 conv=sync,notrunc dd if=/dev/disk1 of=/Users/[me]/Desktop/anIso.iso bs=2048 conv=notruc  dd if=/dev/disk1 of=/Users/[me]/Desktop/anIso.iso bs=2048 dd if=/dev/disk1 of=/Users/[me]/Desktop/anIso.iso 

во всех четырех случаях, щелкнув по произведенному iso, я получаю всплывающее окно, которое говорит: «Следующие образы дисков не могут быть прочитаны» и выводит список файлов. Если это используется, вывод (по крайней мере, для первого варианта команды):

408258+1 records in 408259+0 records out 836114432 bytes transferred in 513.382815 secs (1628637 bytes/sec) 

Есть идеи? Я читаю справочные страницы, вариант 1 определенно выглядит так, как будто он должен производить ISO из указанного компакт-диска

3
Это хочет пойти к суперпользователю, я думаю. T.J. Crowder 14 лет назад 0
подождите, вы пытаетесь создать ISO-диски для * data * или * audio * дисков? ваш процесс должен работать для дисков с данными. аудио это другой зверь, однако. quack quixote 14 лет назад 0
В этом случае пытаемся сделать ISO-образ аудио-диска. Какая разница. Думаю, я был действительно наивен по этому поводу. Думал, что изображение было образом. Вероятно, помог бы мне проверить Википедию, прежде чем я прыгнул в ... znice 14 лет назад 0

5 ответов на вопрос

3
mark4o

For a CD-ROM, use /dev/disk1s0 and not /dev/disk1.

/dev/disk1 will access the raw 2352-byte blocks, which is useful if you are reading an audio CD. On a CD-ROM, 2048 of the 2352 bytes are used for data and most of the rest are for error correction. When you read /dev/disk1s0, it will use the error correction codes to correct any errors if possible and return the (possibly corrected) 2048 data bytes of each block, which is what you want for an ISO image.

Note that this is different for DVD-ROM, where you would use /dev/disk1. DVD-ROM uses a different error correction scheme which spreads the data across the disk more in order to provide better error resilience. There is not a separate device name that can be used to read the DVD data with the error correction codes included.

Кажется, что нет / dev / disk1s0, только / dev / disk1s [1-последний трек], и / dev / disk1s1 определенно кажется первым треком в записи. В любом случае попытался передать / dev / disk1s0 как infile в dd (несмотря на то, что его нет в списке разделов диска), и dd пожаловался, что «такого файла или каталога не существует». Спасибо, все равно, все же. Очень странный бизнес (или нет?) znice 14 лет назад 0
`/ dev / disk1s0` используется для чтения данных с CD-ROM. Если компакт-диск только аудио, то для каждой звуковой дорожки не будет `/ dev / disk1s0`, только disk1s1, s2 и т. Д. mark4o 14 лет назад 0
Аудио CD не содержит файловой системы, поэтому вы не можете создать монтируемый ISO-образ аудио CD с помощью `dd`. mark4o 14 лет назад 0
Итак, как вы копируете образ аудио CD? ... Или нет (вы можете только скопировать данные, которые составляют каждую дорожку) znice 14 лет назад 0
Вы можете создать образ с помощью `dd`, но он не будет ISO-образом и не будет монтируемым, поскольку это только необработанные аудиоданные и не имеет файловой системы. В этом случае вы должны использовать размер блока 2352 (`bs = 2352`). mark4o 14 лет назад 0
2
quack quixote

Audio CDs are generally not ripped with dd and stored as ISOs. Audio CD data (CDDA) is closer to tracks on a phonograph record, spiraling inward with gaps marking the boundaries. They do not contain a filesystem.

Instead, audio CD data is usually ripped with programs like cdrdao or cdparanoia. Instead of an ISO file, audio CDs are generally stored as BIN/CUE pairs, WAV/CUE pairs, or individual WAV files for each track. The CUE file is an ASCII text file containing the layout of the tracks, and the BIN or WAV files contain the actual audio data.

With cdparanoia:

# read cd's table of contents cdparanoia -Q # rip several (1 thru N, inclusive) tracks to one big file cdparanoia --batch 1-N bigfile.wav 

With cdrdao:

cdrdao read-cd --read-raw --datafile foo.bin --device ATAPI:0,0,0 --driver generic-mmc-raw foo.toc 

See the Ripping and Burning from the Command Prompt How-To for lots more gory details.

0
monojohnny

Не уверен, что происходит, но пытались ли вы сравнить источник и цель впоследствии?

Может быть:

od -c source > source.txt od -c target > target.txt diff source target 

Я предполагаю, что это сгенерирует довольно большие файлы, и я не уверен, насколько полезным будет вывод diff - но, по крайней мере, он должен дать ответ относительно того, являются ли файлы одинаковыми или нет.

У вас работает FileVault или что-то еще на вашем компьютере? Не уверен, что это может повлиять на этот тип вещей?

Работает ли dd с другими типами бинарных файлов? (попробуйте скопировать '/ bin / ls' в другой файл и посмотреть, работает ли он по-прежнему?)

сейчас, когда запускается diff, может не хватить терпения, чтобы он закончил (восьмеричные дампы действительно очень большие). Для чего бы то ни было, свалки ТОЧНОГО размера. 14 лет назад 0
Подожди, говорил слишком рано, diff только что закончил. Выход: 51727460c51727460 [перевод строки] <6165410140 [перевод строки] --- [разрыв строки]> 6165414000 14 лет назад 0
0
user23307

для сравнения бинарных файлов используйте cmp, а не diff ...

если вы все еще хотите сравнить их в шестнадцатеричном

diff <(od -c source) <(od -c target) 

Я бы проверил это на компакт-диске, который вы уже записали и проверили из iso, а затем сравнил исходный iso с вашим iso.

было бы полезно узнать, были ли все извлеченные изображения одинаковыми или нет.

также / dev / disk1 выглядит неправильно, вы уверены, что это CD-диск?

836114432 также 797MB, имеет ли это смысл для диска, который вы используете?

запуск cmp прямо сейчас, может занять некоторое время. diskutil сообщает, что диск имеет размер 836,1 Мб, но я думаю, его размер в мегабайтах равен 1 милю байтов. znice 14 лет назад 0
вывод cmp: "cmp: EOF on / dev / disk1". Это значимо / полезно? Опять же, извинения за мое невежество на эту тему znice 14 лет назад 0
0
znice

For whatever it's worth, this is what diskutil tells me about the disk that's currently in the drive:

 Device Identifier: disk1 Device Node: /dev/disk1 Part Of Whole: disk1 Device / Media Name: MATSHITA DVD-R UJ-868 Volume Name: West Side Story Escaped with Unicode: West%FF%FE%20%00Side%FF%FE%20%00Story Mounted: No File System: CD-DA Type: cddafs Name: CD Audio Partition Type: CD_partition_scheme Bootable: Not bootable Media Type: Protocol: SATA SMART Status: Not Supported Total Size: 836.1 MB (836112480 Bytes) (1633032 512-Byte-Blocks + 96 Byte(s)) Volume Free Space: 0 B (0 Bytes) (exactly 0 512-Byte-Blocks) Read-Only Media: Yes Read-Only Volume: Not applicable (not mounted) Ejectable: Yes Whole: Yes Internal: Yes OS 9 Drivers: No Low Level Format: Not Supported Optical Drive Type: CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-R, DVD-R DL, DVD-RW, DVD+R, DVD+R DL, DVD+RW Optical Media Type: CD-ROM Optical Media Erasable: No 

Похожие вопросы