Форматирование диска — это процесс подготовки устройства хранения данных , такого как жесткий диск , твердотельный накопитель , гибкий диск , карта памяти или USB-флеш-накопитель , к первоначальному использованию. В некоторых случаях операция форматирования может также создавать одну или несколько новых файловых систем . Первая часть процесса форматирования, которая выполняет базовую подготовку носителя, часто называется «низкоуровневым форматированием». [1] Разделение — это общий термин для второй части процесса, разделяющий устройство на несколько подустройств и, в некоторых случаях, записывающий информацию на устройство, позволяющую загружать с него операционную систему . [1] [2] Третья часть процесса, обычно называемая «высокоуровневым форматированием», чаще всего относится к процессу создания новой файловой системы. [1] В некоторых операционных системах все или части этих трех процессов могут быть объединены или повторены на разных уровнях [a] , и термин «форматирование» понимается как операция, в которой новый дисковый носитель полностью подготовлен для хранения файлов . Некоторые утилиты форматирования позволяют различать быстрое форматирование, при котором не удаляются все существующие данные, и длительное форматирование, при котором удаляются все существующие данные.
Как правило, [b] форматирование диска по умолчанию оставляет большую часть, если не все существующие данные на дисковом носителе; некоторые или большинство из них можно восстановить с помощью привилегированных [c] или специальных инструментов . [6] Специальные инструменты могут удалить пользовательские данные путем единовременной перезаписи всех файлов и свободного пространства. [7]
Блок , непрерывное число байтов , является минимальной единицей хранения , которая считывается с диска и записывается на него драйвером диска. Самые ранние дисковые накопители имели фиксированные размеры блоков (например, размер блока дискового накопителя IBM 350 (конец 1950-х годов) составлял 100 шестибитных символов), но начиная с 1301 [8] IBM выпустила на рынок подсистемы, которые имели переменные размеры блоков: конкретная дорожка могла иметь блоки разных размеров. Дисковые подсистемы и другие устройства хранения с прямым доступом в IBM System/360 расширили эту концепцию в форме Count Key Data (CKD) и позднее Extended Count Key Data (ECKD); однако использование переменного размера блока в жестких дисках вышло из употребления в 1990-х годах; одним из последних жестких дисков, поддерживающих переменный размер блока, был IBM 3390 Model 9, анонсированный в мае 1993 года. [9]
Современные жесткие диски, такие как Serial attached SCSI (SAS) [d] и Serial ATA (SATA) [10] , на своих интерфейсах выглядят как непрерывный набор блоков фиксированного размера; в течение многих лет они имели длину 512 байт, но начиная с 2009 года и ускоряясь до 2011 года, все основные производители жестких дисков начали выпускать платформы жестких дисков, использующие расширенный формат логических блоков размером 4096 байт. [11] [12]
Дискеты обычно использовали только фиксированные размеры блоков, но эти размеры зависели от операционной системы хоста и ее взаимодействия с контроллером , так что определенный тип носителя (например, 5¼-дюймовый DSDD) мог иметь разные размеры блоков в зависимости от операционной системы хоста и контроллера.
Оптические диски обычно используют только фиксированные размеры блоков.
Форматирование диска для использования операционной системой и ее приложениями обычно включает три различных процесса. [e]
Низкоуровневое форматирование гибких дисков (и ранних жестких дисков) выполняется контроллером дисковода.
Для стандартной дискеты емкостью 1,44 МБ низкоуровневое форматирование обычно записывает 18 секторов по 512 байт на каждую из 160 дорожек (по 80 с каждой стороны) дискеты, обеспечивая 1 474 560 байт памяти на диске.
Физические сектора на самом деле больше 512 байт, так как в дополнение к полю данных 512 байт они включают поле идентификатора сектора, байты CRC (в некоторых случаях байты исправления ошибок ) и пробелы между полями. Эти дополнительные байты обычно не включаются в указанную цифру для общей емкости хранения диска.
На одном и том же носителе можно использовать различные низкоуровневые форматы ; например, большие записи можно использовать для сокращения размера промежутков между записями.
Несколько бесплатных , условно-бесплатных и бесплатных программ (например, GParted , FDFORMAT , NFORMAT, VGA-Copy и 2M ) обеспечивают значительно больший контроль над форматированием, позволяя форматировать 3,5-дюймовые диски высокой плотности емкостью до 2 МБ.
Используемые методы включают:
Linux поддерживает различные размеры секторов, [13] а DOS и Windows поддерживают формат дискет DMF с большим размером записи . [14]
После установки структуры дорожек форматеру также необходимо заполнить всю дискету и проверить ее на наличие поврежденных секторов . Традиционно физические секторы инициализировались значением заполнения 0xF6
согласно Таблице параметров диска (DPT) INT 1Eh во время форматирования на IBM-совместимых машинах. Это значение также используется в Atari Portfolio . 8-дюймовые дискеты CP/M обычно поставлялись предварительно отформатированными со значением 0xE5
, [15] и с помощью Digital Research это значение также использовалось на дискетах Atari ST и некоторых дискетах Amstrad . [f]0xF4
В противном случае в качестве значения заполнения использовалось Amstrad .
Жесткие диски до 1990-х годов обычно имели отдельный контроллер диска , который определял, как данные кодировались на носителе. С носителем, приводом и/или контроллером, возможно, закупленными у отдельных поставщиков, пользователи часто могли выполнять низкоуровневое форматирование. Раздельная закупка также имела потенциал несовместимости между отдельными компонентами, так что подсистема не могла надежно хранить данные. [g]
Низкоуровневое форматирование (LLF) жестких дисков, инициированное пользователем, было обычным явлением для мини-компьютеров и персональных компьютеров до 1990-х годов. IBM и другие поставщики мэйнфреймовых систем обычно поставляли свои жесткие диски (или носители в случае съемных носителей HDD) с низкоуровневым форматированием. Обычно это включало подразделение каждой дорожки на диске на один или несколько блоков, которые содержали пользовательские данные и связанную с ними управляющую информацию. Разные компьютеры использовали разные размеры блоков, и IBM, в частности, использовала переменные размеры блоков , но популярность IBM PC заставила отрасль принять стандарт 512 байт пользовательских данных на блок к середине 1980-х годов.
В зависимости от системы, низкоуровневое форматирование обычно выполнялось утилитой операционной системы. IBM-совместимые ПК использовали BIOS, который вызывался с помощью отладочной программы MS-DOS, для передачи управления процедуре, скрытой по разным адресам в разных BIOS. [16]
Начиная с конца 1980-х годов, под влиянием объема IBM-совместимых ПК, жесткие диски стали обычно доступны предварительно отформатированными с совместимым низкоуровневым форматом. В то же время отрасль перешла от исторических (немых) битовых последовательных интерфейсов к современным (интеллектуальным) битовым последовательным интерфейсам и словным последовательным интерфейсам, в которых низкоуровневое форматирование выполнялось на заводе. [17] [18] Соответственно, конечный пользователь не может выполнить низкоуровневое форматирование современного жесткого диска.
Современные жесткие диски больше не могут выполнять постпроизводственную обработку LLF, то есть восстанавливать базовую компоновку «дорожек» и «блоков» на поверхности записи. Повторная инициализация относится к процессам, которые возвращают диск к заводской конфигурации: нет данных, нет разбиения на разделы, все блоки доступны для использования.
SCSI предоставляет команду Format Unit . Эта команда выполняет необходимый этап сертификации для отсеивания плохих секторов и имеет возможность изменять размер сектора. Для подачи команды можно использовать программу командной строки sg_format. [19] Можно выбрать различные размеры сектора, но они доступны не на всех устройствах: сектора размером 512, 520, 524, 528, 4096, 4112, 4160 и 4224 байта. [20] Хотя команда SCSI предоставляет много опций, даже изменение размера, она не затрагивает слой дорожек, где происходит низкоуровневое форматирование. [21]
ATA не предоставляет функциональность форматирования низкого уровня, но позволяет изменять размер сектора с помощью SET SECTOR CONFIGURATION ( --set-sector-size in ). (Потребительские диски обычно поддерживают только сектора размером 512 и 4096 байт .) Хотя изменение размера сектора может привести к скремблированию данных, это небезопасный способ стирания данных, и никакая сертификация не проводится. ATA предлагает отдельную команду SECURITY ERASE ( --security-erase in ) для стирания. [22]hdparm
hdparm
Диски NVMe имеют стандартный метод форматирования, доступный, например, в программе командной строки Linux nvme format . Доступны опции изменения размера сектора и безопасного стирания. [23] Обратите внимание, что диски NVMe, как правило, являются твердотельными, что делает это различие «дорожки» бесполезным.
Диски Seagate Technology предлагают последовательную консоль отладки TTL . [24] Помимо прочего, консоль может форматировать разделы «система» и «пользователь», выполняя проверки дефектов (повторная инициализация предварительно установленных логических блоков) и изменять параметры дорожек (управляя реальным низкоуровневым форматированием). [25]
Когда встроенная функция повторной инициализации жесткого диска (см. выше) недоступна из-за ограничений драйвера или системы, можно вместо этого заполнить весь диск. На старых жестких дисках без управления плохими секторами [26] программе также потребуется проверить наличие поврежденных секторов и попытаться их спасти. На новых дисках с управлением дефектами перераспределенные сектора могут остаться нестираемыми, тогда как встроенная функция повторной инициализации сотрет их. [27]
В настоящее время наиболее распространено заполнение жестких дисков значением 0x00
. Одним из популярных методов выполнения этой операции заполнения нулями на жестком диске является запись байтов с нулевым значением на диск с помощью утилиты Unix dd с потоком /dev/zero в качестве входного файла и самим диском (или определенным разделом) в качестве выходного файла. [28] Выполнение этой команды может занять много часов, и она сотрет все файлы и файловые системы.
Значение 0xFF
используется на флэш-дисках для уменьшения износа . Последнее значение обычно также является значением по умолчанию, используемым на дисках ROM (которые не могут быть переформатированы). Некоторые расширенные инструменты позволяют настраивать значение заполнения. [h]
Заполнение диска нулями не является безопасным методом подготовки диска к использованию с зашифрованной файловой системой. Это делает невозможным правдоподобное отрицание процесса , поскольку зашифрованные области (неотличимые от случайных без ключа, если только шифр не скомпрометирован) будут выделяться среди нулевых блоков. Правильная техника заключается в заполнении нулями внутри временного зашифрованного слоя, а затем в отмене ключа и настройки слоя. ( /dev/urandom обеспечивает аналогичную безопасность, но, как правило, работает медленно.) [29]
Нынешняя двусмысленность в термине «форматирование низкого уровня» по-видимому, вызвана как непоследовательной документацией на веб-сайтах, так и убеждением многих пользователей, что любой процесс ниже форматирования высокого уровня (файловой системы) должен называться форматированием низкого уровня . Поскольку большая часть процесса форматирования низкого уровня сегодня может быть выполнена только на заводе, различные производители дисков описывают программное обеспечение для повторной инициализации как утилиты LLF на своих веб-сайтах. Поскольку пользователи, как правило, не имеют возможности определить разницу между полным LLF и повторной инициализацией (они просто наблюдают, как запуск программного обеспечения приводит к жесткому диску, который должен быть отформатирован на высоком уровне), как дезинформированный пользователь, так и неоднозначные сигналы от различных производителей дисков увековечили эту ошибку.
Примечание: несмотря на возможные злоупотребления такими терминами, многие сайты предоставляют такие утилиты повторной инициализации (возможно, в виде загрузочных дискет или файлов образов компакт-дисков), которые позволяют как перезаписывать каждый байт , так и проверять наличие поврежденных секторов на жестком диске.
Разбиение на разделы — это процесс записи информации в блоки запоминающего устройства или носителя для разделения устройства на несколько подустройств, каждое из которых рассматривается операционной системой как отдельное устройство, а в некоторых случаях — для обеспечения возможности загрузки операционной системы с устройства.
В операционных системах MS-DOS , Microsoft Windows и UNIX (таких как BSD , Linux и macOS ) это обычно делается с помощью редактора разделов , например fdisk , GNU Parted или Disk Utility . Эти операционные системы поддерживают несколько разделов.
Дискеты не разбиты на разделы, однако в зависимости от ОС для доступа к ним может потребоваться информация о томе.
Редакторы разделов и ICKDSF на сегодняшний день не выполняют низкоуровневые функции для жестких дисков и оптических приводов, такие как запись временных меток, и не могут повторно инициализировать современный диск, который был размагничен или иным образом утратил заводское форматирование.
Операционные системы IBM, созданные на основе CP-67 , например, z/VM , поддерживают информацию о разделах для мини-дисков вне накопителя.
Высокоуровневое форматирование — это процесс настройки пустой файловой системы на разделе диска или логическом томе , а для ПК — установка загрузочного сектора . [1] Это часто быстрая операция, и иногда ее называют быстрым форматированием .
Форматирование всего логического диска или раздела может потребовать дополнительного сканирования на наличие дефектов, что может занять значительное время.
В случае дискет и высокоуровневое, и низкоуровневое форматирование обычно выполняются за один проход программным обеспечением для форматирования дисков. Восьмидюймовые дискеты обычно поставлялись с низкоуровневым форматированием и были заполнены значением заполнителя формата 0xE5
. [15] [f] С 1990-х годов большинство 5,25-дюймовых и 3,5-дюймовых дискет поставлялись предварительно отформатированными с завода как дискеты DOS FAT12 .
В современных операционных системах мэйнфреймов IBM, производных от OS/360 и DOS/360 , таких как z/OS и z/VSE , форматирование дисков выполняется командой INIT утилиты ICKDSF . [30] Эти ОС поддерживают только один раздел на устройство, называемый томом. Функции ICKDSF включают запись записи 0 на каждой дорожке, запись текста IPL , создание метки тома, создание таблицы содержимого тома (VTOC) и, опционально, создание индекса VTOC (VTOCIX); высокоуровневое форматирование также может выполняться как часть выделения файла, утилитой, специфичной для файловой системы, или, в некоторых старых методах доступа, «на лету» по мере записи новых данных. В z/OS Unix System Services существует три различных уровня высокоуровневого форматирования:
В операционных системах IBM, производных от CP-67 , форматирование тома инициализирует дорожку 0 и фиктивный VTOC. Гостевые операционные системы отвечают за форматирование минидисков ; команда CMS FORMAT форматирует файловую систему CMS на минидиске CMS.
Защищенная область хоста, иногда называемая скрытой защищенной областью, представляет собой область жесткого диска , которая отформатирована на высоком уровне таким образом, что эта область обычно не видна его операционной системе (ОС).
Переформатирование — это высокоуровневое форматирование, выполняемое на работающем диске для освобождения носителя от его содержимого. Переформатирование уникально для каждой операционной системы, поскольку то, что на самом деле делается с существующими данными, зависит от ОС. Самым важным аспектом процесса является освобождение дискового пространства для использования другими данными. Чтобы фактически «стереть» все, требуется перезаписать каждый блок данных на носителе; то, чего не делают многие высокоуровневые утилиты форматирования.
Переформатирование часто подразумевает, что операционная система и все остальное программное обеспечение будут переустановлены после завершения форматирования. Вместо того, чтобы исправлять установку, страдающую от неисправности или нарушения безопасности, может потребоваться просто переформатировать все и начать с нуля. Для этого процесса существуют различные разговорные выражения, такие как «wipe and reload», «nuke and pave», «reimage» и т. д. Однако переформатирование диска, содержащего только пользовательские данные, не требует переустановки ОС.
команда format : В MS-DOS , PC DOS , OS/2 и Microsoft Windows форматирование диска можно выполнить командой format
. Обычно format
программа заранее запрашивает подтверждение, чтобы предотвратить случайное удаление данных, но в некоторых версиях DOS есть недокументированная /AUTOTEST
опция; если она используется, обычное подтверждение пропускается, и форматирование начинается сразу. Макровирус WM/FormatC использует эту команду для форматирования диска C: сразу после открытия документа.
Безусловный формат : также есть /U
параметр, который выполняет безусловное форматирование, которое в большинстве случаев перезаписывает весь раздел, [31] предотвращая восстановление данных с помощью программного обеспечения. Однако следует отметить, что /U
переключатель надежно работает только с дискетами (см. изображение справа). Технически, поскольку, если не /Q
используется, дискеты всегда форматируются на низком уровне в дополнение к форматированию на высоком уровне. Однако при определенных обстоятельствах с разделами жесткого диска /U
переключатель просто предотвращает создание unformat
информации в разделе, который должен быть отформатирован, в противном случае оставляя содержимое раздела полностью нетронутым (все еще на диске, но помеченным как удаленный). В таких случаях данные пользователя остаются готовыми для восстановления с помощью специальных инструментов, таких как EnCase или дисковых редакторов . Поэтому полагаться на безопасную перезапись разделов жесткого диска нецелесообразно, и вместо этого следует рассмотреть /U
специально разработанные инструменты, такие как DBAN .
Перезапись : В Windows Vista и выше небыстрое форматирование будет перезаписываться по мере выполнения. Это не относится к Windows XP и ниже. [32]
OS/2 : В OS/2 форматирование перезапишет весь раздел или логический диск /L
, если используется параметр, который указывает на длинный формат. Это расширяет возможности CHKDSK по восстановлению файлов.
Высокоуровневое форматирование дисков в этих системах традиционно выполняется с помощью mkfs
команды . В Linux (и потенциально в других системах) mkfs
обычно используется оболочка для команд, специфичных для файловой системы, которые имеют имя , где fsname — имя файловой системы, с помощью которой форматируется диск. [33] Некоторые файловые системы, которые не поддерживаются определенными реализациями , имеют собственные инструменты для манипуляции; например, Ntfsprogs предоставляет утилиту форматирования для файловой системы NTFS .mkfs.fsname
mkfs
Некоторые операционные системы Unix и Unix-подобные имеют инструменты форматирования более высокого уровня, обычно для того, чтобы сделать форматирование диска проще и/или позволить пользователю разбить диск на разделы с помощью того же инструмента. Примерами служат GNU Parted (и его различные графические интерфейсы, такие как GParted и KDE Partition Manager ) и приложение Disk Utility в Mac OS X .
Как и при удалении файлов операционной системой, данные на диске не стираются полностью во время каждого форматирования высокого уровня. Вместо этого область на диске, содержащая данные, просто помечается как доступная и сохраняет старые данные до тех пор, пока они не будут перезаписаны. Если диск отформатирован с использованием файловой системы, отличной от той, которая ранее существовала на разделе, некоторые данные могут быть перезаписаны, чего не произошло бы, если бы использовалась та же файловая система. Однако в некоторых файловых системах (например, NTFS, но не FAT) индексы файлов (такие как $MFT в NTFS, inode в ext2/3 и т. д.) могут быть записаны не в те же самые точные места. А если размер раздела увеличивается, даже файловые системы FAT перезапишут больше данных в начале этого нового раздела.
С точки зрения предотвращения восстановления конфиденциальных данных с помощью инструментов восстановления, данные должны быть полностью перезаписаны (каждый сектор) либо отдельным инструментом, либо во время форматирования. Данные уничтожаются в DOS, OS/2 и Windows, когда используется опция /L (long) при форматировании и всегда для Partitioned Data Set (PDS) в MVS и для более новых файловых систем на мэйнфреймах IBM.
Спорный вопрос, достаточно ли одного прохода заполнения нулями для уничтожения конфиденциальных данных на старых (до 1990-х годов) магнитных носителях: Гутман (известный своим 35-проходным методом Гутмана ) утверждает, что магнитно-силовая микроскопия может «увидеть» старые биты на дискете, [34] но источники, на которые он ссылается, этого не доказывают. Считается, что случайное заполнение сильнее, чем заполнение фиксированным шаблоном. [35] Согласно NIST (2014) и Wright et al (2008), одного прохода заполнения нулями достаточно для предотвращения остаточной намагниченности данных . [36] [37] Опция Secure Erase, встроенная в жесткие диски, считается заслуживающей доверия, [27] [38] с оговоркой, что ранние твердотельные накопители , как известно, неправильно реализовывали эту функцию. [39]
Размагничивание эффективно, и это не вызывает сомнений; однако это может сделать привод непригодным для использования . [27]
0xE5
является причиной того, что значение 0xE5
имеет особое значение в записях каталогов в файловых системах FAT12 , FAT16 и FAT32 . Это позволяло 86-DOS использовать 8-дюймовые дискеты из коробки или только с инициализированной FAT./W:246
(для значения заполнения 0xF6
). В отличие от других утилит FDISK , DR-DOS FDISK не только инструмент для разбиения на разделы, но и может форматировать свежесозданную разделы как FAT12, FAT16 или FAT32. Это снижает риск случайного форматирования неправильного тома.Если не указана ни опция RECOMP, ни LABEL, область диска инициализируется путем записи зависящего от устройства количества записей (содержащих двоичные нули) на каждой дорожке. Все предыдущие данные на диске стираются.
Тома прямого доступа, на которых хранятся наборы данных виртуальной организации TSS/360, имеют блоки данных фиксированной длины и размера страницы. Ключевое поле не требуется. Функция переполнения записи используется для того, чтобы блоки данных могли охватывать дорожки по мере необходимости. Весь том, за исключением части первого цилиндра, которая используется для идентификации, форматируется в блоки размером страницы.
Поведение команды форматирования изменилось в Windows Vista. По умолчанию в Windows Vista команда форматирования записывает нули на весь диск при выполнении полного форматирования. В Windows XP и более ранних версиях операционной системы Windows команда форматирования не записывает нули на весь диск при выполнении полного форматирования.