El formateo de disco es el proceso de preparación de un dispositivo de almacenamiento de datos , como una unidad de disco duro , una unidad de estado sólido , un disquete , una tarjeta de memoria o una unidad flash USB para su uso inicial. En algunos casos, la operación de formateo también puede crear uno o más sistemas de archivos nuevos . La primera parte del proceso de formateo que realiza la preparación básica del medio a menudo se denomina "formateo de bajo nivel". [1] El particionamiento es el término común para la segunda parte del proceso, que divide el dispositivo en varios subdispositivos y, en algunos casos, escribe información en el dispositivo para permitir que se inicie un sistema operativo desde él. [1] [2] La tercera parte del proceso, generalmente denominada "formateo de alto nivel", se refiere con mayor frecuencia al proceso de generación de un nuevo sistema de archivos. [1] En algunos sistemas operativos, todos o partes de estos tres procesos se pueden combinar o repetir en diferentes niveles [a] y el término "formateo" se entiende como una operación en la que un nuevo medio de disco está completamente preparado para almacenar archivos . Algunas utilidades de formato permiten distinguir entre un formato rápido, que no borra todos los datos existentes, y una opción larga que sí borra todos los datos existentes.
Como regla general, [b] al formatear un disco de manera predeterminada se deja la mayoría de los datos existentes, si no todos, en el medio del disco; algunos o la mayoría de ellos podrían recuperarse con herramientas especiales o con privilegios [c] . [6] Las herramientas especiales pueden eliminar datos del usuario con una sobrescritura única de todos los archivos y el espacio libre. [7]
Un bloque , un número contiguo de bytes , es la unidad mínima de almacenamiento que un controlador de disco lee y escribe en un disco. Las primeras unidades de disco tenían tamaños de bloque fijos (por ejemplo, el tamaño de bloque de la unidad de almacenamiento en disco IBM 350 (de finales de la década de 1950) era de 100 caracteres de seis bits), pero a partir del 1301 [8] IBM comercializó subsistemas que presentaban tamaños de bloque variables: una pista particular podía tener bloques de diferentes tamaños. Los subsistemas de disco y otros dispositivos de almacenamiento de acceso directo en el IBM System/360 ampliaron este concepto en forma de Count Key Data (CKD) y más tarde Extended Count Key Data (ECKD); sin embargo, el uso de tamaño de bloque variable en los HDD cayó en desuso en la década de 1990; uno de los últimos HDD que admitió tamaño de bloque variable fue el IBM 3390 Modelo 9, anunciado en mayo de 1993. [9]
Las unidades de disco duro modernas, como las unidades Serial attached SCSI (SAS) [d] y Serial ATA (SATA) [10] , aparecen en sus interfaces como un conjunto contiguo de bloques de tamaño fijo; durante muchos años tuvieron una longitud de 512 bytes, pero a partir de 2009 y acelerándose hasta 2011, todos los principales fabricantes de unidades de disco duro comenzaron a lanzar plataformas de unidades de disco duro que usaban el formato avanzado de bloques lógicos de 4096 bytes. [11] [12]
Los disquetes generalmente solo usaban tamaños de bloque fijos, pero estos tamaños eran una función del sistema operativo del host y su interacción con su controlador , de modo que un tipo particular de medio (por ejemplo, DSDD de 5¼ pulgadas) tendría diferentes tamaños de bloque dependiendo del sistema operativo del host y el controlador.
Los discos ópticos generalmente sólo utilizan tamaños de bloques fijos.
Formatear un disco para que lo utilice un sistema operativo y sus aplicaciones normalmente implica tres procesos diferentes. [e]
El formateo de bajo nivel de los disquetes (y de los primeros discos duros) lo realiza el controlador de la unidad de disco.
Para un disquete estándar de 1,44 MB , el formateo de bajo nivel normalmente escribe 18 sectores de 512 bytes en cada una de las 160 pistas (80 en cada lado) del disquete, lo que proporciona 1.474.560 bytes de almacenamiento en el disco.
Los sectores físicos son en realidad más grandes que 512 bytes, ya que además del campo de datos de 512 bytes incluyen un campo de identificación de sector, bytes de CRC (en algunos casos, bytes de corrección de errores ) y espacios entre los campos. Estos bytes adicionales normalmente no se incluyen en la cifra citada para la capacidad de almacenamiento total del disco.
Se pueden utilizar diferentes formatos de bajo nivel en el mismo medio ; por ejemplo, se pueden utilizar registros grandes para reducir el tamaño de los espacios entre registros.
Varios programas freeware , shareware y software libre (por ejemplo, GParted , FDFORMAT , NFORMAT, VGA-Copy y 2M ) permitieron considerablemente más control sobre el formato, permitiendo el formateo de discos de 3,5" de alta densidad con una capacidad de hasta 2 MB.
Las técnicas utilizadas incluyen:
Linux admite una variedad de tamaños de sectores, [13] y DOS y Windows admiten un formato de disquete con formato DMF de gran tamaño de registro . [14]
Después de establecer la estructura de las pistas, un formateador también necesita llenar todo el disquete y buscar sectores defectuosos . Tradicionalmente, los sectores físicos se inicializaban con un valor de llenado de 0xF6
según la Tabla de parámetros de disco (DPT) de INT 1Eh durante el formateo en máquinas compatibles con IBM. Este valor también se utiliza en Atari Portfolio . Los disquetes CP/M de 8 pulgadas normalmente venían preformateados con un valor de 0xE5
, [15] y, a través de Digital Research, este valor también se utilizó en Atari ST y algunos disquetes formateados por Amstrad . [f] Amstrad lo usaba de otro modo 0xF4
como valor de llenado.
Las unidades de disco duro anteriores a la década de 1990 solían contar con un controlador de disco independiente que definía cómo se codificaban los datos en el medio. Como el medio, la unidad y/o el controlador se podían adquirir de distintos proveedores, los usuarios solían poder realizar un formateo de bajo nivel. La adquisición por separado también podía generar incompatibilidad entre los distintos componentes, de modo que el subsistema no podía almacenar los datos de forma fiable. [g]
Hasta los años 90, el formateo de bajo nivel (LLF) de los discos duros por iniciativa del usuario era algo habitual en los sistemas de minicomputadoras y computadoras personales . IBM y otros proveedores de sistemas mainframe solían suministrar sus discos duros (o medios en el caso de los discos duros extraíbles) con un formato de bajo nivel. Normalmente, esto implicaba subdividir cada pista del disco en uno o más bloques que contendrían los datos del usuario y la información de control asociada. Distintos ordenadores utilizaban distintos tamaños de bloque e IBM utilizaba notablemente tamaños de bloque variables , pero la popularidad de la IBM PC hizo que la industria adoptara un estándar de 512 bytes de datos de usuario por bloque a mediados de los años 80.
Dependiendo del sistema, el formateo de bajo nivel generalmente lo hacía una utilidad del sistema operativo. Las PC compatibles con IBM usaban el BIOS, que se invocaba mediante el programa de depuración MS-DOS , para transferir el control a una rutina oculta en diferentes direcciones en diferentes BIOS. [16]
A partir de finales de los años 1980, impulsados por el volumen de PC compatibles con IBM, los discos duros comenzaron a estar disponibles de forma rutinaria preformateados con un formato de bajo nivel compatible. Al mismo tiempo, la industria pasó de las interfaces seriales de bits históricas (tontas) a las interfaces seriales de bits modernas (inteligentes) e interfaces seriales de palabras en las que el formato de bajo nivel se realizaba en la fábrica. [17] [18] En consecuencia, no es posible que un usuario final formatee a bajo nivel una unidad de disco duro moderna.
Los discos duros modernos ya no pueden realizar operaciones de LLF de posproducción, es decir, restablecer la disposición básica de "pistas" y "bloques" en la superficie de grabación. La reinicialización se refiere a los procesos que devuelven un disco a una configuración similar a la de fábrica: sin datos, sin particiones, todos los bloques disponibles para su uso.
SCSI ofrece un comando Format Unit . Este comando realiza el paso de certificación necesario para eliminar los sectores defectuosos y tiene la capacidad de cambiar el tamaño del sector. Se puede utilizar el programa de línea de comandos sg_format para emitir el comando. [19] Se puede elegir una variedad de tamaños de sector, pero no están disponibles en todos los dispositivos: sectores de 512, 520, 524, 528, 4096, 4112, 4160 y 4224 bytes. [20] Aunque el comando SCSI ofrece muchas opciones, incluso el cambio de tamaño, no toca la capa de pista donde se produce el formateo de bajo nivel. [21]
ATA no ofrece una funcionalidad de formato de bajo nivel, pero permite cambiar el tamaño del sector mediante SET SECTOR CONFIGURATION ( --set-sector-size en ). (Las unidades de consumo normalmente solo admiten sectores de 512 y 4096 bytes ). Aunque el cambio de tamaño del sector puede alterar los datos, no es una forma segura de borrarlos, ni se realiza ninguna certificación. ATA ofrece un comando SECURITY ERASE ( --security-erase en ) independiente para el borrado. [22]hdparm
hdparm
Las unidades NVMe tienen un método estándar de formateo, disponible, por ejemplo, en el programa de línea de comandos de Linux nvme format . Están disponibles las opciones de cambio de tamaño de sector y borrado seguro. [23] Tenga en cuenta que las unidades NVMe son generalmente de estado sólido, lo que hace que esta distinción de "pista" sea inútil.
Las unidades Seagate Technology ofrecen una consola de depuración serial TTL . [24] Entre otras cosas, la consola puede formatear las particiones "sistema" y "usuario" mientras realiza comprobaciones de defectos (reinicialización sobre bloques lógicos preestablecidos) y modifica parámetros de pista (administrando el formato real de bajo nivel). [25]
Cuando la función de reinicialización incorporada del disco duro (ver arriba) no está disponible debido a limitaciones del controlador o del sistema, es posible llenar todo el disco en su lugar. En discos duros más antiguos sin administración de sectores defectuosos , [26] un programa también deberá verificar si hay sectores dañados e intentar eliminarlos. En unidades más nuevas con administración de sectores defectuosos, los sectores reasignados pueden dejarse sin borrar, mientras que la función de reinicialización incorporada los borrará. [27]
En la actualidad, lo más común es llenar los discos duros con el valor 0x00
. Un método popular para realizar esta operación de llenado con ceros en un disco duro es escribir bytes de valor cero en el disco usando la utilidad dd de Unix con el flujo /dev/zero como archivo de entrada y el disco en sí (o una partición específica) como archivo de salida. [28] Este comando puede tardar muchas horas en completarse y borrará todos los archivos y sistemas de archivos.
0xFF
En los discos flash se utiliza un valor de para reducir el desgaste . Este último valor suele ser también el valor predeterminado que se utiliza en los discos ROM (que no se pueden reformatear). Algunas herramientas avanzadas permiten configurar el valor de relleno. [h]
Rellenar con ceros una unidad no es un método seguro para prepararla para su uso con un sistema de archivos cifrado. Al hacerlo, se anula la posibilidad de negar el proceso , ya que las áreas cifradas (que no se pueden distinguir de las aleatorias sin una clave, a menos que el cifrado esté comprometido) se destacarán entre los bloques de cero. La técnica correcta es rellenar con ceros dentro de una capa cifrada temporal y luego descartar la clave y la configuración de la capa. ( /dev/urandom proporciona una seguridad similar, pero tiende a ser lento). [29]
La ambigüedad actual en el término formato de bajo nivel parece deberse tanto a la documentación inconsistente en los sitios web como a la creencia de muchos usuarios de que cualquier proceso por debajo de un formato de alto nivel (sistema de archivos) debe llamarse formato de bajo nivel . Dado que gran parte del proceso de formateo de bajo nivel hoy en día solo se puede realizar en la fábrica, varios fabricantes de unidades describen el software de reinicialización como utilidades LLF en sus sitios web. Dado que los usuarios generalmente no tienen forma de determinar la diferencia entre un LLF completo y una reinicialización (simplemente observan que al ejecutar el software se obtiene un disco duro que debe formatearse en alto nivel), tanto el usuario mal informado como las señales confusas de varios fabricantes de unidades han perpetuado este error.
Nota: independientemente del posible uso incorrecto de dichos términos, muchos sitios ofrecen utilidades de reinicialización (posiblemente como disquetes de arranque o archivos de imagen de CD) para sobrescribir cada byte y verificar si hay sectores dañados en el disco duro.
La partición es el proceso de escribir información en bloques de un dispositivo o medio de almacenamiento para dividir el dispositivo en varios subdispositivos, cada uno de los cuales es tratado por el sistema operativo como un dispositivo separado y, en algunos casos, para permitir que un sistema operativo se inicie desde el dispositivo.
En los sistemas operativos basados en MS-DOS , Microsoft Windows y UNIX (como BSD , Linux y macOS ), esto normalmente se hace con un editor de particiones , como fdisk , GNU Parted o Disk Utility . Estos sistemas operativos admiten múltiples particiones.
Los disquetes no están particionados; sin embargo, dependiendo del sistema operativo, es posible que se requiera información de volumen para que el sistema operativo pueda acceder a ellos.
Los editores de particiones e ICKDSF actuales no manejan funciones de bajo nivel para discos duros y unidades de discos ópticos, como escribir marcas de tiempo, y no pueden reinicializar un disco moderno que ha sido desmagnetizado o que de otra manera ha perdido el formato de fábrica.
Los sistemas operativos de IBM derivados de CP-67 , por ejemplo, z/VM , mantienen información de partición para minidiscos externamente a la unidad.
El formateo de alto nivel es el proceso de configurar un sistema de archivos vacío en una partición de disco o un volumen lógico y, en el caso de las PC, instalar un sector de arranque . [1] Esta suele ser una operación rápida y, a veces, se la denomina formateo rápido .
Al formatear una unidad lógica o partición completa, se puede escanear opcionalmente para detectar defectos, lo que puede llevar un tiempo considerable.
En el caso de los disquetes, el formateo de alto y bajo nivel se realiza habitualmente en una sola pasada por el software de formateo de discos. Los disquetes de ocho pulgadas normalmente venían formateados a bajo nivel y se llenaban con un valor de relleno de formato de 0xE5
. [15] [f] Desde la década de 1990, la mayoría de los disquetes de 5,25 y 3,5 pulgadas se han enviado preformateados de fábrica como disquetes DOS FAT12 .
En los sistemas operativos mainframe actuales de IBM derivados de OS/360 y DOS/360 , como z/OS y z/VSE , el formateo de las unidades se realiza mediante el comando INIT de la utilidad ICKDSF . [30] Estos sistemas operativos admiten solo una única partición por dispositivo, llamada volumen. Las funciones de ICKDSF incluyen escribir un Record 0 en cada pista, escribir texto IPL , crear una etiqueta de volumen, crear una Tabla de contenido de volumen (VTOC) y, opcionalmente, crear un índice VTOC (VTOCIX); el formateo de alto nivel también se puede realizar como parte de la asignación de un archivo, mediante una utilidad específica para un sistema de archivos o, en algunos métodos de acceso más antiguos, sobre la marcha a medida que se escriben nuevos datos. En z/OS Unix System Services, hay tres niveles distintos de formateo de alto nivel:
En los sistemas operativos IBM derivados de CP-67 , al formatear un volumen se inicializa la pista 0 y un VTOC ficticio. Los sistemas operativos invitados son responsables de formatear los minidiscos ; el comando CMS FORMAT formatea un sistema de archivos CMS en un minidisco CMS.
El área protegida del host, a veces denominada área protegida oculta, es un área de un disco duro que tiene un formato de alto nivel tal que normalmente no es visible para su sistema operativo (SO).
El reformateo es un formateo de alto nivel que se realiza en una unidad de disco en funcionamiento para liberar el medio de su contenido. El reformateo es exclusivo de cada sistema operativo porque lo que realmente se hace con los datos existentes varía según el sistema operativo. El aspecto más importante del proceso es que libera espacio en el disco para que lo utilicen otros datos. Para "borrar" todo realmente es necesario sobrescribir cada bloque de datos en el medio, algo que no hacen muchas utilidades de formateo de alto nivel.
El formateo suele implicar que el sistema operativo y el resto del software se reinstalarán una vez finalizado el formateo. En lugar de reparar una instalación que presenta problemas de funcionamiento o de seguridad, puede ser necesario simplemente formatear todo y empezar desde cero. Existen varios coloquialismos para este proceso, como "borrar y recargar", "eliminar y pavimentar", "reinstalar", etc. Sin embargo, formatear una unidad que contiene solo datos de usuario no requiere la reinstalación del sistema operativo.
Comando format : en MS-DOS , PC DOS , OS/2 y Microsoft Windows , el formateo de un disco se puede realizar con el format
comando . El format
programa suele pedir confirmación de antemano para evitar la eliminación accidental de datos, pero algunas versiones de DOS tienen una /AUTOTEST
opción no documentada; si se utiliza, se omite la confirmación habitual y el formateo comienza de inmediato. El virus de macro WM/FormatC utiliza este comando para formatear la unidad C: tan pronto como se abre un documento.
Formato incondicional : también existe el /U
parámetro que realiza un formato incondicional que, en la mayoría de las circunstancias, sobrescribe toda la partición, [31] impidiendo la recuperación de datos a través del software. Sin embargo, tenga en cuenta que el /U
conmutador solo funciona de manera confiable con disquetes (consulte la imagen a la derecha). Técnicamente, debido a que /Q
se utiliza a menos que, los disquetes siempre se formatean a bajo nivel además de a alto nivel. Sin embargo, en determinadas circunstancias con particiones de disco duro, el /U
conmutador simplemente impide la creación de unformat
información en la partición que se va a formatear, mientras que, de lo contrario, deja el contenido de la partición completamente intacto (aún en el disco, pero marcado como eliminado). En tales casos, los datos del usuario siguen estando listos para su recuperación con herramientas especializadas como EnCase o editores de discos . Por lo tanto, no es aconsejable confiar en la sobrescritura segura de particiones de disco duro y, en su lugar, se deben considerar /U
herramientas diseñadas específicamente para ello, como DBAN .
Sobrescritura : en Windows Vista y versiones posteriores, el formato no rápido se sobrescribirá a medida que avanza. No es el caso en Windows XP y versiones anteriores. [32]
OS/2 : En OS/2, el formato sobrescribirá toda la partición o unidad lógica si /L
se utiliza el parámetro que especifica un formato largo . De esta manera, se mejora la capacidad de CHKDSK para recuperar archivos.
El formateo de alto nivel de los discos en estos sistemas se realiza tradicionalmente mediante el mkfs
comando . En Linux (y potencialmente también en otros sistemas) mkfs
es típicamente un contenedor de comandos específicos del sistema de archivos que tienen el nombre , donde fsname es el nombre del sistema de archivos con el que formatear el disco. [33] Algunos sistemas de archivos que no son compatibles con ciertas implementaciones de tienen sus propias herramientas de manipulación; por ejemplo, Ntfsprogs proporciona una utilidad de formato para el sistema de archivos NTFS .mkfs.fsname
mkfs
Algunos sistemas operativos Unix y similares tienen herramientas de formateo de nivel superior, generalmente con el propósito de facilitar el formateo del disco y/o permitir al usuario particionar el disco con la misma herramienta. Algunos ejemplos incluyen GNU Parted (y sus diversas interfaces gráficas de usuario como GParted y KDE Partition Manager ) y la aplicación Disk Utility en Mac OS X.
Al igual que en el caso de la eliminación de archivos por parte del sistema operativo, los datos de un disco no se borran por completo durante cada formateo de alto nivel. En cambio, el área del disco que contiene los datos simplemente se marca como disponible y conserva los datos antiguos hasta que se sobrescriben. Si el disco se formatea con un sistema de archivos diferente al que existía previamente en la partición, es posible que se sobrescriban algunos datos que no se sobrescribirían si se hubiera utilizado el mismo sistema de archivos. Sin embargo, en algunos sistemas de archivos (por ejemplo, NTFS, pero no FAT), los índices de archivo (como $MFT en NTFS, inodos en ext2/3, etc.) pueden no escribirse exactamente en las mismas ubicaciones. Y si se aumenta el tamaño de la partición, incluso los sistemas de archivos FAT sobrescribirán más datos al comienzo de esa nueva partición.
Desde la perspectiva de evitar la recuperación de datos confidenciales mediante herramientas de recuperación, los datos deben sobrescribirse completamente (cada sector), ya sea con una herramienta independiente o durante el formateo. Los datos se destruyen en DOS, OS/2 y Windows cuando se utiliza la opción /L (larga) al formatear y siempre para un conjunto de datos particionados (PDS) en MVS y para sistemas de archivos más nuevos en mainframes IBM.
Se discute si una pasada de relleno de ceros es suficiente para destruir datos sensibles en almacenamiento magnético más antiguo (hasta la década de 1990): Gutmann (conocido por su método Gutmann de 35 pasadas ) afirma que la microscopía de fuerza magnética puede ser capaz de "ver" bits antiguos en un disquete, [34] pero las fuentes que citó no prueban tal cosa. Se cree que el relleno aleatorio es más fuerte que un relleno de patrón fijo. [35] Una pasada de relleno de ceros es suficiente para evitar la remanencia de datos , según NIST (2014) y Wright et al (2008). [36] [37] La opción de borrado seguro incorporada en los discos duros se considera confiable, [27] [38] con la salvedad de que se sabe que las primeras unidades de estado sólido implementan mal la función. [39]
La desmagnetización es eficaz y no genera controversia; sin embargo, puede dejar la unidad inutilizable . [27]
0xE5
es la razón por la que el valor de 0xE5
tiene un significado especial en las entradas de directorio en los sistemas de archivos FAT12 , FAT16 y FAT32 . Esto permitió que 86-DOS utilizara disquetes de 8 pulgadas listos para usar o con solo el FAT inicializado./W:246
(para un valor de llenado de 0xF6
). A diferencia de otras utilidades FDISK , FDISK de DR-DOS no es solo una herramienta de particionamiento, sino que también puede formatear particiones recién creadas como FAT12, FAT16 o FAT32. Esto reduce el riesgo de formatear accidentalmente el volumen incorrecto.Cuando no se especifica la opción RECOMP o LABEL, el área del disco se inicializa escribiendo una cantidad de registros dependiente del dispositivo (que contienen ceros binarios) en cada pista. Se borran todos los datos anteriores del disco.
Los volúmenes de acceso directo, en los que se almacenan los conjuntos de datos de la organización virtual TSS/360, tienen bloques de datos de tamaño de página y longitud fija. No se requiere ningún campo clave. La característica de desbordamiento de registro se utiliza para permitir que los bloques de datos abarquen pistas, según sea necesario. Todo el volumen, con la excepción actual de parte del primer cilindro, que se utiliza para identificación, está formateado en bloques de tamaño de página.
El comportamiento del comando format ha cambiado en Windows Vista. De forma predeterminada en Windows Vista, el comando format escribe ceros en todo el disco cuando se realiza un formateo completo. En Windows XP y en versiones anteriores del sistema operativo Windows, el comando format no escribe ceros en todo el disco cuando se realiza un formateo completo.