Як відзначити кластер NTFS як поганий?


14

Як визначити кластери як погані в NTFS?

Фон

Я помилково побіг

>chkdsk /R

на моєму SSD, де

/ R : Знаходить погані сектори та відновлює читану інформацію (мається на увазі / F)
/ F : Виправляє помилки на диску

І тепер у мене кластер позначений як поганий на моєму диску. Мені потрібно відмітити цей кластер як поганий.

Примітка : chkdskє можливість повторно оцінити кластер і повернути його у користування:

/ B : Тільки NTFS: Переоцінює погані кластери на гучність (мається на увазі / R)

На жаль, цей варіант відменить кластер лише тоді, коли він більше не поганий. Мені потрібно, щоб кластер не було позначено незалежно.

Як я скасую кластер NTFS як поганий?

Чому ви це робите?

Не має значення, чому я та сотні інших задаємо це питання. Але проблема в тому, що на моєму приводі поганий сектор. Настав час замінити накопичувач на новий. Спосіб зробити це - дзеркальне відображення SSD на інший SSD за допомогою дзеркального відображення програмного забезпечення Windows .

На жаль, відома помилка в дзеркальному відображенні Windows NTFS запобігає завершенню дзеркала, як це зафіксовано в KB325615 :

Неможливо створити програмне дзеркало, якщо диск містить погані блоки

DMIO працює нижче файлової системи, і якщо він виявляє помилки вводу / виводу під час читання з сектору на вихідному диску або під час спроби запису даних на диск призначення, він припиняє дзеркальну операцію.

Очевидним рішенням було зменшення гучності ОС, щоб поганий сектор минув кінець обсягу. У Windows 7, коли ви намагаєтесь зменшити гучність, вона автоматично перемістить файли з шляху.

введіть тут опис зображення

Це гарна річ. У старі часи, якщо ви хотіли зменшити гучність, вам довелося скористатися інструментом дефрагментації, який підштовхує всі файли до передньої частини накопичувача; залишаючи слабкий простір в кінці.

На жаль, в даний час непереміщуваними файл у вигляді: $BadClus. Операція дефрагментації термоусадок відзначає незнімний файл у Журналі подій:

Аналіз зменшення обсягу був ініційований на ОС обсягу (C :). Цей запис у журналі журналу подій містить інформацію про останній непорушний файл, який може обмежити максимальну кількість байтів, що відновлюються.

Діагностичні деталі:

  • Останній незнімний файл: \ $ BadClus: $ Bad: $ DATA
  • Останній кластер файлу: 0xdc1ded
  • Потенційна ціль скорочення (адреса LCN): 0xa91bd9
  • Прапорцями файлів NTFS є: -S - D
  • Фаза скорочення: <аналіз>

Так:

  • Я не можу відобразити гучність, поки погані сектори не будуть видалені
  • скорочення гучності видалить погані сектори
  • я не можу зменшити гучність, поки не $BadClusбуде переміщено розріджений файл
  • я не можу рухатись, $BadClusпоки це фізично займає погані скупчення
  • $BadClus фізично займатимуть погані кластери, поки NTFS вважає, що кластер поганий

Як я можу відмітити кластер як поганий?

Для людей, що привидають диски, теж

Рішення моєї проблеми також буде працювати для найбільш поширеного випадку:

Хтось примарить диск, що містить погані сектори, до нового диска, і тоді хороший диск все ще має ті кластери, позначені як погані, навіть якщо вони хороші. Так трапляється, що у них є вирішення:

>chkdsk /B

За винятком того, що в моєму випадку не працює. (І навіть якщо це спрацювало в моєму випадку, я не запитую це питання.)

Бонусна балаканина

Звичайно, у Kingson SSD немає запасних секторів. Якби це сталося, це могло б прозоро переоформити запасний сектор для мене, і я б не мав NTFS намагатися переосмислити thinkgs.

SpinRite

Я спробував SpinRite'ing 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 циклів (тобто 40 000 зразків даних) я відмовився.

Клонування

Знову ж таки; давайте не плутати питання з прикладом. Питання полягає в тому, як відмітити кластери як погані в NTFS. Довго після того, як я відмовлюся і відкину SSD, питання все одно залишиться. Не плутайте мою проблему з питанням. Це не означає, що я можу спробувати реально вирішити свою проблему:

DriveImageXML досягає поганого сектора і перериває.

GParted не вдається завантажити. З'являється графічний екран завантаження, потім у вікні консолі прокручується текст, а за ним - чорний екран нічого

Clonezilla відмовляється клонувати мій SSD:

Цей диск містить невідповідні розділи GPT та MGR: / dev / sdb
Це заплутає Clonezill і може зробити збережене зображення марним або не вдасться клонувати диск.

Виправте проблему, а потім перезапустіть Clonezilla ще раз.
Програма припинена.

введіть тут опис зображення

Як визначити кластер як поганий у NTFS?


Ви хочете вирішити Windows або з Linux буде нормально?
Томас Веллер

2
@ThomasW. я не проти самозавантажувального інструменту; використовуючи будь-яку ОС, що їй подобається. Звичайно, я вважаю за краще інструмент GUI. я втомився від використання командних рядків у 1990 році. Я почав шукати, CreateFileщоб безпосередньо відкрити гучність; але зрозумів, що мені доведеться почати з нуля, розбираючи всі незадокументовані структури даних. Я відкрив том безпосередньо для редагування у своєму улюбленому шестигранному редакторі, але мав той самий нижній бік, що мав вручну проаналізувати шестигранні структури.
Ян Бойд

@ThomasW. чому навіть запитати, якщо ви не можете відповісти, як це виправити в Linux? якщо все, що ви хочете сказати, це те, що якщо виправити його з linux live cd добре, то ви не знаєте як, але він повинен додати тег linux.
барлоп

