Cómo usar el comando mkfs en Linux

Un terminal Linux en una computadora portátil con un escritorio estilo Ubuntu.
Fatmawati Achmad Zaenuri / Shutterstock

Debe crear un sistema de archivos antes de poder utilizar cualquier dispositivo de almacenamiento de datos conectado a una computadora Linux. Aprenda a usar mkfsy otras utilidades para hacer precisamente eso para todo tipo de sistemas de archivos. Te mostramos cómo.

 mkfs Hace que los sistemas de archivos

El mkfscomando crea sistemas de archivos . En otros sistemas operativos, la creación de un sistema de archivos se denomina formateo . Independientemente de su nombre, es el proceso el que prepara una partición para que pueda almacenar datos. La partición necesita una forma de almacenar archivos, sí. Pero también necesita un mecanismo para almacenar los nombres y ubicaciones de esos archivos, junto con sus metadatos, como la marca de tiempo de creación del archivo, la marca de tiempo de modificación del archivo, el tamaño del archivo, etc. Una vez que mkfshaya creado el marco necesario para manejar y almacenar metadatos de archivos, puede comenzar a agregar archivos a la partición.

La sintaxis es muy sencilla. Simplemente diga mkfsla partición del dispositivo en la que desea crear el sistema de archivos y qué tipo de sistema de archivos desea. Eso es a primera vista. Detrás de escena, es un poco diferente. Desde hace algún tiempo, la mayoría de las distribuciones de Linux mkfsha sido un contenedor para mke2fs. El mkfscomando llama al mke2fscomando y le pasa las opciones que ha especificado. El pobre mke2fs hace todo el trabajo pero no recibe la gloria.

La sintaxis de mkfsse ha actualizado y el formato antiguo ha quedado obsoleto. Ambas formas funcionarán, pero usaremos el estilo moderno en este artículo.

La elección de los sistemas de archivos

La forma moderna de usarlo mkfses escribir «mkfs». y luego el nombre del sistema de archivos que desea crear.

Para ver los sistemas de archivos que se mkfs pueden crear, escriba «mkfs» y luego presione la tecla Tab dos veces. No hay espacio después de «mkfs», simplemente presione Tab dos veces.

Lista de sistemas de archivos compatibles en una ventana de terminal

La lista de sistemas de archivos disponibles se muestra en la ventana del terminal. La captura de pantalla es de Ubuntu 18.04 LTS. Otras distribuciones pueden ofrecer más o menos opciones. Repasaremos estos y describiremos cada uno brevemente. Después de unas breves palabras sobre el diario.

El diario es un concepto importante en los sistemas de archivos. Los sistemas de archivos registran las escrituras de archivos pendientes en un diario. A medida que se escribe en cada archivo, el diario se actualiza y los registros de escritura pendientes se actualizan. Esto permite que el sistema de archivos repare archivos rotos y parcialmente escritos que se han producido debido a un evento catastrófico, como un corte de energía. Algunos de los sistemas de archivos más antiguos no admiten el registro por diario. Aquellos que no lo hacen, escriben en el disco con menos frecuencia porque no necesitan actualizar el diario. Pueden funcionar más rápido, pero son más propensos a dañarse debido a la escritura interrumpida de archivos.

  • Ext2 : El primer sistema de archivos para Linux fue el sistema de archivos MINIX. Más tarde fue reemplazado por el primer sistema de archivos escrito específicamente para Linux, que fue  Ext . Ext2 fue el sucesor de Ext . Ext2 no es un sistema de archivos de diario.
  • Ext3 : Este fue el sucesor de Ext2 y se puede considerar como Ext2 con registro en diario, que protege su sistema de archivos de la corrupción de datos causada por fallas y pérdida repentina de energía.
  • Ext4 : Ext4 es el sistema de archivos estándar para muchas distribuciones de Linux. Es un sistema de archivos sólido, probado y confiable. Tiene características que reducen la fragmentación de archivos y se puede usar con unidades, particiones y archivos más grandes que Ext3.
  • BFS : este es el sistema de archivos de inicio , que está diseñado para un trabajo y solo uno: manejar los archivos en la partición de inicio. Es raro que esté creando un sistema de archivos de arranque a mano. Su proceso de instalación de Linux hará esto por usted.
  • FAT : El sistema de archivos File Allocation Table fue diseñado para disquetes por un consorcio de pesos pesados ​​de la industria informática. Fue introducido en 1977. La única razón por la que utilizaría este sistema de archivos sin registro diario es por compatibilidad con sistemas operativos que no son Linux.
  • NTFS : el sistema de archivos de nueva tecnología es un sistema de archivos de diario de Microsoft introducido con Windows NT. Fue el sucesor de FAT. La única razón por la que utilizaría este sistema de archivos es por compatibilidad con sistemas operativos que no son Linux.
  • MINIX : creado originalmente por Andrew S. Tanenbaum como ayuda educativa, MINIX es un sistema operativo «mini-Unix». Hoy en día, tiene como objetivo proporcionar un sistema operativo autocurativo y tolerante a fallos . El sistema de archivos MINIX fue diseñado como una versión simplificada del sistema de archivos Unix . Quizás si está realizando un desarrollo cruzado en una computadora Linux y tiene como objetivo una plataforma MINIX, puede usar este sistema de archivos. O tal vez necesite compatibilidad con una computadora MINIX por otras razones. Los casos de uso para este sistema de archivos en una computadora Linux no me están saltando, pero está disponible.
  • VFAT : Virtual File Allocation Table , se introdujo con Windows 95 y eliminó el límite de ocho caracteres para los nombres de archivo. Se hicieron posibles nombres de archivo de hasta 255 caracteres. La única razón por la que utilizaría este sistema de archivos es por compatibilidad con sistemas operativos que no son Linux.
  • CRAMFS : el sistema de archivos de ROM comprimida es un sistema de archivos de solo lectura diseñado para sistemas integrados y usos especializados de solo lectura, como en los procesos de arranque de las computadoras Linux. Es común tener un sistema de archivos pequeño y transitorio cargado primero para que los procesos de arranque se puedan iniciar para prepararse para el montaje del sistema de arranque «real».
  • MSDOS : el sistema de archivos del sistema operativo de disco de Microsoft . Lanzado en 1981, es un sistema de archivos elemental que es lo más básico posible. La primera versión ni siquiera tenía directorios. Ocupa un lugar destacado en la historia de la informática pero, más allá de la compatibilidad con sistemas heredados, hay pocas razones para usarlo hoy.
