№ занятия: 8.
Тема: Организация файловой системы.
Занятие_8_Л6
Вопрос 1. Логическая организация файловой системы
Файл – это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные, а также собственно хранимые в этой области данные и набор атрибутов, позволяющих ОС манипулировать этими данными.
Долговременное и надежное хранение информации. Долговременность достигается за счет использования запоминающих устройств, не зависящих от питания, а высокая надежность определяется средствами защиты доступа к файлам и общей организацией программного кода ОС, при которой сбои аппаратуры чаще всего не разрушают информацию, хранящуюся в файлах.
Совместное использование информации. Файлы обеспечивают естественный и простой способ разделения информации между приложениями и пользователями за счет наличия понятного человеку символьного имени и постоянства хранимой информации и расположения файла. Пользователь должен иметь удобные средства работы с файлами, включая, каталоги и справочники, объединяющие файлы в группы, средства поиска файлов по признакам, набор команд для создания, модификации и удаления файлов. Файл может быть создан одним пользователем, а применяться совсем другим, при этом создатель файла или администратор могут определить права доступа к нему других пользователей. Эти цели реализуются в ОС файловой системой.
Файловая система (ФС) – это часть операционной системы, включающая:
- совокупность всех файлов на диске;
- наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;
- комплекс системных программных средств, реализующих различные операции с файлами, такие как создание, уничтожение, чтение, запись, именование и поиск файлов.
Файловая система позволяет программам обходиться набором достаточно простых операций для выполнения действий над некоторым абстрактным объектом, представляющим файл. При этом программистам не нужно иметь дело с деталями действительного расположения данных на диске, буферизацией данных и другими низкоуровневыми проблемами передачи данных с долговременного запоминающего устройства. Все эти функции ФС берет на себя.
Файловая система распределяет дисковую память, поддерживает именование файлов, отображает имена файлов на соответствующие адреса во внешней памяти, обеспечивает доступ к данным, поддерживает разделение, защиту и восстановление файлов.
Таким образом, файловая система играет роль промежуточного слоя, экранирующего все сложности физической организации долговременного хранилища данных и создающего для программ более простую логическую модель этого хранилища, а также предоставляя им набор удобных в использовании команд для манипулирования файлами.
Задачи, решаемые ФС, зависят от способа организации вычислительного процесса в целом.
Самый простой тип – это ФС в однопользовательских и однопрограммных ОС, к числу которых относится, например, MS-DOS.
Основные функции однопользовательских однопрограммных ФС нацелены на решение следующих задач:
- именование файлов;
- программный интерфейс для приложений;
- отображения логической модели файловой системы на физическую организацию хранилища данных;
- устойчивость файловой системы к сбоям питания, ошибкам аппаратных и программных средств.
Задачи ФС усложняются в операционных однопользовательских мультипрограммных ОС, которые, хотя и предназначены для работы одного пользователя, но дают ему возможность запускать одновременно несколько процессов. Одной из первых ОС этого типа стала OS/2. К перечисленным задачам добавляется новая задача совместного доступа к файлу из нескольких процессов. Файл в этом случае является разделяемым ресурсом, а значит, ФС должна решать весь комплекс проблем, связанных с такими ресурсами.
В частности, в однопользовательских мультипрограммных ФС должны быть предусмотрены следующие средства:
- блокировки файла и его частей;
- предотвращения гонок;
- исключения тупиков;
- согласования копий и т. п.
В многопользовательских системах ФС появляется еще одна задача – защита файлов одного пользователя от несанкционированного доступа другого пользователя.
Еще более сложными становятся функции ФС, которая работает в составе сетевой ОС.
Файловые системы поддерживают несколько функционально различных типов файлов, в число которых, как правило, входят:
- обычные файлы;
- файлы-каталоги;
- специальные файлы;
- именованные конвейеры;
- файлы, отображаемые на память.
Обычные файлы, или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем никак не ограничивают и не контролируют содержимое и структуру обычного файла.
Содержимое обычного файла определяется приложением, которое с ним работает.
Каталоги – это особый тип файлов, которые содержат системную справочную информацию о наборе файлов, сгруппированных пользователями по какому-либо неформальному признаку. Во многих операционных системах в каталог могут входить файлы любых типов, в том числе другие каталоги, за счет чего образуется древовидная структура, удобная для поиска. Каталоги устанавливают соответствие между именами файлов и их характеристиками, используемыми файловой системой для управления файлами. В число таких характеристик входит, в частности, информация (или указатель на другую структуру, содержащую эти данные) о типе файла и расположении его на диске, правах доступа к файлу, датах его создания и модификации. Во всех остальных отношениях каталоги рассматриваются файловой системой как обычные файлы.
Специальные файлы – это фиктивные файлы, ассоциированные с устройствами ввода-вывода, которые используются для унификации механизма доступа к файлам и внешним устройствам. Специальные файлы позволяют пользователю выполнять операции ввода-вывода посредством обычных команд записи в файл или чтения из файла. Эти команды обрабатываются сначала программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются операционной системой в команды управления соответствующим устройством.
Современные файловые системы поддерживают и другие типы файлов, такие как символьные связи, именованные конвейеры, отображаемые на память файлы. Они будут рассмотрены позже.
Иерархическая структура файловой системы. Большинство файловых систем имеет иерархическую структуру, в которой уровни создаются за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня, при этом частным случаем иерархической структуры является одноуровневая организация, когда все файлы входят в один каталог (рис. 1 а).
Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть, если файл может входить сразу в несколько каталогов.
Рис. 1. Иерархия файловых систем.
Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в Unix – сетевую. В древовидной структуре каждый файл является листом. Каталог самого верхнего уровня называется корневым каталогом, или корнем (root). При такой организации пользователь освобожден от необходимости помнить имена всех файлов, ему достаточно примерно представлять, к какой группе может быть отнесен тот или иной файл, чтобы путем последовательного просмотра каталогов найти его. Иерархическая структура удобна для многопользовательской работы: каждый пользователь со своими файлами локализуется в своем каталоге или поддереве каталогов, и вместе с тем все файлы в системе логически связаны.
Имена файлов. Все типы файлов имеют символьные имена.
В иерархически организованных файловых системах обычно используются следующие типы имен файлов:
-
- простое (короткое) символьное имя;
- полное (составное) символьное имя;
- относительное символьное имя;
- уникальное имя (числовой идентификатор).
Простое, или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так, в известной файловой системе FAT MS-DOS длина имен ограничивалась схемой 8.3 (8 символов – собственно имя, 3 символа – расширение имени), а в файловой системе s5, поддерживаемой многими версиями ОС Unix, простое символьное имя не могло содержать более 14 символов.
Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют давать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в том или ином файле. Поэтому современные файловые системы, а также усовершенствованные варианты уже существовавших файловых систем, как правило, поддерживают длинные простые символьные имена файлов. Например, в файловых системах NTFS и FAT32, входящих в состав ОС семейства Windows, имя файла может содержать до 255 символов.
Примеры простых имен файлов и каталогов:
-
- quest_ul.doc;
- task-entran.exe;
- приложение к CD 254L на русском языке-doc;
- installable filesystem manager.doc.
В иерархических файловых системах разным файлам разрешено иметь одинаковые простые символьные имена при условии, что они принадлежат разным каталогам. То есть здесь работает схема много файлов – одно простое имя. Для однозначной идентификации файла в таких системах используется так называемое полное имя.
Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла.
Таким образом, полное имя является составным именем, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используется прямой или обратный слэш, при этом принято не указывать имя корневого каталога. На рис. 1 б два файла имеют простое имя Main.exe, однако их составные имена /depart/Maiп.ехе и /user/Anna/Main.exe различаются.
В древовидной файловой системе между файлом и его полным именем имеется взаимно однозначное соответствие один файл – одно полное имя. В файловых системах имеющих сетевую структуру, файл может входить в несколько каталогов, а значит, иметь несколько полных имен, здесь справедливо соответствие один файл – много полных имен. В обоих случаях файл однозначно идентифицируется полным именем. Файл может быть идентифицирован также относительным именем.
Относительное имя файла определяется через понятие «текущий каталог». Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При применении относительных имен пользователь идентифицирует файл цепочкой имен каталогов, через которые проходят маршрут от текущего каталога до данного файла. Например, если текущим каталогом является каталог/user, то относительное имя файла /user/Anna/Main.ехе выглядит следующим образом: Anna/Main.exe.
В некоторых операционных системах разрешено присваивать одному и тому же файлу несколько простых имен, которые можно интерпретировать как псевдонимы. В этом случае, так же как в системе с сетевой структурой, устанавливается соответствие один файл – много полных имен, так как каждому простому имени файла соответствует, по крайней мере, одно полное имя.
Символьные имена удобны для пользователя, но не для операционной системы. Для своих внутренних целей ОС присваивает файлу уникальное имя, так что справедливо соотношение один файл – одно уникальное имя. Уникальное имя существует наряду с одним или несколькими символьными именами, присваиваемыми файлу пользователями или приложениями. Уникальное имя представляет собой числовой идентификатор и предназначено только для использования операционной системой. Примером такого уникального имени файла является номер индексного дескриптора в системе Unix.
Монтирование. В общем случае вычислительная система может иметь несколько дисковых устройств. Даже типичный персональный компьютер обычно имеет один накопитель на жестком диске, один накопитель на гибких дисках и накопитель для компакт-дисков. Мощные же компьютеры, как правило, оснащены большим количеством дисковых накопителей, на которые устанавливаются пакеты дисков. Более того, даже одно физическое устройство с помощью средств операционной системы может быть представлено в виде нескольких логических устройств, в частности, путем разбиения дискового пространства на разделы.
Возникает вопрос, каким образом организовать хранение файлов в системе, имеющей несколько устройств внешней памяти? Первое решение состоит в том, что на каждом из устройств размещается автономная файловая система, то есть файлы, находящиеся на этом устройстве; описываются деревом каталогов, никак не связанным с деревьями каталогов на других устройствах. В таком случае для однозначной идентификации файла пользователь наряду с составным символьным именем файла должен указывать идентификатор логического устройства. Примером такого автономного существования файловых систем является операционная система MS-DOS, в которой полное имя файла включает буквенный идентификатор логического диска. Так, при обращении к файлу, расположенному на диске А, пользователь должен указать имя этого диска: A:privatletteruniletl.doc1.
Другим вариантом является такая организация хранения файлов, при которой пользователю предоставляется возможность объединять файловые системы, находящиеся на разных устройствах, в единую файловую систему, описываемую единым деревом каталогов. Такая операция называется монтированием.
Рассмотрим, как осуществляется эта операция на примере ОС Unix.
Среди всех имеющихся в системе логических дисковых устройств операционная система выделяет одно устройство, называемое системным. Пусть имеются две файловые системы, расположенные на разных логических дисках, причем один из дисков является системным (рис. 2).
Знак «/» обозначает корень файловой системы. Это главный каталог в системе Linux. По сути, это и есть файловая система Linux. Здесь нет дисков или чего-то подобного, как в Windows. Вместо этого, адреса всех файлов начинаются с корня, а дополнительные разделы, флешки или оптические диски подключаются в папки корневого каталога.
Только пользователь root имеет право читать и изменять файлы в этом каталоге.
Рис. 2. Файловая система до монтирования.
Файловая система, расположенная на системном диске, назначается корневой. Для связи иерархий файлов в корневой файловой системе выбирается некоторый существующий каталог, в данном примере – каталог man. После выполнения монтирования выбранный каталог man становится корневым каталогом второй файловой системы. Через этот каталог монтируемая файловая система подсоединяется как поддерево к общему дереву (рис. 3).
Рис. 3. Общая файловая система после монтирования.
После монтирования общей файловой системы для пользователя нет логической разницы между корневой и смонтированной файловыми системами, в частности, именование файлов производится так же, как если бы система с самого начала была единой.
Атрибуты файлов. Понятие «файл» включает не только хранимые им данные и имя, но и атрибуты. Атрибуты – это информация, описывающая свойства файла. Примеры возможных атрибутов файла:
- тип файла (обычный файл, каталог, специальный файл и т. п.);
- владелец файла;
- создатель файла;
- пароль для доступа к файлу;
- информация о разрешенных операциях доступа к файлу;
- времена создания, последнего доступа и последнего изменения;
- текущий размер файла;
- максимальный размер файла;
- признак «только для чтения»;
- признак «скрытый файл»;
- признак «системный файл»;
- признак «архивный файл»;
- признак «двоичный/символьный»;
- признак «временный» (удалить после завершения процесса);
- признак блокировки;
- длина записи в файле;
- указатель на ключевое поле в записи;
- длина ключа.
Набор атрибутов файла определяется спецификой файловой системы: в файловых системах разного типа для характеристики файлов могут использоваться разные наборы атрибутов.
В однопользовательской ОС в наборе атрибутов будут отсутствовать атрибуты, имеющие отношение к пользователям и защите, такие как владелец файла, создатель файла, пароль для доступа к файлу, информация о разрешенном доступе к файлу.
Пользователь может получать доступ к атрибутам с помощью средств, предоставленных для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять – только некоторые.
Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается.
Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это было сделано в файловой системе MS-DOS.
На рис. 4а представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R – только для чтения, А – архивный, Н – скрытый, S – системный.
Рис. 4. Структура каталогов:
а – структура записи каталога MS-DOS;
б – структура записи каталога ОС Unix.
Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы.
Такой подход реализован, например, в файловой системе ufs ОС Unix. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла – так называется в ufs таблица, в которой сосредоточены значения атрибутов файла (рис. 2.4 б).
В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тотже номер индексного дескриптора.
Логическая организация файла. В общем случае данные, содержащиеся в файле, имеют некую логическую структуру. Эта структура является базой при разработке программы, предназначенной для обработки этих данных. Признаками, отделяющими один структурный элемент от другого, могут служить определенные кодовые последовательности или просто известные программе значения смещений этих структурных элементов относительно начала файла. Поддержание структуры данных может быть либо целиком возложено на приложение, либо в той или иной степени эту работу может взять на себя файловая система.
В первом случае, когда все действия, связанные со структуризацией и интерпретацией содержимого файла, целиком относятся к ведению приложения, файл представляется ФС неструктурированной последовательностью данных. Приложение формулирует запросы к файловой системе на ввод-вывод, используя общие для всех приложений системные средства, например, указывая смещение от начала файла и количество байтов, которые необходимо считать или записать. Поступивший к приложению поток байтов интерпретируется в соответствии с заложенной в программе логикой. Например, компилятор генерирует, а редактор связей воспринимает вполне определенный формат объектного модуля программы. При этом формат файла, в котором хранится объектный модуль, известен только этим программам. Подчеркнем, что интерпретация данных никак не связана с действительным способом их хранения в файловой системе.
Модель файла, в соответствии с которой содержимое файла представляется неструктурированной последовательностью (потоком) байтов, стала популярной вместе с ОС Unix, а теперь она широко используется и в большинстве современных ОС, в том числе во всех версиях ОС Windows и NetWare. Неструктурированная модель файла позволяет легко организовать разделение файла между несколькими приложениями: разные приложения могут по-своему структурировать и интерпретировать данные, содержащиеся в файле. В этом случае поддержание структуры файла поручается файловой системе. Файловая система видит файл как упорядоченную последовательность логических записей. Приложение может обращаться к ФС с запросами на ввод-вывод на уровне записей, например, «считать запись 25 из файла FILE.DOC».
Файловая система должна обладать информацией о структуре файла, достаточной для того, чтобы выделить любую запись. ФС предоставляет приложению доступ к записи, а вся дальнейшая обработка данных, содержащихся в этой записи, выполняется приложением. Развитием этого подхода стали системы управления базами данных (СУБД), которые поддерживают не только сложную структуру данных, но и взаимосвязи между ними.
Логическая запись является наименьшим элементом данных, которым может оперировать программист при организации обмена с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система должна обеспечивать программисту доступ к отдельной логической записи. Файловая система может использовать два способа доступа к логическим записям: читать или записывать логические записи последовательно (последовательный доступ) или позиционировать файл на запись с указанным номером (прямой доступ).
Очевидно, что ОС не может поддерживать все возможные способы структурирования данных в файле, поэтому в тех ОС, в которых вообще поддерживается логическая структуризация файлов, поддержка реализована для небольшого числа широко распространенных схем логической организации файла.
К числу таких способов структуризации относится представление данных в виде записей фиксированной длины (рис.5а). В этом случае доступ к n-й записи осуществляется либо путем последовательного чтения (n-1) предшествующих записей, либо прямо по адресу, вычисленному по ее порядковому номеру.
Например, если L – длина записи, то начальный адрес n-й записи равен
Lхn. Заметим, что при такой логической организации размер записи фиксирован
в пределах файла, а записи в различных файлах, принадлежащих одной и той же файловой системе, могут иметь различный размер.
Другой способ структуризации состоит в представлении данных в виде последовательности записей переменного размера.
Если расположить значения длин записей так, как это показано на рис. 5б, то для поиска нужной записи система должна последовательно считать все предшествующие записи. Вычислить адрес нужной записи по ее номеру при такой логической организации файла невозможно, а следовательно, не может быть применен более эффективный метод прямого доступа. Файлы, доступ к записям которых осуществляется последовательно, по номерам позиций, называются неиндексированными, или последовательными, файлами.
Другим типом файлов являются индексированные файлы; они допускают более быстрый прямой доступ к отдельной логической записи.
В индексированном файле записи имеют одно или более ключевых (индексных) полей и могут адресоваться путем указания значений этих полей. Для быстрого поиска данных в индексированном файле предусматривается специальная индексная таблица, в которой значениям ключевых полей ставится в соответствие адрес внешней памяти. Этот адрес может указывать либо непосредственно на искомую запись, либо на некоторую область внешней памяти, занимаемую несколькими записями, в число которых входит искомая запись.
Рис. 5. Способы логической организации файлов.
В последнем случае говорят, что файл имеет индексно-последовательную организацию, так как поиск включает два этапа: прямой доступ по индексу к указанной облаете диска, а затем последовательный просмотр записей в указанной области. Ведение индексных таблиц берет на себя файловая система. Понятно, что записи в индексированных файлах могут иметь произвольную длину.
Все сказанное в большей степени относится к обычным файлам, которые могут быть как структурированными, так и неструктурированными. Что же касается других типов файлов, таких как каталоги или файлы типа «символьная связь», то они обладают вполне определенной специфической для своего типа структурой, которая известна и «понятна» файловой системе.
Вопрос 2. Физическая организация файловой системы.
Представление пользователя о файловой системе, как об иерархически организованном множестве информационных объектов, имеет мало общего с порядком хранения файлов на диске. Файл, имеющий образ цельного, непрерывающегося набора байтов, на самом деле очень часто разбросан «кусочками» по всему диску, причем это разбиение никак не связано с логической структурой файла, например, его отдельная логическая запись может быть расположена в несмежных секторах диска. Логически объединенные файлы из одного каталога совсем не обязаны соседствовать на диске.
Принципы размещения файлов, каталогов и системной информации на реальном устройстве описываются физической организацией файловой системы. Очевидно, что разные файловые системы имеют разную физическую организацию.
Диски, разделы, секторы, кластеры. Основным типом устройства, которое используется в современных вычислительных системах для хранения файлов, является дисковый накопитель. Дисковые накопители предназначены для считывания и записи данных на жесткие и гибкие магнитные диски.
Жесткий диск состоит из одной или нескольких стеклянных или металлических пластин, каждая из которых покрыта с одной или двух сторон магнитным материалом. Таким образом, диск в общем случае состоит из пакета пластин (рис. 6).

Рис. 6.Схема устройства жесткого диска.
Головка может позиционироваться над заданной дорожкой. Головки перемещаются над поверхностью диска дискретными шагами, каждый шаг соответствует сдвигу на одну дорожку. Запись на диск осуществляется благодаря способности головки изменять магнитные свойства дорожки. В некоторых дисках вдоль каждой поверхности перемещается одна головка, а в других – имеется по головке на каждую дорожку.
В первом случае для поиска информации головка должна перемещаться по радиусу диска. Обычно все головки закреплены на едином перемещающем механизме и двигаются синхронно. Поэтому, когда головка фиксируется на заданной дорожке одной поверхности, все остальные головки останавливаются над дорожками с такими же номерами. В тех же случаях, когда на каждой дорожке имеется отдельная головка, никакого перемещения головок с одной дорожки на другую не требуется, за счет этого экономится время, затрачиваемое на поиск данных.
Совокупность дорожек одного радиуса на всех поверхностях всех пластин пакета называется цилиндром (cylinder). Каждая дорожка разбивается на фрагменты, называемые секторами (sectors), или блоками (blocks), так что все дорожки имеют равное число секторов, в которые максимально можно записать одно и то же число байтов. Сектор имеет фиксированный для конкретной системы размер, выражающийся степенью двойки. Чаще всего размер сектора составляет 512 байт. Учитывая, что дорожки разного радиуса имеют одинаковое число секторов, плотность записи становится тем выше, чем ближе дорожка к центру.
Для того чтобы контроллер мог найти на диске нужный сектор, необходимо задать ему все составляющие адреса сектора:
- номер цилиндра;
- номер поверхности;
- номер сектора на дорожке.
Сектор – наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью. Это означает, что даже в тех случаях, когда программе требуется прочитать с диска только один байт, в действительности будет считан целый сектор и передан системе для выборки нужных данных.
Так как прикладная программа оперирует не секторами, а байтами, к тому же заданный объем требуемых данных не обязательно оказывается кратным размеру сектора, то типичный запрос включает чтение нескольких секторов, содержащих нужную информацию, и одного или двух секторов, содержащих наряду с требуемыми избыточные данные (рис. 7).
Операционная система при работе с диском использует собственную единицу дискового пространства, называемую кластером (cluster). При создании файла ОС запрашивает для него область на диске, размер которой кратен принятому в этой операционной системе размеру кластера.
Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.
Кластер – наименьшая единица дискового пространства, которой оперирует файловая система при распределении памяти на диске.
Операционная система при работе с диском использует собственную единицу дискового пространства, называемую кластером (cluster). При создании файла ОС запрашивает для него область на диске, размер которой кратен принятому в этой операционной системе размеру кластера.
Рис. 7. Считывание избыточных данных при обмене с диском.
Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.
Кластер – наименьшая единица дискового пространства, которой оперирует файловая система при распределении памяти на диске.
Иногда кластер называют блоком, что может привести к терминологической путанице. Вообще, терминология, используемая при описании форматов дисков и файловых систем, зависит от аппаратной платформы (RISC, Wintel и т. п.) и операционной системы. Это нужно учитывать и трактовать термины в зависимости от контекста.
Дорожки и секторы создаются в результате выполнения процедуры физического, или низкоуровневого, форматирования диска, предшествующей использованию диска. Для определения границ блоков на диск записывается идентификационная информация. Низкоуровневый формат диска не зависит от типа операционной системы, которая этот диск будет использовать.
Разметку диска под конкретный тип файловой системы выполняют процедуры высокоуровневого, или логического, форматирования. При высокоуровневом форматировании определяется размер кластера, и на диск записывается информация, необходимая для работы файловой системы, в том числе: информация о доступном и неиспользуемом пространстве, о границах областей, отведенных под файлы и каталоги, о поврежденных областях. Кроме того, на диск записывается загрузчик операционной системы – небольшая программа, которая начинает процесс инициализации операционной системы после включения питания или рестарта компьютера.
Прежде чем форматировать диск под определенную файловую систему, он может быть разбит на разделы. Раздел – это непрерывная часть физического диска, которую операционная система представляет пользователю как логическое устройство.
В представлении прикладного программиста логическое устройство функционирует так, как если бы это был отдельный физический диск.
Именно с логическими устройствами работает пользователь, обращаясь к ним по символьным именам, например А, В, С, SYS и т. п. Операционные системы разного типа используют единое для всех них представление о разделах, но создают на его основе логические устройства, специфические для каждого типа ОС.
На каждом логическом устройстве может создаваться только одна файловая система.
В частном случае, когда все дисковое пространство охватывается одним разделом, логическое устройство представляет физическое устройство в целом. Если диск разбит на несколько разделов, то для каждого из этих разделов может быть создано отдельное логическое устройство. Логическое устройство может быть создано и на базе нескольких разделов, причем эти разделы не обязательно должны принадлежать одному физическому устройству. Объединение нескольких разделов в единое логическое устройство может выполняться разными способами и преследовать разные цели, основные из которых: увеличение общего объема логического раздела, повышение производительности и отказоустойчивости.
Примерами организации совместной работы нескольких дисковых разделов являются так называемые RAID-массивы, подробнее о которых рассказано далее.
На разных логических устройствах одного и того же физического диска могут располагаться файловые системы как одного и того же, так и разных типов. На рис. 8 показан пример диска, разбитого на три раздела, в которых установлено две файловых системы NTFS (разделы С и Е) и одна файловая система FAT (раздел D).
Операционная система может поддерживать разные статусы разделов, особым образом отмечая разделы, которые могут быть использованы для загрузки модулей операционной системы, и разделы, в которых можно устанавливать только приложения и хранить файлы данных. Один из разделов диска помечается как загружаемый, или активный. Именно из этого раздела считывается загрузчик операционной системы.
Рис. 8. Разбиение диска на разделы.
Физическая организация и адресация файла. Важным компонентом физической организации файловой системы является физическая организация
файла, то есть способ размещения файла на диске. Основными критериями эффективности физической организации файлов являются:
- скорость доступа к данным;
- объем адресной информации файла;
- степень фрагментированности дискового пространства;
- максимально возможный размер файла.
Непрерывное размещение – простейший вариант физической организации (рис. 9а), при котором файлу предоставляется последовательность кластеров диска, образующих непрерывный участок дисковой памяти.
Основным достоинством этого метода является высокая скорость доступа, так как затраты на поиск и считывание кластеров файла минимальны. Также минимален объем адресной информации – достаточно хранить только номер первого кластера и объем файла. Данная физическая организация максимально возможный размер файла не ограничивает.
Однако этот вариант имеет существенные недостатки, которые затрудняют его применимость на практике, несмотря на всю его логическую простоту. При более пристальном рассмотрении оказывается, что реализовать эту схему не так уж просто. Действительно, какого размера должна быть непрерывная область, выделяемая файлу, если файл при каждой модификации может увеличить свой размер?
Еще более серьезной проблемой является фрагментация. Спустя некоторое время после создания файловой системы, в результате выполнения многочисленных операций создания и удаления файлов пространство диска неминуемо превращается в «лоскутное одеяло», включающее большое число свободных областей небольшого размера.
Рис. 9 Физическая организация файла: непрерывное размещение (а); связанный список кластеров (б); связанный список индексов (в); перечень номеров кластеров (г).
Зачастую при фрагментации суммарный объем свободной памяти может быть очень большим, а выбрать место для размещения файла целиком – невозможно. Поэтому на практике используются методы, в которых файл размещается в нескольких в общем случае несмежных областях диска.
Следующий способ физической организации файла – размещение в виде связанного списка кластеров дисковой памяти (рис. 9б). При таком способе в начале каждого кластера содержится указатель на следующий кластер. В этом случае адресная информация минимальна: расположение файла может быть задано одним числом – номером первого кластера. В отличие от предыдущего способа, каждый кластер может быть присоединен к цепочке кластеров какого-либо файла, следовательно, фрагментация на уровне кластеров отсутствует.
Файл может изменять свой размер во время своего существования, наращивая число кластеров. Недостатком является сложность реализации доступа к произвольно заданному месту файла – чтобы прочитать пятый по порядку кластер файла, необходимо последовательно прочитать четыре первых кластера, прослеживая цепочку номеров кластеров.
Популярным способом, применяемым, например, в файловой системе FAT, является размещение в виде связанного списка индексов (рис. 9в). Этот способ является некоторой модификацией предыдущего. Файлу также выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связывается некоторый элемент – индекс. Когда память свободна, все индексы имеют нулевое значение. Если некоторый кластер N назначен некоторому файлу, то индекс этого кластера становится равным либо номеру М следующего кластера данного файла, либо принимает специальное значение, являющееся признаком того, что этот кластер является для файла последним. Индекс же предыдущего кластера файла принимает значение N, указывая на вновь назначенный кластер.
При такой физической организации сохраняются все достоинства предыдущего способа: минимальность адресной информации, отсутствие фрагментации, отсутствие проблем при изменении размера. Кроме того, данный способ обладает дополнительными преимуществами. Во-первых, для доступа к произвольному кластеру файла не требуется последовательно считывать его кластеры, достаточно прочитать только секторы диска, содержащие таблицу индексов, отсчитать нужное количество кластеров файла по цепочке и определить номер нужного кластера. Во-вторых, данные файла заполняют кластер целиком, а значит, имеют объем, равный степени двойки.
Еще один способ задания физического расположения файла заключается в простом перечислении номеров кластеров, занимаемых этим файлом (рис. 9 г). Этот набор номеров и служит адресом файла. Недостаток данного способа очевиден: длина адреса зависит от размера файла и для большого файла может составить значительную величину. Достоинством же является высокая скорость доступа к произвольному кластеру файла, так как здесь применяется прямая адресация, которая исключает просмотр цепочки указателей при поиске адреса произвольного кластера файла. Фрагментация на уровне кластеров в этом способе также отсутствует.
Последний подход с некоторыми модификациями используется в традиционных файловых системах S5 и ufs ОС Unix. В файловой системе ufs для сокращения объема адресной информации используется комбинированная схема адресации кластеров, позволяющая дополнять прямой способ адресации косвенным. Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт (рис. 10).
Рис. 10. Схема адресации файловой системы ufs.
Если размер файла меньше или равен 12 кластерам, то номера этих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если кластер имеет размер 8 Кбайт (максимальный размер кластера, поддерживаемого в ufs), то таким образом можно адресовать файл размером до 8192 х 12 = 98304 байт.
Если размер файла превышает 12 кластеров, то следующее 13-е поле содержит не номер следующего кластера, а номер кластера, в котором могут быть расположены номера следующих кластеров файла.
Таким образом, 13-й элемент адреса используется для косвенной адресаций. При размере в 8 Кбайт кластер, на который указывает 13-й элемент, может содержать 2048 номеров следующих кластеров данных файла, и размер файла может возрасти до 8192 х (12 + 2048) = 16 875 520 байт.
Если размер файла превышает 12 + 2048 = 2060 кластеров, то используется 14-е поле. В нем находится номер кластера, содержащего 2048 номеров кластеров, каждый из которых хранит 2048 номеров кластеров данных файла. Здесь применяется уже двойная косвенная адресация.
С ее помощью можно адресовать кластеры в файлах, содержащих до 8192 х (12 + 2048 + 20482) − 3,43766 х 1010 байт.
И наконец, если файл включает более 12 + 2048 + 20482 – 4 196 364 кластеров, то используется последнее 15-е поле для тройной косвенной адресации, что позволяет задать адрес файла, имеющего следующий максимальный размер:
8192 х (12 + 2048 + 20482 + 20483) − 7,0403 х 1013 байт.
Та к им обр а зом , файловая система ufs при размере кластера в 8 Кбайт поддерживает файлы, состоящие максимум из 70 триллионов байтов данных, хранящихся в 8 миллиардах кластеров. Как видно на рис. 2.10, для задания адресной информации о максимально большом файле требуется 15 элементов по 4 байта (60 байт) в центральной части адреса плюс 1 + (1 + 2048) + (1 + 2048
+ + 20482) – 4 198 403 кластера в косвенной части адреса. Несмотря на огромную величину, это число составляет всего около 0,05 % от объема адресуемых данных.
Файловая система ufs поддерживает дисковые кластеры и меньших размеров, при этом максимальный размер файла будет другим. Используемая в более ранних версиях Unix, файловая система S5 имеет аналогичную схему адресации, но она рассчитана на файлы меньших размеров, поэтому в ней применяется 13 адресных элементов вместо 15.
Метод перечисления адресов кластеров файла характерен и для файловой системы NTFS, используемой в ОС семейства Windows NT. Здесь он дополнен достаточно естественным приемом, сокращающим объем адресной информации: адресуются не кластеры файла, а непрерывные области, состоящие из смежных кластеров диска.
Каждая такая область, называемая отрезком (run), или экстентом (extent), описывается с помощью двух чисел: начального номера кластера и количества кластеров в отрезке. Так как для сокращения времени операции обмена ОС старается разместить файл в последовательных кластерах диска, то в большинстве случаев количество последовательных областей файла будет меньше количества кластеров файла.
Для того чтобы корректно принимать решение о выделении файлу набора кластеров, файловая система должна отслеживать информацию о состоянии всех кластеров диска: свободен/занят. Эта информация может храниться как отдельно от адресной информации файлов, так и вместе с ней.
Восстановление данных при логических ошибках диска
Восстановление данных при логических ошибках диска
Под логическими ошибками диска понимается повреждение таблицы разделов и/или файловых систем. Такие неприятности встречаются довольно часто и в «чистом виде», и как прямое следствие аппаратных проблем. Если на диске пропали разделы или файловая система, то можно использовать два принципиальных пути:
• восстановить (исправить, создать заново) поврежденную структуру. Путь логичный, но рискованный! Именно этим занимаются встроенные средства проверки и исправления ошибок диска операционной системы Windows и различные «диск-доктора». Как правило, то, что в файловой системе ошибочно или недоступно, они либо игнорируют, либо выбрасывают. Логическая структура в целом обычно восстанавливается, но за счет уничтожения части данных;
• ничего не исправляя, найти на диске файлы, основываясь на их формате, и скопировать их на другой носитель. Этот неразрушающий способ и является единственно правильным.
Идея неразрушающего восстановления данных совершенно не очевидна для большинства обычных пользователей. Они идут по прямому пути: есть ошибка – надо исправлять! После исправления ошибок данные восстановить гораздо труднее, поэтому существует железное правило: «Если на диске есть важные данные, категорически запрещается запускать программы исправления! Исправлять ошибки файловой системы можно лишь после успешного копирования данных средствами неразрушающего восстановления».
Средства такого восстановления широко известны. Это программы EasyRecovery, R-Studio и многие другие. Явным лидером по эффективности при восстановлении данных с самых распространенных файловых систем (FAT32, NTFS, EXT2, EXT3, UFS) является пакет R-Studio. Эта программа не только проста в использовании, но и выдает отличные результаты (даже исходную структуру папок). Когда файловая система повреждена серьезно, лучше использовать программу EasyRecovery в режиме RawRecovery. В результате такого восстановления образуется набор файлов без имен, рассортированных по типам.
Данный текст является ознакомительным фрагментом.
Читайте также
Целостность и восстановление данных
Целостность и восстановление данных
Целостность данных, хранящихся в базе крайне важна. Между тем, при одновременном чтении и изменении данных многими пользователями существует вероятность их разрушения. База данных AS/400 предоставляет надежные средства обеспечения
12.3. Восстановление системы с помощью образа диска
12.3. Восстановление системы с помощью образа диска
Образ диска – это файл, содержащий в себе всю все содержимое жесткого диска или некоторых его разделов. С помощью заранее созданного образа диска вы можете вернуть поврежденную систему в рабочее всего состояние за
Восстановление данных
Восстановление данных
До сих пор мы рассматривали вопросы создания резервных копий. Однако, для того, чтобы обеспечить надежную работу компьютеров в сети, необходимо также организовать восстановление данных. Действия по восстановлению данных можно условно разделить на
Образ диска, или быстрое восстановление работоспособности компьютера
Образ диска, или быстрое восстановление работоспособности компьютера
После приобретения новенького компьютера вместе с установленной на нем последней версией Windows вам не терпится сразу же выйти в Интернет или запустить на нем какую-нибудь крутую игрушку. Вы нисколечко
Восстановление поврежденной базы данных
Восстановление поврежденной базы данных
Предположим, что наша база данных содержит ошибки и нам необходимо, во-первых, проверить наличие этих ошибок, во-вторых, попытаться исправить эти ошибки. Порядок действий при этом рекомендуется соблюдать следующий.Останавливаем
Восстановление и резервирование данных
Восстановление и резервирование данных
DVD и CD невечны. Естественное старение, неосторожное обращение, в результате которого появляются царапины, – и некоторые сектора диска могут не читаться, соответственно, скопировать файл уже невозможно. Самый простой способ
2.2.7.4 Архивирование и восстановление данных
2.2.7.4 Архивирование и восстановление данных
INFORMIX-OnLine DS позволяет создавать архивные копии данных, а в дальнейшем фиксировать те изменения, которые произошли на сервере с момента создания архива. Изменения сохраняются в файлах журнала транзакций. Архивные ленты и ленты с
9.5. Восстановление данных с дисков
9.5. Восстановление данных с дисков
Часто бывает так, что по неосторожности пользователь удалил с диска важную информацию, предварительно не сохранив ее в другом месте. В этом разделе мы рассмотрим, как можно восстановить данные с помощью новой программы Nero RescueAgent, которая
Восстановление данных
Восстановление данных
Из-за различных ошибок в программном обеспечении, вирусов, а также просто неумелых действий неопытных пользователей можно потерять самое главное — информацию. Однако сразу паниковать в таком случае не стоит. Чаще всего восстановить утраченные
2.2. Архивирование и восстановление данных
2.2. Архивирование и восстановление данных
Давайте еще раз рассмотрим некоторые апплеты из категории Система и безопасность. С большинством апплетов вы разберетесь сами, поэтому сейчас рассмотрим только те, которые действительно заслуживают внимания и дополнительных
5. Восстановление ОС и данных
5. Восстановление ОС и данных
Настраиваем наблюдение за дисками
Операционная система Windows ХР не зря считается одной из самых «устойчивых» систем. Наличие разнообразных механизмов защиты и наблюдения позволяет максимально защитить ее от различных непредвиденных
Восстановление данных, потерянных из-за логических неисправностей
Восстановление данных, потерянных из-за логических неисправностей
Логические неисправности – результат повреждения записей файловой системы. Общий принцип и тактика действий в таких ситуациях – снятие побайтного образа носителя и извлечение из него отдельных файлов.
Программное восстановление данных
Программное восстановление данных
Особенность чтения/восстановления лазерных дисков в том, что многократное чтение одних и тех же участков иногда приводит к успеху. Если участок винчестера или ячейка flash-накопителя, которые не удается считать с первой попытки,
Восстановление потерянных данных
Восстановление потерянных данных
Удалили файл и очистили корзину? Не расстраивайтесь. Еще можно попытаться восстановить удаленный файл. При удалении файла он удаляется не полностью – удаляется только запись в таблице размещения файлов, но копия этой записи хранится в
4.3. ОБЩАЯ КЛАССИФИКАЦИЯ ЛОГИЧЕСКИХ СТРУКТУР ДАННЫХ
4.3. ОБЩАЯ КЛАССИФИКАЦИЯ ЛОГИЧЕСКИХ СТРУКТУР ДАННЫХ
Упорядоченность элементов структуры данных является важным ее признаком.Программисты могут по своему усмотрению упорядочить данные разных программ бесчисленным множеством способов. Даже в одной и той же структуре
Восстановление данных
Восстановление данных
Если на жестком диске или на флэшке пропали данные, воспользуйтесь соответствующими программами для восстановления. Не испытывайте программы на носителе, данные с которого пропали, потренируйтесь на другом.В Интернете существует сервис
Причины, вызывающие потерю данных с жесткого диска
Особенности восстановления данных с жесткого диска

