Лош сектор

от Уикипедия, свободната енциклопедия

Лош сектор (bad sector) е сектор от твърдия диск или флашпамет, който не може да бъде използван поради повреда. При твърдите дискове, повредата може да е причинена от удар на глава за четене и запис в магнитна плоча, износване на магнитното покритие и др. При флашпаметта, причината може да е изгорял транзистор.

Повечето операционни системи разполагат с инструменти, които откриват и маркират тези сектори – CHKDSK или SCANDISK в Windows, badblocks в Unix-базирани системи. Когато бъдат маркирани по този начин, секторите вече не се използват, а данните в тях се загубват.

Секторът има големина 512 байта и тъй като това е най-малката единица информация, с която може да борави дискът, при грешен дори само един байт – целият сектор бива маркиран като лош.

Заместване на лошите сектори[редактиране | редактиране на кода]

Съвременните твърди дискове разполагат с вграден механизъм за справяне с ограничен брой лоши сектори. За целта разполагат с резерв от сектори, които при необходимост да заместят лошите сектори. Това заместване става автоматично и невидимо за останалата част от системата. Осъществява се с помощта на списъци, които съпоставят на лошите сектори такива от резерва. Създават се два списъка наречени P-списък (P-list от primary – първичен) и G-списък (G-list от grown – израснал).

P-списъкът се съставя при фабричното тестване на диска след самото му производство. В този случай, всеки лош сектор се замества със следващ, а списъкът се реализира хардуерно, така че операциите четене и запис не се забавят в сравнение с нормалните сектори.

G-списъкът пренасочва лоши сектори към резерва при експлоатация на диска. Когато, след неколкократни опити, даден сектор не може да бъде прочетен/записан или контролната сума не отговаря на съдържанието му, той бива автоматично маркиран от дисковото устройство и пренасочван чрез G-списъка. Тъй като диска е в експлоатация, резервният сектор в този случай не може да бъде следващия, защото на него може да има валидни данни. Използват се заделените резервни сектори в края на диска. При това се получава перманентно фрагментиране на диска, а и списъкът не може да се реализира хардуерно, затова операциите за четене и запис на тези сектори стават по-бавни. Обикновено лошите сектори се заместват при запис, а при четене само се маркират. Това дава възможност да се прочете лошия сектор, въпреки неправилната контролна сума, защото може част от него да съдържа валидни данни.

В операционните системи[редактиране | редактиране на кода]

Докато има резерв от сектори, възникването и заменянето на лошите сектори става съвсем невидимо за операционната система. Косвено, тези замени могат да бъдат усетени когато заместените сектори са съдържали критична информация, липсата на която довежда до забиване на програма или цялата система или повреждане на файл. В мултимедийните файлове, подобна грешка често може да остане незабелязана.

След изчерпването на резерва, дискът започва да генерира грешки при операции с лоши сектори за които няма резервни. Това вече се регистрира от операционната система и тя на свой ред започва софтуерно да маркира лошите сектори.

S.M.A.R.T.[редактиране | редактиране на кода]

Технологията SMART е създадена за следене на състоянието на твърдите дискове чрез съставяне на множество параметри. Един от тези параметри (номер 197 – Current Pending Sector Count) показва колко сектори са маркирани като лоши от диска.

Възстановяване на данни[редактиране | редактиране на кода]

Сектори които са повредени физически, не могат да бъдат възстановени. Ако причината е износване на магнитното покритие, в някои случаи, чрез статистически методи, е възможно част или дори цялата информация от сектора да бъде възстановена. Инструментите, които предлагат възстановяване на информацията, трябва първо да премахнат лошите сектори от G-списъка, така че да могат да бъдат прочетени. Това не е просто, тъй като трябва да се използват недокументирани команди към дисковото устройство, които при това са различни за отделните производители. След това, секторът може да се прочете многократно, а за битовете, които се прочетат с различни стойности, се взима тази стойност, която е прочетена най-често.

Източници[редактиране | редактиране на кода]