Якщо використання MBR для дискового розділу sgdisk -z / dev / sdb видалить GPT, а клонезила скопіює його. backup-utility.com/articles/…
cybernard

Відповіді:


7

Я більше нічого не відповім на заголовок. 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для запису)


Це слід вибрати як найкращий відповідь.
Хашим

1

У мене був жорсткий диск, який розвинув деякі погані кластери. Я замінив його відомим хорошим приводом. Процес відновлення відновив погані дані кластера, а також інші дані. Це було на комп’ютері Windows 7 Enterprise.

Моїм рішенням було запустити "chkdsk d: / b" (як було запропоновано раніше). / B повідомляє йому (лише для NTFS), щоб переглядати раніше позначені погані кластери. Принаймні в моєму випадку (і я підозрюю, що всі версії, які підтримують / b), він очищає список поганих кластерів безпосередньо перед початком сканування читання. Щойно ви побачите повідомлення "Видалення X кластерів з файлу поганих кластерів", ви зможете вбити процес chkdsk (оскільки це лише читання даних).

Примітка: існує потенціал, щоб chkdsk оновлював файл поганих кластерів в той момент, коли ви вбиваєте процес, якщо трапилося знайти поганий сектор на початку диска. Я ризикнув, і він успішно скинув файл поганих кластерів без необхідності завантажувати купу інших програм, які в будь-якому разі потребують повного chkdsk. YMMV.


Це фактично спрацювало. Після кроку 2 ви просто закриєте cmdвікно. Потім запустіть, chkdsk d: /fщо скаже CHKDSK discovered free space marked as allocated in the volume bitmap.і наступне Windows has made corrections to the file system..
Давор Йосипович

0

Перший найкращий шлях - це клонувати диск. Потім використовуйте chkdsk /Bновий робочий диск.

Тепер, що стосується відмітки справжнього поганого сектора, який є складним. Ви можете використовувати:

  • SpinRite , або
  • mhdd (увімкніть перестановку)

Будь-який продукт повинен перевпорядкувати поганий сектор, тоді CHKDSK / B повинен відмітити його.

Завантажити gparted або partedmagic ISO. Завантажте з нього і скоротіть перегородку.

Це буде працювати, оскільки Windows НЕ працює, тому це програмне забезпечення зменшує розділ незалежно від того. Тоді chkdsk /Bвпорається з рештою.

Якщо все це не вдасться, тепер вас чекає потворна дорога болю. Потрібно отримати редактор сектору та вручну відредагувати файлову систему. На жаль, це виходить за рамки моїх знань щодо NTFS. Для FAT або FAT32 це дуже просто.


Як SSD, немає запасних секторів для переобладнання. Ось чому SMART накопичувача продовжує відзначати а Pending Sector Countнуль і Reallocated Sector Countнуль.
Ян Бойд

У Кеті Коу є чудовий блог, який починає заглиблюватися в кишки NTFS. Але мої очі засклили, коли мені довелося розпочати обчислення компенсацій, логічних чисел кластерів, номерів віртуальних кластерів, а також те, що $ BadClus - це запасний файл, який насправді є розміром всього обсягу. я майже напевно знищив мій (функціонуючий) привід.
Ян Бойд

2
Насправді на SSD є багато запасних секторів. Насправді 120gb ssd, ймовірно, має до 8 Гб запасних секторів. Чому ваш диск не перезавантажувався автоматично, мені невідомо. Використовуйте gparted і скорочуйте перегородку.
cybernard

Цілком може бути, що це старий, вже припинений, тепер непідтримуваний, накопичувач Kingston 64 Гб. Або, можливо, це лише помилка в прошивці диска, де вони забули здійснити переоснащення сектору.
Ян Бойд

Крім того, клонування диска не вдається, коли вони стикаються з поганим сектором (принаймні, так це зробив DriveImageXML ).
Ян Бойд

0

Оскільки ви намагаєтеся віддзеркалити свій диск (і, здається, ви використовуєте Windows 7), існує інший підхід:

Використовуйте вбудований інструмент для створення резервної копії для відновлення на хорошому диску. Перейдіть до Панелі управління, Система та безпека, Резервне копіювання. Там створіть системне зображення, а також диск для відновлення системи.

Після цього ви можете замінити старий несправний диск на хороший, а потім відновити систему до стану, використовуючи диск відновлення системи та зроблену резервну копію.


0

пакет 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 слід виконати завдання.


0

Схоже, ваша мета - зменшити розмір розділу, а Windows не зменшить його через файл $ BadClus, який існує через погані кластери.

У мене є альтернативне рішення для вас, яке повинно зменшити диск без необхідності безпосередньо працювати з файлом $ BadClus. Використовуйте майстер розділів, щоб зменшити розділ. Майстер розділів простий у використанні, безкоштовний для некомерційного використання, може запускатися всередині Windows з графічним інтерфейсом, або з завантажувача компакт-дисків або USB, який працює з невеликим Linux, надає той самий графічний інтерфейс. Ця програма також може відновити стерті розділи та конвертувати між таблицями розділів MBR та GPT.

У мене виникли проблеми з Windows, які не скорочували розділ минулий певний момент, тоді я спробую Майстер розділів на тому самому розділі, який робить це без проблем. Я думаю, що майстер розділів готовий ігнорувати файл $ BadClus. Я використовую цю програму вже більше 8 років і нарешті придбав Pro версію, бо вони її заробили. Я знайшов цю програму як заміну для PQMagic, яку я придбав у 1996 році, яка була чудовою програмою розділення DOS для менших дисків.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.