По сути, я хотел бы убедиться, что изображение было успешно записано. Это почти такой же вопрос, как этот, за исключением Mac OS X.

После поиска в Интернете (включая superuser.com) я смог найти решение только моей проблемы для Windows и хотел бы решить эту проблему в Mac OS X.

Я уже пытался установить ImgBurn через Wine, но, похоже, это не работает.

4 ответа4

2

Лучший способ провести сравнение такого рода - это команда cmp . cmp сравнивает данные побайтно и сообщит вам о любых различиях ** между двумя файлами.

Введите команду как cmp /home/image.iso /media/cdrom0 (убедитесь, что вы используете фактические пути к образу и компакт-диску в соответствии с вашей ситуацией). Вывод, который вы хотите увидеть, это либо отсутствие вывода (образ и компакт-диск идентичны), либо cmp: EOF on image.iso , который указывает, что на компакт-диске больше байтов, чем образа, но все данные на изображение было успешно скопировано на компакт-диск. Дополнительные данные на компакт-диске, вероятно, просто заполняются нулями, что происходит, когда изображение меньше размера компакт-диска.

С другой стороны, если вы видите вывод, информирующий вас о том, что они различаются (это будет выглядеть примерно так: image.iso cdrom0 differ, byte 128 line 7), то произошла ошибка при копировании изображения, и между ними есть некоторая разница , Другая вещь, которая может показаться вам неуместной , это cmp: EOF on cdrom0 , так как это указывает на то, что часть образа не была скопирована на CD (это может быть результатом прерывания процесса копирования).

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


** Технически, cmp сообщает только о первой разнице между файлами. Если есть несколько отличий, они не будут отображаться, но в случае записи образа на компакт-диск количество ошибок не должно иметь значения, все ошибки являются плохими.

0

Я сам не пользователь Mac, но после небольшого прослушивания может показаться, что это изначально поддерживается в OS X благодаря приложению Disk Utility. Подробности здесь: http://www.macinstruct.com/node/390

Эта статья за 2011 год, и, как я уже сказал, я сам не пользователь Mac, поэтому у меня нет под рукой, чтобы проверить, но если Дисковая утилита все еще существует, эта опция, вероятно, все еще там.

0

Если вы не боитесь "темной стороны" OSX, то есть используйте для этого терминал, вы можете просто сравнить контрольные суммы SHA исходного устройства и файла изображения.

$ shasum /dev/rdisk2
bad2c8fbb090a4b49b63135895fdb3b64062ceb6  /dev/rdisk2
$ shasum yourdisk.iso
bad2c8fbb090a4b49b63135895fdb3b64062ceb6 yourdisk.img

и сравните вывод.

0

Предполагая, что bash-скриптинг доступен

Скопируйте приведенный ниже bash-скрипт как cksum.sh в папку, которая включена в ваш $ PATH
Введите chmod 755 cksum.sh (в папке, в которой вы сохранили скрипт)

Тогда использовать это; cd в папку с исходными файлами и выполните:
$ cksum.sh -b для создания файла CONTENT.sha256sum.
$ cksum.sh -c для проверки контрольных сумм в файле на соответствие файлам в текущем каталоге.

Вы также можете указать имя контрольной суммы в качестве второго аргумента, чтобы переопределить значение по умолчанию, которое всегда создается в /read из текущего рабочего каталога (примечание: исключено из файла контрольной суммы).

Это, безусловно, медленнее, чем многие другие решения, но я считаю, что он более универсален, чем другие. Также обратите внимание, что если вы оставите файл контрольной суммы на носителе (будь то CD, DVD или USB), то проверка содержимого мультимедиа будет простой
sha256sum -c CONTENT.sha256sum
в любое время, если у вас есть исполняемый файл sha256sum.

Он обнаруживает неисправные и отсутствующие файлы, но не «добавленные файлы» (как написано); но это возможно путем сопоставления содержимого папки с содержимым списка.

Конечный пользователь также может обнаружить неисправные (например, ошибки чтения) и замененные файлы, найдя исполняемый файл sha256sum и используя sha256sum -c CONTENT.sha256sum .


--- cksum.sh ---
#!/bin/bash

file="$2"
file="${file:=CONTENT.sha256sum}"

case  "$1" in

  "-b" ) 
    ( find -type f ! -iname "*$file" 2>/dev/null   \
     | while read f ;do sha256sum -b "$f" ;done )  \
     | tee "$file"
  ;;

  "-c" )
    if [ ! -r "$file" ] ;then
      echo "'$file' is not a readable file, cannot check."
    else
      sha256sum -c "$file"
    fi
  ;;

  * )
    echo "Usage: ${0##*/} -b|-c [checksum-filename]"
    echo "Will create(-b)/check checksums in '$file'"
    echo "for files in current dir,"
    echo "by use of 'find -type f' and 'sha256sum -b/-c'"
  ;;

esac

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .