Las letras en mkfs
significa "hacer sistema de archivos". El comando se usa comúnmente para administrar dispositivos de almacenamiento en Linux. Puede pensar en mkfs como una herramienta de línea de comandos para formatear un disco en un sistema de archivos específico.
mkfs -t [fs type] [target device]
También puede usar el comando mkfs de la siguiente manera.
mkfs.[fs type] [target device]
En este tutorial, discutiré en general qué es un sistema de archivos. También proporcionaré ejemplos para usar el comando mkfs de manera efectiva.
Dado que el comando mkfs trata con discos y particiones, requiere que sea usuario root o sudo con acceso para ejecutar comandos de administración.
mkfs es una herramienta poderosa. Es importante comprender las posibles consecuencias de alterar el sistema de archivos. Si selecciona el nodo de dispositivo incorrecto, se borrarán todos los datos de ese dispositivo. Use este comando bajo su propio riesgo. Has sido advertido
¿Qué es un sistema de archivos, de nuevo?
Un sistema de archivos (fs) se refiere a la estructura y la lógica que administran los datos en un dispositivo. El sistema de archivos controla cómo se almacenan y recuperan los datos.
Hay muchos tipos de sistemas de archivos y cada uno tiene sus propias ventajas y desventajas. Estos son los tipos de sistemas de archivos más comunes:
- GRASA*
- NTFS
- ext*
- APFS
- HFS*
Probablemente te hayas encontrado con uno o más de estos tipos de sistemas de archivos antes. Incluso puede asociar los tipos con sus respectivos sistemas operativos.
En términos generales, FAT/NTFS están diseñados para Windows, Ext se usa con sistemas Linux y APFS/HFS son sistemas de archivos macOS. Cada uno de estos aborda la lógica de la estructura de archivos de manera diferente, lo que puede generar problemas.
Es por eso que es crucial pensar en esto antes de declarar un tipo de sistema de archivos o "formatear" su dispositivo. Cada caso de uso es diferente y depende de usted decidir qué sistema de archivos funciona mejor para sus necesidades.
ejemplos de comandos mkfs
Déjame mostrarte algunos de los usos más comunes del comando mkfs.
Por favor, no intente ciegamente ninguno de estos comandos en su sistema actual. Formateará el dispositivo de destino/partición de disco borrando todos los datos.
mkfs sin ninguna opción crea sistema de archivos ext2
Si no especifica el tipo de sistema de archivos para el dispositivo de destino, utilizará el sistema de archivos ext2 predeterminado.
sudo mkfs /dev/sdb1
Especificar tipo de archivo con mkfs
Usar ext2 no es muy conveniente ni aconsejable. La mayoría de los sistemas Linux en estos días recomiendan usar ext4. Puede especificar el sistema de archivos de la siguiente manera:
sudo mkfs -t ext4 /dev/sdb1
También puedes usarlo así:
sudo mkfs.ext4 /dev/sdb1
Buscar bloques defectuosos en un dispositivo
También puede comprobar si hay bloques defectuosos en un dispositivo, pero tenga en cuenta que la comprobación suele tardar mucho tiempo.
sudo mkfs -c /dev/sdb1
Consejo extra:compruebe el tipo de sistema de archivos de un dispositivo
Es posible que desee verificar el tipo de sistema de archivos de un dispositivo que acaba de formatear con el comando mkfs. Puede usar el comando de archivo para este propósito.
sudo file -sL /device
Aquí hay un ejemplo que muestra qué tipo de salida podría mostrar:
[email protected]:~$ sudo file -s /dev/nvme0n1p2
/dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UUID=34daa4b7-a2c4-4983-b5cc-df9baa6a6543 (extents) (64bit) (large files) (huge files)
Caso de uso en la vida real:Uso del comando mkfs para crear un archivo Sistema en un dispositivo USB
Ahora que tiene información básica, puede comenzar a usar mkfs.
La demostración más práctica que se me ocurre es formatear una unidad de almacenamiento flash USB. Estos mismos principios se aplicarán a cualquier tipo de almacenamiento que elija.
Encuentra tu dispositivo
Primero necesitarás encontrar tu dispositivo. Un método que puede usar es sudo fdisk -l
. Esto mostrará una lista de todos los nodos de disco que están montados actualmente.
[email protected]:~$ sudo fdisk -l
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3c62c49c
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 4096 1023998 1019903 498M 83 Linux
/dev/sda2 1024000 44036094 43012095 20.5G 83 Linux
/dev/sda3 44036096 52424702 8388607 4G 82 Linux swap / Solaris
Disk /dev/sdb: 28.93 GiB, 31040995328 bytes, 60626944 sectors
Disk model: Patriot Memory
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 91A34D6F-E67B-E54D-B19C-5CC828DAAB9A
Device Start End Sectors Size Type
/dev/sdb1 2048 60626910 60624863 28.9G Linux filesystem
Su salida obviamente variará. Por favor, tenga mucho cuidado al identificar la unidad deseada . Si no está seguro, extraiga el disco y ejecute fdisk -l
comando de nuevo. Si tiene el dispositivo correcto, no aparecerá en la lista mientras esté desconectado.
Verificar la partición
El dispositivo que estoy usando es un Patriot Memory USB y se encuentra en /dev/sdb
. Además de identificar el disco correcto, deberá asegurarse de que está cambiando el archivo fs de la partición deseada.
Usé las herramientas fdisk para eliminar los datos existentes y escribir una nueva tabla de particiones. Mientras hacía eso, creé una nueva partición para escribir. Esa partición será nuestro objetivo:/dev/sdb1
.
Desmontar
Antes de intentar cambiar el sistema de archivos, deberá desmontarlo usando el umount
comando.
[email protected]:~$ sudo umount /dev/sdb1
Crear el sistema de archivos
Ahora que ha verificado su objetivo y desmontado la unidad, puede proceder a crear el sistema de archivos.
He agregado el -v
opción detallada aquí para mostrar más información cuando se ejecuta.
[email protected]:~$ sudo mkfs.ext4 /dev/sdb1 -v
mke2fs 1.45.5 (07-Jan-2020)
fs_types for mke2fs.conf resolution: 'ext4'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1896832 inodes, 7578107 blocks
378905 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2155872256
232 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Filesystem UUID: 73882769-7599-4c79-a00b-ef317ccd921d
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Este proceso puede llevar algún tiempo, pero debe finalizar en menos de 20 minutos, a menos que el objetivo sea mayor a 2 TB.
Tuve varios problemas con el programa pendiente del último elemento. Desafortunadamente, no hay un indicador de progreso y no arrojé ningún error.
Verificar el sistema de archivos recién creado
Primero, verifique el sistema de archivos del dispositivo que acaba de usar. ¿Es el que querías?
sudo file -sL /dev/sdb1
Es importante asegurarse de que el dispositivo sea reconocido en los sistemas con los que lo utilizará. Creé una carpeta llamada test y un archivo dentro llamado test.txt.
Para ahorrar tiempo, puede copiar y pegar mis comandos aquí.
mkdir test && cd test
touch test.txt
echo "THIS IS ONLY A TEST" > test.txt
cat test.txt
Si todo funcionó, debería poder montar la unidad en los sistemas deseados y acceder a los archivos. Si no puede acceder a los archivos de su sistema, probablemente haya un problema de compatibilidad.
Conclusión
Espero que encuentres esta guía rápida de mkfs
comando útil. Si te gusta este tutorial, compártelo en las redes sociales.
Si tiene algún comentario o pregunta, por favor déjelos a continuación. Si tiene alguna sugerencia sobre temas que le gustaría ver cubiertos, siéntase libre de dejarlos también.