Relacionado:  Cómo echar un vistazo a los archivos binarios desde la línea de comandos de Linux

Una forma segura de experimentar con sistemas de archivos

La creación de un sistema de archivos en una partición es destructivo para cualquier dato que ya pueda residir en esa partición. Usar un disco duro de repuesto, o incluso una computadora de repuesto, es la manera perfecta de experimentar con la creación y el uso de diferentes sistemas de archivos. Pero, por supuesto, muchas personas no tienen hardware de repuesto a la espera de ser experimentado.

Sin embargo, podemos crear un archivo de imagen y crear sistemas de archivos dentro de él. Una vez que lo montamos, podemos usarlo como si fuera una partición normal. Podemos explorar y experimentar con sistemas de archivos sin necesidad de hardware adicional. Usaremos el ddcomando para crear nuestro archivo de imagen .

El archivo de imagen se crea tomando datos de origen y poniéndolos en una imagen. Necesitamos decir dddónde obtener sus datos de origen. Usaremos la ifopción (archivo de entrada) para indicarle ddque use / dev / zero como fuente de datos de entrada. Esta será una secuencia de ceros.

La ofopción (archivo de salida) nos permite proporcionar un nombre para el archivo de imagen. Lo llamaremos «howtogeek.img».

El tamaño del archivo de imagen está determinado por el tamaño y la cantidad de bloques que le agregamos. Estamos usando la bsopción (tamaño de bloque) para solicitar un tamaño de bloque de 1 MB y la count opción para solicitar 250 bloques. Esto nos dará un sistema de archivos de 250 MB. Cuando emita este comando, ajuste la cantidad de bloques para satisfacer sus necesidades y la capacidad de reserva que tiene en su computadora Linux.

dd if = / dev / zero of = ~ / howtogeek.img bs = recuento de 1M = 250

dd if = / dev / zero of = ~ / howtogeek.img bs = recuento de 1M = 250

El archivo se crea para nosotros e ddinforma que se crearon 250 bloques para nosotros, según lo solicitado.

Relacionado:  Cómo trabajar con paquetes Snap en Linux

Salida del comando dd en una ventana de terminal

Podemos mirar nuestro archivo de imagen con ls:

ls -hl

ls -hl en una ventana de terminal

Son 250 MB como se esperaba, lo cual es alentador.

Crear el sistema de archivos

Elijamos un sistema de archivos para usar. Regresaremos en el tiempo y usaremos Ext2, que es la versión más antigua de Ext que mkfspuede crear esta implementación . Este es un sistema de archivos sin registro en diario, así que no almacene nada valioso en él sin tener copias de seguridad en otro lugar. Usamos la mkfs.ext2variante del mkfscomando y le decimos que use nuestro archivo de imagen como objetivo.

