Ответы:
Иногда неуместно использовать возможности автоматического перемещения сектора накопителя, поэтому вопрос, поднятый ohho, становится особенным:
Если есть дефектный сектор, то вы либо:
- обдумайте это перед выполнением любого действия, которое может вызвать перемещение (или переназначение или сохранение, или как вы это называете).
В то время как SpinRite 6 не для Mac, страница 2003 для версии 5 поучительна:
Обратите внимание на раздел об авто-перемещении и связанном риске потери данных.
Если не считать SpinRite, перенесемся на десятилетие с 2003 по 2013 год:
На вопрос здесь ...
Для Mac - для OS X - я не знаю ничего более способного и осторожного, чем SpinRite (ничего, чтобы отключить автоматическое перемещение).
Итак, при нынешнем положении вещей: для проверки секторов диска на USB с OS X мы, вероятно, ограничены использованием утилит, которые могут вызвать перемещение . Я не могу оценить степень риска связанных с этим потерь данных, но если этот риск является приемлемым, я должен в первую очередь ориентироваться на:
Подсказка: то, что находится под вопросом (1), более удобно для пользователя.
Одна только ОС не может использовать технологии SMART на внешних дисках, таких как USB 2.0 и FireWire.
В другом месте много информации (и недоразумений;), поэтому я сосредоточу эту часть ответа только на одном:
kasbert / OS-X-SAT-SMART-драйвер на GitHub:
… Драйвер ядра для внешних дисков Mac OS X USB или FireWire. Он расширяет стандартное поведение драйвера, предоставляя доступ к данным SMART диска. Интерфейс для данных SMART такой же, как и у драйвера семейства ATA, поэтому большинство существующих приложений должны работать. Для драйвера требуется корпус внешнего диска с поддержкой SAT (SCSI ATA Translation). ...
Если вы попробуете этот KEXT с Lion, тогда - как и с любым сторонним расширением ядра - действуйте с осторожностью.
Встроенная команда OS X fsck_hfs
имеет опцию, -S
которая, очевидно, будет проверять, есть ли плохой блок на жестком диске USB в OS X.
С официальной страницы руководства :
-S Причина fsck_hfs сканировать все устройство ищет ошибок ввода / вывода. Он попытается отобразить блоки с ошибками на имена, аналогично опции -B .
Пример:
fsck_hfs -fy -S /dev/disk3s11
Это , кажется, делает , что при запуске на разделы без плохих блоков , но я пока чек / документ , что он делает , когда есть плохие блоки.
Откройте Terminal.app в Приложениях / Утилитах.
Вырежьте и вставьте это внутрь, чтобы установить Brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Установите e2fsprogs вместе с напитком:
brew install e2fsprogs
Введите, diskutil list
чтобы найти ваше устройство (/ dev / diskX)
Запустите badblocks
на своем устройстве: (замените X на номер вашего устройства)
/usr/local/Cellar/e2fsprogs/1.44.3/sbin/badblocks -v /dev/diskX
Operation not permitted while trying to determine device size
(с / без sudo)
В зависимости от файловой системы на диске вы можете запустить
fsck_msdos /dev/disk1s1
Это проверило бы FAT FS. Может быть, это то, что вы хотите? Возможные команды:
fsck_cs
fsck_exfat
fsck_hfs
fsck_msdos
fsck_udf
fsck_hfs -S
сканирует все содержимое файловой системы и отображает блоки с ошибками ввода-вывода в имена.
Единственный способ узнать это - написать в каждый сектор и прочитать его обратно, чтобы узнать, получите ли вы то же самое обратно, проверяя наличие ошибок в пути.
badblocks
под Linux это делает. badblocks
имеет неразрушающий тестовый режим чтения / записи.
В операционной системе Windows, я верю , что если вы вызываете chkdsk
с /F
, /B
и /R
вариантами его будут проверять каждый сектор для плохих секторов. Это также неразрушающий, но я не уверен, что он действительно пишет в каждый сектор для тестирования.
Этот ответ суперпользователя предполагает, что SpinRite 6 также может делать то же самое, но я не проверял.
Позвольте мне сообщить вам, в каком порядке вам следует действовать, если вы подозреваете / знаете, что у вас плохие сектора:
1) Сделайте копию всего вашего раздела на другое устройство, используя dd (посмотрите имя вашего раздела, используя df
). Это может занять некоторое время, может быть, больше, чем один день на диске USB2 для 400 ГБ. bs=
ускоряет его (в 5 и более раз), sync
заполняет входные блоки нулями, если были какие-либо ошибки чтения.
dd if=/dev/disk3s8 of=/dev/disk4s9 bs=1024k conv=noerror,sync
2) Затем проверьте, действительно ли это работает, не только структуру папок, но и откройте содержимое.
3) Если это не так, попробуйте скопировать содержимое вашего раздела на уровне файлов.
cp -Rp /Volumes/<source>/ /Volumes/<destination>/
4) Только теперь, когда вы попытались сохранить как можно больше, не касаясь файловой системы, запустите проверку раздела. -f
Опция активируется, даже если она выглядит нормально, -S
сканирует на наличие плохих блоков. Не гарантируется, что эта операция не имеет ограничений, но она может сохранить ваш диск.
fsck_hfs -fS /dev/disk3s8