От плохого сектора до «поврежденного файла» - это для Linux /ext3, могу ли я сделать это для Windows /NTFS?

Когда SMART-проверка на диске сообщает о плохом секторе, важно иметь возможность идентифицировать файл с плохим сектором и восстановить его из резервных копий. Ниже я расскажу, как я сделал это для своего сервера Linux /ext3 VMWARE, но кто-нибудь знает, можно ли это сделать для Windows /NTFS?

Вот как я это сделал для Linux /ext3: я сначала попросил диск выполнить сканирование аппаратной поверхности (ниже уровня ОС, с цепями SMART на приводе):

vserver:~# smartctl -t long /dev/sdc

Я посмотрел на результаты:

vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       9
...
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%     27679         591363172

Итак, один сектор уже был отмечен как плохой, 9 были отмечены для замены из «промежуточного» сектора. Что еще более важно, первый адрес логического блока (LBA), который нечитабелен, был 591363172.

Я нашел раздел (и смещение внутри него), что это число «переведено» на:

vserver:~# fdisk -lu /dev/sdc
Device Boot      Start         End      Blocks   Id  System
/dev/sdc1           32   976773119   488386544   83  Linux

Раздел начался в секторе 32. Итак, плохой сектор был ...

vserver:~# bc -l
591363172-32+1
591363141

... при смещении 591363141 секторов с начала раздела.

Теперь я могу найти, какой файл был «hosed»:

vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size:               4096

Размер блока этой файловой системы EXT3 составлял 4096 байт, поэтому плохой сектор уничтожил этот блок в файловой системе:

vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000

И номер блока (73920392) соответствовал этому файлу:

vserver:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs:  open /dev/sdc1
testb 73920392
debugfs:  testb 73920392
Block 73920392 marked in use
debugfs:  icheck 73920392
Block           Inode number
73920392        18472967
debugfs:  ncheck 18472967
Inode           Pathname
18472967        /path/to/filewithbadsector

И я восстановил этот файл из своих резервных копий.

Есть ли эквивалентная процедура для Windows /NTFS?

17 голосов | спросил ttsiodras 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 14 Sep 2011 16:11:16 +0400 2011, 16:11:16

1 ответ


7

Я знаю, что у вас есть NTFS FS, и запускайте окна на этом FS. Я не знаю, можете ли вы «загрузить» Linux для работы с этим драйвером или нет.

Если вы можете загружать Linux с CD или USB, вы можете использовать ntfsprogs. посмотрите -

ntfscluster 

ntfsinfo 

Я считаю, что ntfscluster сообщает вам, какой файл хранит определенный кластер. Надеюсь, это поможет вам в правильном направлении.

ответил TechZilla 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 25 Sep 2011 06:25:59 +0400 2011, 06:25:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132