mkfs.ext2 ~ / howtogeek.img

mkfs.ext2 ~ / howtogeek.img en una ventana de terminal

Se crea el sistema de archivos y se muestran algunos detalles del sistema de archivos.

Salida del comando mkfs.ext2 en una ventana de terminal

Como puede ver en el texto resaltado, mke2fsaparece.

Ahora tenemos un contenedor para el sistema de archivos, el archivo de imagen, que sustituye a un disco duro en este escenario. Dentro de ese contenedor, hemos creado un sistema de archivos. Ahora necesitamos montar el sistema de archivos para poder usarlo.

Esta es una configuración temporal, por lo que crearemos un punto de montaje dentro de / mnt llamado «geek». Lo eliminaremos cuando hayamos terminado.

sudo mkdir / mnt / geek

mkfs.ext2 ~ / howtogeek.img en una ventana de terminal

Ahora podemos montar nuestro archivo de imagen.

sudo mount ~ / howtogeek.img / mnt / geek

mkfs.ext2 ~ / howtogeek.img en una ventana de terminal

Necesitamos cambiar la propiedad del archivo del punto de montaje para que tengamos acceso de lectura y escritura.

sudo chown dave: usuarios / mnt / geek /

sudo chown dave: users / mnt / geek / en una ventana de terminal

Y ahora deberíamos poder usar nuestro nuevo sistema de archivos. Cambiemos al sistema de archivos y copiemos algunos archivos en él.

cd / mnt / geek
cp ~ / Documentos / Código / *.? .

cp ~ / Documentos / Código / *.?  .  en una ventana de terminal

Esto copiará todos los archivos con una extensión de una sola letra desde el directorio ~ / Documents / Code a nuestro nuevo sistema de archivos. Comprobemos que fueron copiados.

ls

está en una ventana de terminal

Los archivos se han copiado, por lo que nuestro sistema de archivos se ha creado, montado y utilizado. O eso creemos. Comprobemos dos veces. Desde nuestro directorio de inicio, desmontaremos el sistema de archivos . Tenga en cuenta que solo hay una «n» en umount .

sudo umount / mnt / geek

sudo umount / mnt / geek en una ventana de terminal

Ahora, si volvemos a / mnt / geek y buscamos archivos, no deberíamos encontrar ninguno porque están dentro de nuestro archivo de imagen, y eso ha sido desmontado.

cd / mnt / geek
ls

cd / mnt / geek en una ventana de terminal

Exploración adicional

Ahora que hemos resuelto el proceso, probar otro sistema de archivos debería ser fácil. Usaremos el sistema de archivos MINIX esta vez. En nuestro directorio de inicio, podemos crear un nuevo sistema de archivos dentro de nuestro archivo de imagen existente.

Relacionado:  Cómo pausar un script Bash con el comando de suspensión de Linux

¡Ten cuidado!  Si hay archivos importantes en el sistema de archivos dentro del archivo de imagen, monte el archivo de imagen y recupérelos  antes de crear un nuevo sistema de archivos.

mkfs.minix ~ / howtogeek.image

mkfs.minix ~ / howtogeek.image en una ventana de terminal

Sin ningún indicio de preguntarle «si está seguro», el nuevo sistema de archivos se crea sobre el anterior. Podemos montar nuestro archivo de imagen con exactamente el mismo comando que antes:

sudo mount ~ / howtogeek.img / mnt / geek

sudo mount ~ / howtogeek.img / mnt / geek en una ventana de terminal

Cambiemos al nuevo sistema de archivos en / mnt / geek y veamos si podemos crear un archivo.

toque geek.txt

toque geek.txt en una ventana de terminal

ls -ahl geek.txt

ls -ahl geek.txt en una ventana de terminal

Y, tan simple y rápido como eso, hemos creado un nuevo sistema de archivos, lo montamos y podemos usarlo.

Retirar el punto de montaje

Cuando haya terminado, podemos eliminar el punto de montaje «geek». Para hacer eso usaremos rmdir :

cd / mnt
sudo rmdir geek

sudo rmdir geek en una ventana de terminal

Malabares con fuego

Con Linux, como con la mayoría de las cosas, aprendes haciendo. El problema con algunos comandos es que son potencialmente destructivos. El dilema es cómo practicar su uso sin poner en riesgo su sistema o sus datos.

Ahora tiene un método simple para crear y probar sistemas de archivos mkfsque deja su computadora intacta.