В отличие от ремонта жесткого диска, целью которого является получить работоспособное устройство, целью восстановления данных с жесткого диска является корректное извлечение информации.
В этом случае все меры направлены на вычитывание данных и перенос их на другой жесткий диск.
Существует множество специализированных пользовательских программ для восстановления данных. Но программы расчитаны на сканирование исправного жесткого диска. Кроме этого, эти программы работают в операционной системе, которая сама обращается к подключенным для сканирования жестким дискам для их диагностики. И, часто сама операционная система мешает проводить восстановление данных с жесткого диска или не дает возможности работать с неисправным накопителем вообще.
Для того, чтобы получить данные , надо исключить попытки тестирования операционной системой неработающего жесткого диска. Поэтому подключая жесткий диск как устройство, определяемое Windows, вы рискуете потерять информацию.
Характерные неисправности, при которых проводится восстановление данных с жесткого диска :
1. Логическое разрушение файловой структуры жесткого диска
Это может быть связано с наличием дефектов на поверхности жесткого диска (см пункт 2) или некорректными действиями пользователя.
Проводится анализ разрушений файловой структуры и поиск потерянных файлов и директорий на жестком диске.В завимости от степени разрушения файловой структуры восстановление данных с жесткого диска проводится 2 способами. В первом случае проводится поиск потерянных фрагментов файловой структуры (FAT , NTFS , MAC). Если разрушен только корневой каталог (ROOT), жесткий диск сканируется на предмет поиска директорий и поддиректорий. Если файловая система рузрушена (удалена) и первый вариант восстановления данных не дал результата, запускается второй вариант сканирования. Осуществляется поиск нужных файлов по всему объему жесткого диска по их сигнатуре (т.е. по типу файла)
2. Большое количество дефектов на жестком диске.

