Как мне пометить кластеры как плохие в NTFS?
Фон
Я ошибочно побежал
>chkdsk /R
на моем SSD, где
/ R : обнаруживает поврежденные сектора и восстанавливает читаемую информацию (подразумевается / F)
/ F : исправляет ошибки на диске
И теперь у меня есть кластер, помеченный как плохой на моем диске. Мне нужно отменить пометку этого кластера как плохую.
Примечание : chkdsk
имеет возможность переоценивать кластер и возвращать его для использования:
/ B : только NTFS: переоценка поврежденных кластеров на томе (подразумевается / R)
К сожалению, эта опция снимет пометку только в том случае, если она больше не плохая. Мне нужно, чтобы кластер был неотмечен независимо.
Как мне пометить кластер NTFS как плохой?
Зачем ты это делаешь?
Неважно, почему я и сотни других задаем вопрос. Но проблема в том, что на моем диске плохой сектор. Пришло время заменить диск на новый. Способ сделать это состоит в том, чтобы зеркалировать SSD на другой SSD с помощью программного зеркалирования Windows .
К сожалению, известная ошибка в зеркалировании Windows NTFS не позволяет завершить зеркалирование, как описано в KB325615 :
Невозможно создать программное зеркало, если диск содержит поврежденные блоки
DMIO работает ниже файловой системы, и если он обнаруживает ошибки ввода-вывода при чтении из сектора на исходном диске или при попытке записать данные на целевой диск, он прерывает операцию зеркалирования.
Очевидный обходной путь заключался в том, чтобы уменьшить объем ОС, чтобы плохой сектор прошел конец тома. В Windows 7, когда вы пытаетесь уменьшить объем, он автоматически удаляет файлы.
Это хорошая вещь. В старые времена, если вы хотели уменьшить объем, вы должны были использовать инструмент дефрагментации, который выдвигал все файлы к передней части диска; оставляя свободное пространство в конце.
К сожалению, в настоящее время неперемещаемого файл в виде: $BadClus
. Операция Shrink defrag отмечает неизменяемый файл в журнале событий:
Анализ объема сжатия был начат на томе ОС (C :). Эта запись в журнале событий содержит подробную информацию о последнем неподвижном файле, который может ограничивать максимальное количество восстанавливаемых байтов.
Диагностические детали:
- Последний неподвижный файл выглядит так: \ $ BadClus: $ Bad: $ DATA
- Последний кластер файла: 0xdc1ded
- Цель сокращения потенциала (адрес LCN): 0xa91bd9
- Флаги файлов NTFS: -S - D
- Фаза усадки: <анализ>
Так:
- я не могу отразить громкость до тех пор, пока плохие сектора не будут удалены
- уменьшение громкости удалит плохие сектора
- я не могу уменьшить громкость, пока разреженный
$BadClus
файл не будет перемещен - я не могу двигаться,
$BadClus
пока он физически занимает плохие скопления $BadClus
будет физически занимать плохие кластеры, в то время как NTFS считает кластер плохим
Как мне пометить кластер как плохой?
Для людей, забивающих диски тоже
Решение моей проблемы также подойдет для наиболее распространенного случая:
Кто-то добавляет диск с плохими секторами на новый диск, и тогда на хорошем диске эти кластеры помечаются как плохие, даже если они хорошие. Так получилось, что у них есть обходной путь:
>chkdsk /B
За исключением того, что не работает в моем случае. (И даже если это сработало в моем случае, это не тот вопрос, который я задаю.)
Бонус Болтовня
Конечно, Кингсон SSD не поддерживает запасные секторы. Если бы он это сделал, он мог бы прозрачно переназначить запасной сектор для меня, и у меня не было бы NTFS, пытающегося переосмыслить мысли.
SpinRite
я попробовал SpinRite на дисководе SS. Он сталкивается с дефектным сектором, но не может получить какие-либо значения с диска:
══════════════════╤═══════════════════════════╤═════════════════════════════════
cylinder : 7,183 │ data samples : 1,999 │ first uncertain bit : · · · · ·
sector : 17 │ unique samples : 0 │ last uncertain bit : · · · · ·
head : 187 │ discarded sples : 0 │ uncertain bit span : · · · · ·
Число выборок данных насчитывает до 2000, затем возвращается к нулю и продолжает работать.
После примерно 20 циклов (то есть 40000 выборок данных) я сдался.
клонирование
Опять таки; Давайте не будем путать вопрос с примером. Вопрос в том, как отменить пометку кластеров как плохих в NTFS. После того, как я сдамся и выкину SSD, вопрос все равно останется. Не путай мою проблему с вопросом. Это не значит, что я могу попытаться решить мою проблему:
DriveImageXML достигает плохого сектора и прерывает работу.
GParted не загружается. Появляется графический загрузочный экран, затем окно консоли прокручивает текст, а затем черный экран - ничего
Clonezilla отказывается клонировать мой SSD:
Этот диск содержит несовпадающие разделы GPT и MGR: / dev / sdb
Это приведет к путанице в Clonezill и может сделать сохраненный образ бесполезным или не сможет клонировать диск.Пожалуйста, исправьте проблему, затем перезапустите Clonezilla снова.
Программа прекращена.
Как мне пометить кластер как плохой в NTFS?
CreateFile
для непосредственного открытия тома; но понял, что мне придется начинать с нуля, анализируя все недокументированные структуры данных. я открыл том непосредственно для редактирования в моем любимом шестнадцатеричном редакторе, но у меня была та же самая нижняя сторона, когда пришлось вручную анализировать шестнадцатеричные структуры.Ответы:
Я больше отвечу на заглавный вопрос. 1
Во-первых, обратите внимание, что, если сектор действительно плохой, его пометка не сделает его читабельным. Таким образом, ваше программное обеспечение для клонирования, скорее всего, захлебнется чтением.
В NTFS кластер помечается как плохой, назначая его специальному потоку,
$BadClus:$Bad
разреженному файлу.Что вам нужно, это
$Bitmap
.Для снятия отметки со всех плохих блоков есть
ntfsfix -b -d
(-b
= очистить список плохих блоков,-d
= очистить / не устанавливать флаг «грязных») ( другой метод сntfstruncate
делает то же самое 2 ).chkdsk -f
вручную, либо не запускайте-d
его при запуске Windows, если / в случае возникновения ошибок FS.Очистить определенный блок гораздо сложнее, так как я не нашел ни одного существующего программного обеспечения, которое могло бы сделать это из коробки 3 . Разрешение плохих секторов NTFS: метафайл $ BadClus - код Кэти описывает способ - в основном, он редактирует список запуска и растровое изображение вручную.
1 Только потому, что обработка плохих секторов + NTFS + клонирование - слишком широкая тема. Я с удовольствием отвечу на те, которые имеют непосредственное отношение к данному вопросу.
2 проверил исходный код
ntfsfix
v2015.3.14
.3 для настойчивых из них, они не могут сделать это:
ntfscat
(не может читать нечитаемые сектора),ntfscp
(не может записать смещение),ntfstruncate
,ntfsfallocate
,dd
(не может открыть$BadClus:$Bad
для записи)источник
У меня был жесткий диск с плохими кластерами. Я заменил его с известным хорошим приводом. Процесс восстановления восстановил как плохие данные кластера, так и другие данные. Это было на компьютере с Windows 7 Enterprise.
Моим решением было запустить «chkdsk d: / b» (как было предложено ранее). Параметр / b указывает (только для NTFS) на повторное сканирование ранее отмеченных сбойных кластеров. По крайней мере, в моем случае (и я подозреваю, что все версии, которые поддерживают / b), он очищает список плохих кластеров непосредственно перед началом сканирования на чтение. Когда вы увидите сообщение «Удаление X кластеров из файла плохих кластеров», вы сможете убить процесс chkdsk (так как он только читает данные).
Примечание. Существует вероятность того, что chkdsk обновит файл сбойных кластеров в тот момент, когда вы завершите процесс, если в начале диска обнаружится сбойный сектор. Я рискнул, и он успешно сбросил файл сбойных кластеров без необходимости загружать кучу других программ, которым в любом случае требуется полный chkdsk. YMMV.
источник
cmd
окно. Затем бегите,chkdsk d: /f
который скажетCHKDSK discovered free space marked as allocated in the volume bitmap.
и следующийWindows has made corrections to the file system.
.Первый лучший способ - это клонировать диск. Затем используйте
chkdsk /B
на новом рабочем диске.Теперь, если разобрать реальный плохой сектор, это сложно. Вы можете использовать:
mhdd
(включите отображение)Любой продукт должен переназначить плохой сектор, тогда CHKDSK / B должен снять его.
Скачайте gparted или partedmagic ISO. Загрузитесь с него и уменьшите раздел.
Это будет работать, потому что Windows НЕ работает, поэтому это программное обеспечение сокращает раздел, несмотря ни на что. Тогда
chkdsk /B
позабочусь об остальном.Если все это не удастся, то вас ждет ужасная дорога боли. Вам нужно получить редактор секторов и вручную отредактировать файловую систему. К сожалению, это выходит за рамки моих знаний о NTFS. Для FAT или FAT32 это супер просто.
источник
Pending Sector Count
ноль, аReallocated Sector Count
ноль.Поскольку вы пытаетесь зеркалировать свой диск (и, похоже, вы используете Windows 7), существует другой подход:
Используйте встроенный инструмент для создания резервной копии, которая будет восстановлена на хорошем диске. Зайдите в Панель управления, Система и безопасность, Резервное копирование. Там создайте образ системы, а также диск восстановления системы.
После этого вы можете заменить старый неисправный диск на хороший, а затем восстановить систему в ее состояние, используя диск восстановления системы и сделанную резервную копию.
источник
пакет gddrescue (gddrescue - инструмент восстановления данных GNU) должен выполнить эту работу за вас.
Возьмите автономный дистрибутив на основе Debian (CD или USB-флешку), установите gddrescue с помощью «sudo apt-get install gddrescue», затем клонируйте SSd, открыв окно терминала и выполнив:
ddrescue -f / dev / sda / dev / sdb ./ddrescue.log
(где / dev / sda - источник, а / dev / sdb - целевой SSD)
ddrescue попытается восстановить поврежденный блок и, если не сможет, пропустить его.
По окончании chkdsk / f / b должен завершить работу.
источник
Похоже, ваша цель - уменьшить размер раздела, и что Windows не будет уменьшать его из-за файла $ BadClus, который существует из-за плохих кластеров.
У меня есть альтернативное решение для вас, которое должно сжимать диск без необходимости иметь дело непосредственно с файлом $ BadClus. Используйте Partition Wizard, чтобы сжать раздел. Мастер разделов прост в использовании, бесплатен для некоммерческого использования, может запускаться изнутри Windows с графическим интерфейсом пользователя или с загрузочного компакт-диска или USB, который работает под управлением небольшого Linux, а затем предоставляет тот же графический интерфейс. Эта программа также может восстанавливать стертые разделы и конвертировать между таблицами разделов MBR и GPT.
У меня возникли проблемы с тем, что Windows не сжимает раздел после определенной точки, затем я попробую Мастер разделов на том же разделе, который делает это без проблем. Я полагаю, мастер разделов готов игнорировать файл $ BadClus. Я пользуюсь этой программой более 8 лет и, наконец, купил Pro версию, потому что они заслужили ее. Я нашел эту программу в качестве замены для PQMagic, которую я купил в 1996 году, которая была великолепной программой для создания разделов DOS для небольших дисков.
источник