Форматирование диска — это процесс подготовки устройства хранения данных, такого как жесткий диск , твердотельный накопитель , дискета , карта памяти или USB-накопитель, к первоначальному использованию. В некоторых случаях операция форматирования может также создать одну или несколько новых файловых систем . Первую часть процесса форматирования, выполняющую базовую подготовку носителя, часто называют «низкоуровневым форматированием». [1] Разделение — это общий термин для второй части процесса, когда устройство разделяется на несколько подустройств и, в некоторых случаях, записывается на устройство информация, позволяющая загрузить с него операционную систему . [1] [2] Третья часть процесса, обычно называемая «высокоуровневым форматированием», чаще всего относится к процессу создания новой файловой системы. [1] В некоторых операционных системах все или части этих трех процессов могут быть объединены или повторены на разных уровнях [a] и под термином «форматирование» понимается операция, в ходе которой новый дисковый носитель полностью готов к хранению файлов . Некоторые утилиты форматирования позволяют различать быстрое форматирование, при котором не удаляются все существующие данные, и длительное форматирование, при котором все существующие данные удаляются.
Как правило, [b] форматирование диска по умолчанию оставляет большую часть, если не все существующие данные, на дисковом носителе; некоторые или большую часть из них можно восстановить с помощью привилегированного [c] или специальных инструментов . [6] Специальные инструменты позволяют удалить пользовательские данные путем однократной перезаписи всех файлов и свободного места. [7]
Блок , непрерывное количество байтов , — это минимальная единица хранения, которая считывается с диска и записывается на диск драйвером диска. Самые ранние дисковые накопители имели фиксированные размеры блоков (например, размер блока дискового накопителя IBM 350 (конца 1950-х годов) составлял 100 шестибитных символов), но начиная с 1301 [8] продаваемые IBM подсистемы имели переменные размеры блоков: особый дорожка может иметь блоки разных размеров. Дисковые подсистемы и другие устройства хранения с прямым доступом в IBM System / 360 расширили эту концепцию в форме ключевых данных подсчета (CKD), а затем и расширенных ключевых данных подсчета (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) имел разные размеры блоков в зависимости от ОС хоста и контроллер.
Оптические диски обычно используют только фиксированные размеры блоков.
Форматирование диска для использования операционной системой и ее приложениями обычно включает три разных процесса. [э]
Низкоуровневое форматирование дискет (и первых жестких дисков) выполняется контроллером дисковода.
Для стандартной дискеты емкостью 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] Amstrad иначе используется 0xF4
в качестве значения заполнения.
Жесткие диски до 1990-х годов обычно имели отдельный контроллер диска , который определял способ кодирования данных на носителе. Поскольку носитель, привод и/или контроллер, возможно, были приобретены у разных поставщиков, пользователи часто могли выполнять низкоуровневое форматирование. Отдельные закупки также могли привести к несовместимости между отдельными компонентами, в результате чего подсистема не могла надежно хранить данные. [г]
Низкоуровневое форматирование (LLF) жестких дисков, инициируемое пользователем , было обычным явлением для мини-компьютеров и персональных компьютерных систем до 1990-х годов. IBM и другие поставщики мэйнфреймов обычно поставляли свои жесткие диски (или носители в случае жестких дисков со съемными носителями) в низкоуровневом формате. Обычно это включало разделение каждой дорожки на диске на один или несколько блоков, которые содержали пользовательские данные и связанную с ними управляющую информацию. В разных компьютерах использовались разные размеры блоков, и IBM, в частности, использовала переменные размеры блоков , но популярность IBM PC заставила индустрию принять стандарт в 512 байт пользовательских данных на блок к середине 1980-х годов.
В зависимости от системы низкоуровневое форматирование обычно выполнялось утилитой операционной системы. IBM-совместимые ПК использовали BIOS, который вызывается с помощью программы отладки MS-DOS , для передачи управления подпрограмме, скрытой по разным адресам в разных BIOS. [16]
Начиная с конца 1980-х годов, благодаря увеличению количества IBM-совместимых ПК, жесткие диски стали регулярно доступны, предварительно отформатированные в совместимом низкоуровневом формате. В то же время отрасль перешла от исторических (немых) последовательных битовых интерфейсов к современным (интеллектуальным) последовательным битовым интерфейсам и последовательным интерфейсам слов , в которых низкоуровневое форматирование выполнялось на заводе. [17] [18] Соответственно, конечный пользователь не может выполнить низкоуровневое форматирование современного жесткого диска.
Современные жесткие диски больше не могут выполнять постобработку LLF, то есть восстанавливать базовую компоновку «дорожек» и «блоков» на записывающей поверхности. Повторная инициализация относится к процессам, которые возвращают диск к заводской конфигурации: нет данных, нет разделения на разделы, все блоки доступны для использования.
SCSI предоставляет команду форматирования блока . Эта команда выполняет необходимый этап сертификации для устранения поврежденных секторов и имеет возможность изменить размер сектора. Для ввода команды можно использовать программу sg_format командной строки. [19] Можно выбрать различные размеры секторов, но они доступны не на всех устройствах: сектора размером 512, 520, 524, 528, 4096, 4112, 4160 и 4224 байта. [20] Хотя команда SCSI предоставляет множество опций, включая изменение размера, она не затрагивает уровень дорожки, где происходит низкоуровневое форматирование. [21]
ATA не предоставляет функции низкоуровневого форматирования, но позволяет изменять размер сектора с помощью SET SECTOR CONFIGURATION ( --set-sector-size в ). (Бытовые накопители обычно поддерживают только сектора размером 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
используется на флэш-дисках для уменьшения износа . Последнее значение обычно также является значением по умолчанию, используемым на дисках ПЗУ (которые нельзя переформатировать). Некоторые расширенные инструменты позволяют настраивать значение заполнения. [час]
Заполнение диска нулями не является безопасным методом подготовки диска к использованию с зашифрованной файловой системой. Это аннулирует правдоподобное отрицание процесса , поскольку зашифрованные области (неотличимые от случайных без ключа, если только шифр не взломан) будут выделяться среди нулевых блоков. Правильный метод — заполнить нулями внутри временного зашифрованного слоя, а затем отказаться от настройки ключа и уровня. ( /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 существует три различных уровня форматирования высокого уровня:
В операционных системах IBM, созданных на основе CP-67 , форматирование тома инициализирует дорожку 0 и фиктивный VTOC. Гостевые операционные системы отвечают за форматирование минидисков ; команда CMS FORMAT форматирует файловую систему CMS на мини-диске CMS.
Защищенная область хоста, иногда называемая скрытой защищенной областью, представляет собой область жесткого диска , отформатированную таким образом, что эта область обычно не видна операционной системе (ОС).
Переформатирование — это высокоуровневое форматирование работающего жесткого диска с целью освобождения носителя от его содержимого. Переформатирование уникально для каждой операционной системы, поскольку то, что на самом деле делается с существующими данными, зависит от ОС. Наиболее важным аспектом процесса является освобождение дискового пространства для использования другими данными. Чтобы действительно «стереть» все, необходимо перезаписать каждый блок данных на носителе; то, чего не делают многие утилиты форматирования высокого уровня.
Переформатирование часто подразумевает, что операционная система и все другое программное обеспечение будут переустановлены после завершения форматирования. Вместо того, чтобы исправлять установку, страдающую от неисправности или нарушения безопасности, может потребоваться просто переформатировать все и начать с нуля. Для этого процесса существуют различные разговорные выражения, такие как «стереть и перезагрузить», «стереть и проложить», «переобразить» и т. д. Однако переформатирование диска, содержащего только пользовательские данные, не требует переустановки ОС.
Команда формата : В 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, индексные дескрипторы в ext2/3 и т. д.) могут быть записаны в разные места. А если размер раздела увеличится, даже файловые системы FAT перезапишут больше данных в начале нового раздела.
С точки зрения предотвращения восстановления конфиденциальных данных с помощью инструментов восстановления, данные должны быть полностью перезаписаны (каждый сектор) либо отдельным инструментом, либо при форматировании. Данные уничтожаются в DOS, OS/2 и Windows, когда параметр /L (long) используется в формате и всегда для многораздельного набора данных (PDS) в MVS и для новых файловых систем на мэйнфреймах IBM.
Спорный вопрос, достаточно ли одного прохода заполнения нулями для уничтожения конфиденциальных данных на старых (до 1990-х годов) магнитных носителях: Гутманн (известный своим 35-проходным методом Гутмана ) утверждает, что магнитно-силовая микроскопия может «видеть» старые биты. на дискете, [34] , но цитированные им источники этого не доказывают. Считается, что случайная заливка более эффективна, чем заливка фиксированного шаблона. [35] Согласно данным NIST (2014) и Wright et al (2008), одного прохода заполнения нулями достаточно для предотвращения остаточной намагниченности данных . [36] [37] Функция безопасного стирания , встроенная в жесткие диски, считается заслуживающей доверия, [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 команда форматирования не записывает нули на весь диск при выполнении полного форматирования.