Відповіді:
Іноді недоцільно використовувати можливості автоматичного переселення сектору накопичувача, тому питання, поставлене ohho, стає відмітним:
Якщо є бракований сектор, ви можете:
- врахуйте це перед тим, як виконати будь-яку дію, яка може спричинити переїзд (або перезавантаження чи збереження, або як би ви це не назвали).
Хоча SpinRite 6 не призначений для Macs, сторінка 2003 року для версії 5 просвічує:
Зверніть увагу на розділ про автоматичне переміщення та пов'язаний з цим ризик втрати даних.
SpinRite убік, швидкий рух на десятиліття з 2003 по 2013 рік:
До питання тут…
Для Mac - для OS X - я не знаю нічого такого здатного і обережного, як SpinRite (нічого, щоб відключити автоматичний переїзд).
Отже, як і зараз: для перевірки секторів диска на USB з ОС X ми, ймовірно, обмежилися використанням утиліт, які можуть спричинити переміщення . Я не можу оцінити ступінь ризику пов'язаної втрати даних, але якщо цей ризик є прийнятним, я повинен спершу спрямовуватися на:
Підказка: те, що під відповідним питанням (1), є більш зручним для користувачів.
Одна ОС не може використовувати технології SMART на зовнішніх дисках, таких як USB 2.0 і FireWire.
В іншому місці є безліч інформації (і непорозуміння;), тому я зосередив цю частину відповіді лише на одному моменті:
kasbert / OS-X-SAT-SMART-драйвер на GitHub:
… Драйвер ядра для зовнішніх накопичувачів USB або FireWire Mac OS X. Він розширює стандартну поведінку драйверів, надаючи доступ для керування даними SMART. Інтерфейс даних SMART такий же, як і з драйвером сімейства ATA, тому більшість існуючих додатків повинні працювати. Драйвер вимагає зовнішнього корпусу зовнішнього диска, здатного SAT (переклад SCSI ATA). …
Якщо ви спробуєте цей KEXT з Lion, тоді - як і з будь-яким стороннім розширенням ядра - продовжуйте обережно.
У вбудованій команді OS X fsck_hfs
є опція, -S
яка, мабуть, перевірить наявність поганого блоку на жорсткому диску USB в ОС X.
-S Причина fsck_hfs сканувати весь пристрій шукає помилок введення / виведення. Він спробує зіставити блоки з помилками на імена, подібно до параметра -B .
Приклад:
fsck_hfs -fy -S /dev/disk3s11
Здається, це роблять, коли запускаються на розділах без поганих блоків, але я ще повинен перевірити / задокументувати, що він робить, коли є погані блоки.
Оновлення: Криваве пекло! Apple вилучила мангапи зі свого сайту.
Відкрийте Terminal.app в програмах / Утиліти.
Виріжте і вставте всередину, щоб встановити Brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Встановіть e2fsprogs за допомогою brew:
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
(з / без
Залежно від файлової системи на диску, яку ви могли запустити
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
варіантами його перевірятимуть кожен сектор для поганих секторів. Це також не руйнує, але я не впевнений, чи справді він пише кожному сектору для тестування.
Ця відповідь Superuser говорить про те, що 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