Ошибки пользователей :
Стандартной ошибкой является запуск сканирования жесткого диска различными программами. Эти программы достаточно хорошо работают при поиске удаленных файлов и папок, НО! на исправном жестком диске. Еще бОльшей ошибкой является запуск программ для проверки поверхности жесткого диска. Как правило,после таких действий процесс восстановления данных усложняется.
ВАЖНО !!! Если вы все-таки запустили программу сканирования — наблюдайте за процессом !! Процесс сканирования (в зависимости от объема жесткого диска) может длиться от получаса до нескольких часов. Если же диск простоял на сканировании весь рабочий день и программа показывает «прогресс 1-2 %», то это означает, что диску совсем плохо. (и становится еще хуже ). Наиболее «упорные» пользователи запускают программу сканирования аж на несколько дней…
3. Деградация (потеря рабочих свойств блока магнитных головок жесткого диска).
Бывают такие случаи, когда жесткий диск даже определяется компьютером и операционной системой, но любая попытка обратиться к его логическому пространству и получить доступ к нужным файлам приводит к неудаче. Восстановление данных с жесткого диска осуществляется подбором режима чтения и вычитыванием максимально возможной посекторной копии на исправный жесткий диск. Если этот способ не приводит к положительному результату, тогда необходимо менять блок магнитных головок.
Еще раз читаем п2 «Ошибки пользователей». Дело в том, что при разных неисправностях, жесткие диски ведут себя внешне одинаково. Определяются системой , но данные недоступны. В данном случае, даже при отсутствии проблем на поверхности жесткого диска, программа сканирования считает непрочитанный сектор с данными bad блоком и он может быть помечен, как неиспользуемый в дальнейшем.
4. Залипание магнитных головок жесткого диска.
Характерные признаки : при подаче питания жесткий диск не раскручивается. Может быть слышен еле заметный писк. Проблема может возникнуть после падения жесткого диска. В этом случае головки «выпрыгивают» на магнитную поверхность. Либо при неправильном выключении жесткого диска после окончания работы. В этом случае магнитные головки не успевают уйти в зону парковки и тоже остаются на поверхности.
Первым этапом восстановления данных заключается устранение данной проблемы. После чего проводится осмотр магнитных головок и поверхности диска на предмет их возможного повреждения. В случае повреждения — проводится замена блока магнитных головок.
5. Полностью не работает блок магнитных головок (либо одна из головок) жесткого диска .

6. Клин подшипника двигателя жесткого диска.

К каждой задаче необходимо подходить индивидуально, хотя многие случаи и могут быть похожи по алгоритму.
Допустим, мы знаем, что на диске должны быть определенные файлы, и открываем его через Проводник Windows. Из таблицы разделов система выясняет расположение разделов диска. ОС обращается к блокам, в которых должна располагаться файловая система, берет оттуда сведения о местонахождении блоков с содержимым файлов, отображает список файлов и папок, а далее может открыть и содержимое файлов.
Если ОС не смогла обнаружить разделы, файловые системы на них, в файловой системе отсутствуют или искажены записи о файлах, либо эти записи ссылаются на несуществующие блоки — мы думаем о потере информации. Понятно, что сама информация с диска никуда не делась, просто утрачены или некорректны ссылки на нее. Проблема на любом из уровней логической иерархии делает данные недоступными через обычные средства ОС, и не более того!
Причины и механизмы повреждения логической структуры
Любую многоуровневую систему испортить очень легко — достаточно «выбить из нее любой кирпич». Механизмы повреждения логической структуры могут быть различными:
— физический дефект секторов, хранивших записи таблицы разделов или составляющих файловой системы;
— аппаратные сбои в процессе записи данных:
- одна из типичных причин — броски и «провалы» питания, которые влияют на работу и дисков, и контроллеров ATA;
- извлечение USB-дисков, когда на них проводится запись, — еще одна типичная ситуация;
- прожиг лазерных дисков никак не контролируется в реальном времени, и ошибки при их записи/перезаписи — обычное дело;
- сбои оперативной памяти — запись на диск кешируется, и ошибки в кеше закономерно приводят к ошибкам на диске;
— системные ошибки при выполнении операций с диском:
- особенно уязвимы логические структуры в процессе дефрагментации дисков, когда перенос блоков данных чередуется с обновлением записей ФС;
- автоматическое исправление ошибок на дисках при их проверке порой усугубляет появившиеся проблемы;
- принудительное завершение процессов, ведущих запись на диск;
— «жесткое» выключение или перезагрузка компьютера в процессе записи;
— опрометчивые действия пользователей. Дисковые утилиты на рабочем компьютере «чайника» — примерно то же, что заряженный пистолет в руках ребенка. Не меньший риск представляют и попытки установить несколько систем, различные менеджеры загрузки, всевозможные «оптимизаторы дисков», словом, все, что так или иначе может затронуть MBR или файловые системы;
— действия вредоносных программ (вирусов), искажающих или уничтожающих записи файловой системы. Хотя на первое место сегодня вышли программы-шпионы и прочая «нечисть», ориентированная на Интернет, традиционные файловые вирусы никуда не исчезли! Забавный пример недавнего времени — Trojan:Win32/Bumat!rts (Win32.HLLW.Lime), который присваивает папкам на диске атрибут «скрытый» и создает исполняемые файлы точно с теми же именами.
Обо всех возможных вариантах повреждения логической структуры данных легко догадаться, четко представляя уровни этой структуры. Кое-что возможно лишь чисто теоретически, другие нарушения на практике встречаются довольно часто.
При обычной загрузке операционная система не проводит проверку целостности дисков и томов на них. Скажем так — она безоговорочно верит записям таблиц разделов и файловых систем! К сожалению, при искажении логических структур такое доверие вполне может «выйти боком».
Есть лишь один механизм самопроверки, который срабатывает далеко не всегда. При загрузке ОС для каждого смонтированного тома устанавливается так называемый «грязный бит» (VolumeDirty, или Dirty Bit). При корректном завершении работы системы этот флаг снимается. Если работа была завершена аварийно, например, отключением питания, «грязный бит» остается на томе.
При каждой загрузке ОС ядро вызывает программу %WinDir%System32 autochk.exe, которая проверяет, заданы ли «грязные биты» томов. Если «грязный бит» присутствует, программа autochk немедленно запускает команду chkdsk /f для этого тома. Команда chkdsk /f проверяет целостность файловой системы и пытается устранить все возможные неисправности тома.
Чтобы проверить наличие «грязного бита» на томе, необходимо ввести команду fsutil dirty query C:, где C: — буква диска. Для установки «грязного бита» вручную введите команду fsutil dirty set C:, где C: — буква диска. При следующей загрузке системы диск будет проверен автоматически. Снять «грязный бит» вручную нельзя, остается только перезагрузить систему и дождаться завершения автоматической проверки.
Уничтожение или повреждение главной загрузочной записи приводит к тому, что ОС считает диск непроинициализированным и, естественно, сразу же предлагает его инициализировать. При инициализации MBR или GPT переписываются заново, существовавшие разделы в любом случае исчезают.
Таблица разделов может повреждаться по-разному. Искажением таблицы разделов порой «грешат» программы для «неразрушающего переразбиения дисков» наподобие Partition Magic.
Некорректное изменение ссылки на первый сектор раздела заставляет ОС искать загрузчик и начало таблицы размещения файлов там, где их нет — диск становится якобы неотформатированным. Если отформатировать такой раздел, как предлагает ОС, будет создана новая ФС, начиная с начального сектора раздела согласно таблице разделов. Пока еще абсолютно целы, хотя и недоступны, и записи старой ФС, и все блоки данных. Когда на томе начинает производиться запись, возникают реальные проблемы:
— вновь записываемые блоки данных, скорее всего, сначала затрут секторы с записями старой файловой системы;
— по мере заполнения диска будут последовательно затерты кластеры со старыми данными — восстановить их станет невозможно.
Известная категория ошибок — перекрестные ссылки. Они могут появляться на любом уровне логической структуры. Обычно такие ошибки являются следствием несогласованной записи на диск, а иногда происходят по вине программ для манипуляций с разделами и ФС.
Например, в одной из записей таблицы разделов неправильно указан размер раздела. Получается, что конец предыдущего раздела «наползает» на начало следующего.
Очередной файл вполне может быть помещен в тот кластер, в котором располагались записи файловой системы следующего раздела. В результате запись на один диск в какой-то момент приведет к исчезновению следующего логического диска!
Чаще перекрестные ошибки возникают внутри файловой системы одного раздела. Две записи ФС ссылаются на один и тот же кластер. Скорее всего, валидным окажется тот файл, который был записан последним. Файл, на который ссылается более ранняя запись, в таком случае будет обрезан и безнадежно испорчен.
Файловые системы FAT подвержены возникновению перекрестных записей и «битых» файлов в большей мере, чем NTFS. В NTFS работает механизм контроля транзакций, и он чаще всего предупреждает появление неоднозначных ссылок.
Проверка жесткого диска на ошибки
Дополнение 2.05.2019
Очень часто в процессе использования вашего компьютера появляются «тормоза» зависания, притормаживания, в этом случае необходимо сделать проверку жесткого диска на ошибки, благо в Windows имеется много возможностей сделать эту проверку. Прочитайте внимательно данную статью и следуйте рекомендациями.
Если в процессе работы на компьютере при выполнении каких-либо манипуляций, ПК начинает притормаживать или зависать, это может означать, что на винчестере имеются какие-то ошибки. В данном случае необходимо проверить жесткий диск на наличие ошибок и попытаться их исправить. Выполнить это довольно просто.
Стоит отметить, что нижеописанные манипуляции не помогут решить все проблемы с притормаживанием компьютера. Однако, для тех случаев, когда «тормоза» вызывают именно ошибки на винчестере эти действия вполне подойдут. Кроме того, исправление ошибок и поддержание винчестера в нормальном состоянии позволит продлить срок эксплуатации HDD, поэтому эту процедуру желательно регулярно выполнять.
Физические ошибки жесткого диска
Физические ошибки связаны с повреждениями поверхности диска. Такое повреждение может случиться из-за удара или падения, а может даже из-за брака на производстве. В таком случае на поверхности диска образуются битые сектора, которые не могут содержать информации. Если в таких секторах были размещены системные файлы, то операционная система будет давать сбой.
Логические ошибки жесткого диска
Логические проблемы связаны с повреждением файловой системы. На жестком диске размещена файловая система, которая управляет расположением файлов, доступом к файлам. Если повреждена файловая система, то также компьютер может перегружаться или может появиться синий экран.
Из-за чего могут возникнуть ошибки на жестком диске?
Ошибки на винчестере могут возникать по разным причинам. К примеру, при работе на компьютере внезапно пропало электричество, и при этом были открыты какие-то файлы или программы. Кроме того, некоторые пользователи выключают компьютер путем нажатия на кнопки питания, а не через «Завершение работы». Такие действия приравниваются к внезапному отключению электроэнергии. В этом случае компьютер неправильно завершает свою работу. Помимо этого, есть еще большое количество причин появления ошибок на винчестере.
Проверка жесткого диска на наличие ошибок в Windows
Проверить винчестер на ошибки можно несколькими способами. Выполнить это можно с помощью интегрированной утилиты командной строки CHKDSK или сторонних программ, а также графический инструмент. Для начинающих пользователей отлично подойдет последний вариант, так как он самый простой из всех. Проверка таким способом одинаково проходит на «семерке» и «восьмерке» Windows.
Данная процедура может отнять довольно много времени, в зависимости от объема винчестера и количества выявленных ошибок. Работать за компьютером в этот момент не рекомендуется. Если выполняется проверка системного диска, на котором установлена операционная система, то проводить ее нужно после перезагрузки компьютера.
- Первым делом необходимо перейти в «Мой компьютер». Если такого ярлыка на рабочем столе нет, тогда сделать это можно через меню «Пуск». При необходимости расположить этот ярлык на рабочем столе можно поискать в интернете, как это сделать.
- Затем необходимо выбрать диск, который нужно проверить и щелкнуть по нему ПКМ. В выпавшем меню необходимо выбрать «Свойства».
- Перейдя в свойства диска, нужно зайти в раздел «Сервис», где должна находиться клавиша «Выполнить проверку». Ее необходимо нажать. На экране появится окно с разделом «Параметры проверки диска». В этом окне необходимо поставить галочки возле пунктов «Автоматически исправлять системные ошибки» и «Проверять и восстанавливать поврежденные сектора». Это позволить выявлять файловые и физические ошибки на винчестере. После этого требуется нажать на кнопку «Запуск».
- Затем начнется проверка винчестера, в ходе которой присутствие пользователя не нужно, поэтому можно заняться своими делами. По завершении проверки на экране появится окно, в котором будет указано, что проверка выполнена успешно, а также будет отображаться количество ошибок, выявленных в ходе сканирования, если такие будут на винчестере.
Вот, в принципе, и все. Способ довольно простой, поэтому воспользоваться им сможет любой начинающий пользователь. При необходимости можно воспользоваться другими методами проверки, однако, они требуют имение некоего опыта работы за компьютером. Новичкам также можно попробовать использовать сторонние программы для проверки винчестера, которые способы автоматически решить все ошибки на жестком диске.
Выполнить проверку жесткого диска через утилиту chkdsk
Как удостовериться, что Ваш жесткий диск не содержит ошибок и плохих секторов? В этом поможет служебная программа chkdsk: мы покажем, как запустить chkdsk в Windows и основы работы с ней.
chkdsk — это встроенная в Windows утилита для выявления ошибок на Вашем жестком диске, если говорить кратко, то — проверка диска (вытекающее отсюда ошибки, bad-секторы, и прочие «шероховатости»).
Нажимаем Win + R -> cmd -> OK
Вводим команду
chkdsk с: /f
В данном случае C: — это буква проверяемого диска, а параметр /f задает исправление ошибок. Утилита может выдать предупреждение «Невозможно выполнить команду Chkdsk, так как указанный том используется другим процессом…» Просто ответьте утвердительно, нажав Y. Проверка будет произведена при последующей перезагрузке компьютера.
Команды консоли CHKDSK :
Команда: CHKDSK [том: [/F] [/V] [/R] [/X] [/C] [/L[:размер]] выполняет проверку указанного диска при помощи программы Check Disk, при вызове без аргументов осуществляется проверка текущего диска. В консоль вбивать без скобок. Пример: C: /F /R
- том — определяет метку тома проверяемого диска, точку подключения либо имя диска с двоеточием (например, C:);
- путь, имя файла — имя файла или группы файлов для проверки на фрагментацию. Используется только в файловой системе FAT/FAT32;
- /F — выполнение проверки на наличие ошибок и их автоматическое исправление;
- /V — в процессе проверки диска выводить полные пути и имена хранящихся на диске файлов. Для дисков, содержащих разделы NTFS, также выводятся сообщения об очистке;
- /R — выполнить поиск поврежденных секторов и восстановить их содержимое. Требует обязательного использования ключа /F;
- /X — в случае необходимости выполнить отключение тома перед его проверкой. После отключения все текущие дескрипторы для данного тома будут недействительны. Требует обязательного использования ключа /F;
- /I — не проводить строгую проверку индексных элементов. Используется только в файловой системе NTFS;
- /C — не проводить проверку циклов внутри структуры папок. Используется только в файловой системе NTFS.
- /L:размер — в ходе проверки изменить размер файла журнала до указанной величины (в килобайтах). Если значение не указано, выводится текущий размер файла. Используется только в файловой системе NTFS;
Собственно, все. Теперь Вы имеете представление о том, что такое chkdsk и зачем она нужна.
Программы для диагностики жесткого диска
Существуют специальные утилиты для диагностики жестких и современных твердотельных дисков. Часть из приложений позволяют своевременно обнаружить повреждения на поверхности и другие ошибки, некоторые из программ способны даже исправлять проблемы в работе накопителей.
- DiskCheckup — Неплохой инструмент для диагностики носителей. «Изюминка» приложения – это возможность не просто сгенерировать отчет со S.M.A.R.T.-параметрами диска, но и сверить их с показателями, полученными при более раннем анализе. При выявлении проблем в работе накопителя программа сразу же отправляет письмо на заранее указанный адрес электронной почты.
- Crystal Disk Mark — Утилита позволяет узнать реальную скорость чтения и записи информации на диск, при этом используется четыре различных метода тестирования. Один из них — алгоритм последовательной записи «Seq» — применяют производители накопителей, поэтому пользователь может сравнить полученные цифры с заявленными разработчиком устройства показателями.
- CrystalDiskInfo — Программа для диагностики винчестера компьютера с русской версией меню от создателя популярного тестировщика скорости Crystal Disk Mark. Как и DiskCheckup, утилита может вести историю S.M.A.R.T.-показателей, с той лишь разницей, что у нее есть больше инструментов для визуализации. Благодаря такой функции можно графически построить историю «здоровья» накопителя и своевременно выявить ухудшение состояния диска.
- HDDScan — Утилита для просмотра информации об устройствах хранения данных и тестирования дисков по разным алгоритмам – S.M.A.R.T. и режим линейной обработки. Есть функция отображения температуры накопителя, а также возможность генерирования отчета, содержащего информацию о «медленных» секторах.
- HDD Regenerator — Если вкратце охарактеризовать эту программу, то ее можно назвать «современным вариантом MHDD». Утилита использует собственные методы реанимации битых участков, при этом она не только запрещает доступ к проблемной области поверхности, но и пробует восстановить ее специальной комбинаций сигналов высокого и низкого уровня. Данный алгоритм более эффективен, чем способ низкоуровневого форматирования. Приложение поддерживает все популярные интерфейсы подключения накопителей.
- Western Digital Data Lifeguard Diagnostic — Основные возможности для анализа этой программы сопоставимы с Seagate SeaTools, однако приложение от компании Western Digital мы рекомендуем более продвинутым пользователям. Причина – наличие функции безвозвратного глубокого форматирования накопителя, после которого нет возможности восстановить удаленные файлы. В меню она называется «WRITE ZEROS».
- MHDD — Программа-«ветеран», знакома всем пользователям «со стажем» со времен одноядерных процессоров. Инструментами приложения можно выполнить низкоуровневую проверку жесткого диска, выявить поврежденные области и переназначить их. Утилита также позволяет контролировать уровень шума винчестера и имеет функцию установки пароля на устройство хранения данных.Из-за отсутствия поддержки Windows Vista, 7 и новее эту утилиту чаще всего используют в виде загрузочного образа как портативный вариант диагностики HDD без запуска операционной системы.
- Seagate SeaTools — Фирменная утилита от известного производителя жестких дисков. Приложение позволяет определить состояние накопителя по S.M.A.R.T.-алгоритму. Правда, получить подробную информацию о каждом показателе нет возможности. По запросу пользователя с помощью Seagate SeaTools можно произвести три типа анализа – так называемый короткий selftest, экспресс-тест методом непродолжительного чтения последовательных массивов и полную диагностику последовательного чтения.
Диагностика диска с программой Victoria HDD
Victoria HDD — максимально простая, но очень мощная программа полной диагностики жёсткого диска. Приложение создавалось в качестве инструмента оценки производительности HDD, тестирования всех его параметров, устранения выявленных проблем, а также правильного и чистого форматирования HDD.
Интерфейс программа Victoria очень простой, тем не менее, программа рассчитана на продвинутых пользователей, или хотя бы со средним левелом знаний и навыков. Программа гибкая, и её можно подстроить (сконфигурировать) под ваш уровень технической грамотностиподготовки. Это изменяет алгоритмы сканирования и вывода информации. Структура данных будет такая, какая вам больше подходит. Программа выдаёт все детали по вашему диску, который сканируется, от модели, общего размера до функций.
Victoria также сканирует физическую поверхность блинов диска, то есть проводит тест с помощью считывающих головок. При обнаружении каких-то проблем и неисправностей, выдаёт предупреждение, помечает, где эта неисправность находится. Это могут быть плохиеповреждённые сектора. После выдаётся подробный отчёт. Пользователь может переназначить все повреждённые сектора, таким образом изолируя плохой блок, чтобы диском можно было продолжать пользоваться без опасения потери ваших данных. Программа является разработкой Казанского Сергея. Хоть и не было давно обновления, приложение до сих пор делает свою работу на очень высоком уровне эффективности.
Главным преимуществом Victoria HDD является работа программы на низовом уровне, это сканирование поверхности диска, анализ его структуры через порты. В этом случае эффективность не может быть низкой, как у программ, которые используют виртуальные костыли. Но для полноценного использования программы пользователю понадобятся навыки повыше обычного пользователя. Можно сказать, что эта программа для профессионалов по восстановлению HDD.
Я уверен что данная статья поможет вам предотвратить частых сбоев в жестком диски и устранить проблему с притормаживанием Windows, удачи!
Источники:
http://lp-digital.ru/articles/598-proverka-zhestkogo-diska-na-oshibki-utilita-chkdsk.html
http://commentarticle.xyz/programmy/instrukcii/5164-proverka-zhestkogo-diska-kompjutera-na-nalichie.html
https://ww.epicm.org/rtfm/chkdsk
https://www.softhome.ru/article/programmy-dlya-diagnostiki-vinchestera
Поделись мнением о статье «Проверка жесткого диска на ошибки», предложи свой вариант в комментариях! Спасибо!












