104.1 Lección 1
Certificación: |
LPIC-1 |
---|---|
Versión: |
5.0 |
Tema: |
104 Dispositivos, sistemas de archivos Linux, estándar de jerarquía del sistema de archivos |
Objetivo: |
104.1 Crear particiones y sistemas de archivos |
Lección: |
1 de 1 |
Introducción
En cualquier sistema operativo, es necesario particionar un disco antes de poder usarlo. Una partición es un subconjunto lógico del disco físico y la información sobre las particiones se almacena en una tabla de particiones. Esta tabla incluye información sobre el primer y último sector de la partición y su tipo, y más detalles sobre cada partición.
Por lo general, un sistema operativo considera cada partición como un “disco” separado, incluso si todas residen en el mismo medio físico. En los sistemas Windows se les asignan letras como C:
(históricamente el disco principal), D:
y así sucesivamente. En Linux, cada partición se asigna a un directorio en /dev
, como /dev/sda1
o /dev/sda2
.
En esta lección, aprenderá cómo crear, eliminar, restaurar y cambiar el tamaño de las particiones usando las tres utilidades más comunes (fdisk
, gdisk
y parted
), cómo crear un sistema de archivos en ellas y cómo crear y configurar una partición de intercambio o archivo de intercambio para usar como memoria virtual.
Note
|
Por razones históricas, a lo largo de esta lección nos referiremos a los medios de almacenamiento como “discos”, aunque los sistemas de almacenamiento modernos, como los SSD y el almacenamiento Flash, no contienen ningún “disco” en absoluto. |
Comprensión de MBR y GPT
Hay dos formas principales de almacenar información de partición en discos duros. El primero es MBR (Master Boot Record) y el segundo es GPT (GUID Partition Table).
- MBR
-
Este es un remanente de los primeros días de MS-DOS (más específicamente, PC-DOS 2.0 de 1983) y durante décadas fue el esquema de particionamiento estándar en las PC. La tabla de particiones se almacena en el primer sector del disco, llamado Boot Sector, junto con un cargador de arranque, que en los sistemas Linux suele ser el GRUB. Pero MBR tiene una serie de limitaciones que dificultan su uso en sistemas modernos, como la imposibilidad de utilizar discos de más de 2 TB de tamaño y el límite de solo 4 particiones primarias por disco.
- GUID
-
Un sistema de particiones que aborda muchas de las limitaciones de MBR. No existe un límite práctico en el tamaño del disco, y el número máximo de particiones está limitado solo por el propio sistema operativo. Se encuentra más comúnmente en máquinas más modernas que usan UEFI en lugar del antiguo BIOS de PC.
Durante las tareas de administración del sistema es muy posible que encuentre ambos esquemas en uso, por lo que es importante saber cómo usar las herramientas asociadas a cada uno para crear, eliminar o modificar particiones.
Gestión de particiones MBR con FDISK
La utilidad estándar para administrar particiones MBR en Linux es fdisk
. Esta es una utilidad interactiva basada en menús. Para usarlo, teclee fdisk
seguido del nombre del dispositivo correspondiente al disco que desea editar. Por ejemplo, el comando
# fdisk /dev/sda
editaría la tabla de particiones del primer dispositivo conectado a SATA (sda
) en el sistema. Tenga en cuenta que debe especificar el dispositivo correspondiente al disco físico, no una de sus particiones (como /dev/sda1
).
Note
|
Todas las operaciones relacionadas con el disco en esta lección deben realizarse como el usuario |
Cuando se invoca, fdisk
mostrará un saludo, luego una advertencia y esperará sus comandos.
# fdisk /dev/sda Welcome to fdisk (util-linux 2.33.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help):
La advertencia es importante. Puede crear, editar o eliminar particiones a voluntad, pero no se escribirá nada en el disco a menos que utilice el comando write (w
). Por lo tanto, puede “practicar” sin riesgo de perder datos, siempre que se mantenga alejado de la tecla w
. Para salir de fdisk
sin guardar los cambios, use el comando q
.
Note
|
Dicho esto, nunca debe practicar con un disco importante, ya que siempre existen riesgos. Utilice un disco externo de repuesto o una unidad flash USB. |
Impresión de la tabla de particiones actual
El comando p
se usa para imprimir la tabla de particiones actual. La salida sería algo como esto:
Command (m for help): p Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Disk model: CT120BX500SSD1 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: 0x97f8fef5 Device Boot Start End Sectors Size Id Type /dev/sda1 4096 226048942 226044847 107.8G 83 Linux /dev/sda2 226048944 234437550 8388607 4G 82 Linux swap / Solaris
Aquí está el significado de cada columna:
Device
-
El dispositivo asignado a la partición.
Boot
-
Muestra si la partición es “de arranque” o no.
Start
-
El sector donde comienza la partición.
End
-
El sector donde termina la partición.
Sectors
-
El número total de sectores en la partición. Multiplíquelo por el tamaño del sector para obtener el tamaño de la partición en bytes.
Size
-
El tamaño de la partición en formato “legible por humanos”. En el ejemplo anterior, los valores están en gigabytes.
Id
-
El valor numérico que representa el tipo de partición.
Type
-
La descripción del tipo de partición.
Particiones primarias vs extendidas
En un disco MBR, puede tener 2 tipos principales de particiones, primarias y extendidas. Como dijimos antes, solo puede tener 4 particiones primarias en el disco, y si desea que el disco sea “de arranque”, la primera partición debe ser primaria.
Una forma de evitar esta limitación es crear una partición extendida que actúe como contenedor de particiones lógicas. Podría tener, por ejemplo, una partición primaria, una partición extendida que ocupa el resto del espacio en disco y cinco particiones lógicas dentro de ella.
Para un sistema operativo como Linux, las particiones primarias y extendidas se tratan exactamente de la misma manera, por lo que no hay “ventajas” de usar una sobre la otra.
Crear una partición
Para crear una partición, use el comando n
. De forma predeterminada, las particiones se crearán al comienzo del espacio no asignado en el disco. Se le pedirá el tipo de partición (primaria o extendida), primer sector y último sector.
Para el primer sector, normalmente puede aceptar el valor predeterminado sugerido por fdisk
, a menos que necesite una partición para comenzar en un sector específico. En lugar de especificar el último sector, puede especificar un tamaño seguido de las letras K
, M
, G
, T
o P
(Kilo, Mega, Giga, Tera o Peta). Por lo tanto, si desea crear una partición de 1 GB, puede especificar +1G
como el Último sector
y fdisk
dimensionará la partición en consecuencia. Vea este ejemplo para la creación de una partición primaria:
Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-3903577, default 2048): 2048 Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3903577, default 3903577): +1G
Comprobación de espacio no asignado
Si no sabe cuánto espacio libre hay en el disco, puede usar el comando F
para mostrar el espacio no asignado, así:
Command (m for help): F Unpartitioned space /dev/sdd: 881 MiB, 923841536 bytes, 1804378 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes Start End Sectors Size 2099200 3903577 1804378 881M
Eliminar particiones
Para eliminar una partición, use el comando d
. fdisk
le pedirá el número de la partición que desea eliminar, a menos que haya sólo una partición en el disco. En este caso, esta partición será seleccionada y eliminada inmediatamente.
Tenga en cuenta que si elimina una partición extendida, también se eliminarán todas las particiones lógicas que contiene.
¡Cuidado con la brecha!
Tenga en cuenta que al crear una nueva partición con fdisk
, el tamaño máximo se limitará a la cantidad máxima de espacio contiguo no asignado en el disco. Digamos, por ejemplo, que tiene el siguiente mapa de particiones:
Device Boot Start End Sectors Size Id Type /dev/sdd1 2048 1050623 1048576 512M 83 Linux /dev/sdd2 1050624 2099199 1048576 512M 83 Linux /dev/sdd3 2099200 3147775 1048576 512M 83 Linux
Luego borra la partición 2 y comprueba si hay espacio libre:
Command (m for help): F Unpartitioned space /dev/sdd: 881 MiB, 923841536 bytes, 1804378 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes Start End Sectors Size 1050624 2099199 1048576 512M 3147776 3903577 755802 369M
Sumando el tamaño del espacio no asignado, en teoría tenemos 881 MB disponibles. Pero visualice lo que sucede cuando intentamos crear una partición de 700 MB:
Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): p Partition number (2,4, default 2): 2 First sector (1050624-3903577, default 1050624): Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-2099199, default 2099199): +700M Value out of range.
Eso sucede porque el espacio contiguo no asignado más grande en el disco es el bloque de 512 MB que pertenecía a la partición 2. Su nueva partición no puede “pasar” la partición 3 para usar parte del espacio no asignado después de ella.
Cambiar el tipo de partición
En ocasiones, es posible que deba cambiar el tipo de partición, especialmente cuando se trata de discos que se utilizarán en otros sistemas operativos y plataformas. Esto se hace con el comando t
, seguido del número de la partición que desea cambiar.
El tipo de partición debe ser especificado por su código hexadecimal correspondiente, y puede ver una lista de todos los códigos válidos usando el comando l
.
No confunda el tipo de partición con el sistema de archivos que se utiliza en ella. Aunque al principio existía una relación entre ellos, hoy no se puede asumir que esto sea cierto. Una partición de Linux, por ejemplo, puede contener cualquier sistema de archivos nativo de Linux, como ext4 o ReiserFS.
Tip
|
Las particiones de Linux son del tipo |
Administrar particiones GUID con GDISK
La utilidad gdisk
es el equivalente a fdisk
cuando se trata de discos particionados GPT. De hecho, la interfaz está modelada a partir de fdisk
, con un indicador interactivo y los mismos (o muy similares) comandos.
Impresión de la tabla de particiones actual
El comando p
se usa para imprimir la tabla de particiones actual. La salida sería algo como esto:
Command (? for help): p Disk /dev/sdb: 3903578 sectors, 1.9 GiB Model: DataTraveler 2.0 Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): AB41B5AA-A217-4D1E-8200-E062C54285BE Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 3903544 Partitions will be aligned on 2048-sector boundaries Total free space is 1282071 sectors (626.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2623488 3147775 256.0 MiB 8300 Linux filesystem
Desde el principio, notamos algunas cosas diferentes:
-
Cada disco tiene un identificador de disco (GUID) único. Este es un número hexadecimal de 128 bits, asignado al azar cuando se crea la tabla de particiones. Dado que hay 3.4 × 1038 valores posibles para este número, las posibilidades de que 2 discos aleatorios tengan el mismo GUID son bastante escasas. El GUID se puede usar para identificar qué sistemas de archivos montar en el momento del arranque (y dónde), eliminando la necesidad de usar la ruta del dispositivo para hacerlo (como
/dev/sdb
). -
¿Ve la frase
Partition table holds up to 128 entries
? Así es, puede tener hasta 128 particiones en un disco GPT. Debido a esto, no hay necesidad de particiones primarias y extendidas. -
El espacio libre aparece en la última línea, por lo que no es necesario un equivalente del comando
F
defdisk
.
Crear una partición
El comando para crear una partición es n
, al igual que en fdisk
. La principal diferencia es que además del número de partición y el primer y último sector (o tamaño), también puede especificar el tipo de partición durante la creación. Las particiones GPT admiten muchos más tipos que MBR. Puede consultar una lista de todos los tipos admitidos mediante el comando l
.
Eliminar particiones
Para eliminar una partición, escriba d
y el número de partición. A diferencia de fdisk
, la primera partición no se seleccionará automáticamente si es la única en el disco.
En los discos GPT, las particiones se pueden reordenar u “ordenar” fácilmente para evitar huecos en la secuencia de numeración. Para hacer esto, simplemente use el comando s
. Por ejemplo, imagine un disco con la siguiente tabla de particiones:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2099200 2361343 128.0 MiB 8300 Linux filesystem 3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Si elimina la segunda partición, la tabla se convertiría en:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Si usa el comando s
, se convertiría en:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2361344 2623487 128.0 MiB 8300 Linux filesystem
Observe que la tercera partición se convirtió en la segunda.
¿Brecha? ¿Qué brecha?
A diferencia de los discos MBR, al crear una partición en discos GPT, el tamaño no está limitado por la cantidad máxima de espacio contiguo no asignado. Puede utilizar hasta el último bit de un sector libre, sin importar dónde se encuentre en el disco.
Opciones de recuperación
Los discos GPT almacenan copias de seguridad del encabezado GPT y la tabla de particiones, lo que facilita la recuperación de discos en caso de que estos datos se hayan dañado. gdisk
proporciona funciones para ayudar en esas tareas de recuperación, a las que se accede con el comando r
.
Puede reconstruir un encabezado GPT principal corrupto o una tabla de particiones con b
y c
, respectivamente, o usar el encabezado principal y la tabla para reconstruir una copia de seguridad con d
y e
. También puede convertir un MBR a GPT con f
y hacer lo contrario con g
, entre otras operaciones. Escriba ?
En el menú de recuperación para obtener una lista de todos los comandos de recuperación disponibles y descripciones sobre lo que hacen.
Creación de sistemas de archivos
Particionar el disco es solo el primer paso para poder usar un disco. Después de eso, deberá formatear la partición con un sistema de archivos antes de usarla para almacenar datos.
Un sistema de archivos controla cómo se almacenan los datos y cómo se accede a ellos en el disco. Linux admite muchos sistemas de archivos, algunos nativos, como la familia ext (Extended Filesystem), mientras que otros provienen de otros sistemas operativos como FAT de MS-DOS, NTFS de Windows NT, HFS y HFS+ de Mac OS, etc.
La herramienta estándar utilizada para crear un sistema de archivos en Linux es mkfs
, que viene en muchos “sabores” según el sistema de archivos con el que necesita trabajar.
Creación de un sistema de archivos ext2/ext3/ext4
El Sistema de archivos extendido (ext) fue el primer sistema de archivos para Linux, y a través de los años fue reemplazado por nuevas versiones llamadas ext2, ext3 y ext4, que actualmente es el sistema de archivos predeterminado para muchas distribuciones de Linux.
Las utilidades mkfs.ext2
, mkfs.ext3
y mkfs.ext4
se utilizan para crear sistemas de archivos ext2, ext3 y ext4 respectivamente. De hecho, todas estas “utilidades” existen sólo como enlaces simbólicos a otra utilidad llamada mke2fs
. mke2fs
modifica sus valores predeterminados de acuerdo con el nombre por el que se le llama. Como tal, todos tienen el mismo comportamiento y parámetros de línea de comando.
La forma de uso más sencilla es:
# mkfs.ext2 TARGET
Donde TARGET
es el nombre de la partición donde se debe crear el sistema de archivos. Por ejemplo, para crear un sistema de archivos ext3 en /dev/sdb1
el comando sería:
# mkfs.ext3 /dev/sdb1
En lugar de usar el comando correspondiente al sistema de archivos que desea crear, puede pasar el parámetro -t
a mke2fs
seguido del nombre del sistema de archivos. Por ejemplo, los siguientes comandos son equivalentes y crearán un sistema de archivos ext4 en /dev/sdb1
.
# mkfs.ext4 /dev/sdb1 # mke2fs -t ext4 /dev/sdb1
Parámetros de línea de comandos
mke2fs
admite una amplia gama de opciones y parámetros de línea de comandos. Éstos son algunos de los más importantes. Todos ellos también se aplican a mkfs.ext2
, mkfs.ext3
y mkfs.ext4
:
-b SIZE
-
Establece el tamaño de los bloques de datos en el dispositivo en
SIZE
, que puede ser de 1024, 2048 o 4096 bytes por bloque. -c
-
Comprueba el dispositivo de destino en busca de bloques defectuosos antes de crear el sistema de archivos. Puede ejecutar una comprobación completa, pero mucho más lenta, pasando este parámetro dos veces, como en
mkfs.ext4 -c -c TARGET
. -d DIRECTORY
-
Copia el contenido del directorio especificado en la raíz del nuevo sistema de archivos. Útil si necesita “rellenar previamente” el disco con un conjunto predefinido de archivos.
-F
-
¡Peligro, Will Robinson! Esta opción forzará mke2fs a crear un sistema de archivos, incluso si las otras opciones pasadas a él o al objetivo son peligrosas o no tienen ningún sentido. Si se especifica dos veces (como en
-F -F
), incluso se puede usar para crear un sistema de archivos en un dispositivo que está montado o en uso, lo cual es muy, muy malo. -L VOLUME_LABEL
-
Establecerá la etiqueta de volumen en la especificada en
VOLUME_LABEL
. Esta etiqueta debe tener un máximo de 16 caracteres. -n
-
Esta es una opción realmente útil que simula la creación del sistema de archivos y muestra lo que se haría si se ejecutara sin la opción
n
. Piense en ello como un modo de “prueba”. Es bueno comprobar las cosas antes de realizar cambios en el disco. -q
-
Modo silencioso.
mke2fs
se ejecutará normalmente, pero no producirá ninguna salida en la terminal. Útil cuando se ejecutamke2fs
desde un script. -U ID
-
Esto establecerá el UUID (Universally Unique Identifier) de una partición en el valor especificado como ID. Los UUID son números de 128 bits en notación hexadecimal que sirven para identificar de forma única una partición en el sistema operativo. Este número se especifica como una cadena de 32 dígitos en el formato 8-4-4-4-12, es decir, 8 dígitos, guión, 4 dígitos, guión, 4 dígitos, guión, 4 dígitos, guión, 12 dígitos, como
D249E380-7719-45A1-813C-35186883987E
. En lugar de un ID, también puede especificar parámetros comoclear
para borrar el UUID del sistema de archivos,random
, para usar un UUID generado aleatoriamente otime
para crear un UUID basado en el tiempo. -V
-
Modo detallado, imprime mucha más información durante el funcionamiento de lo habitual. Útil para fines de depuración.
Creación de un sistema de archivos XFS
XFS es un sistema de archivos de alto rendimiento desarrollado originalmente por Silicon Graphics en 1993 para su sistema operativo IRIX. Debido a sus características de rendimiento y confiabilidad, se usa comúnmente para servidores y otros entornos que requieren un ancho de banda alto (o garantizado) del sistema de archivos.
Las herramientas para administrar sistemas de archivos XFS son parte del paquete xfsprogs
. Es posible que este paquete deba instalarse manualmente, ya que no se incluye de forma predeterminada en algunas distribuciones de Linux. Otros, como Red Hat Enterprise Linux 7, usan XFS como sistema de archivos predeterminado.
Los sistemas de archivos XFS se dividen en al menos 2 partes, una sección de registro donde se mantiene un registro de todas las operaciones del sistema de archivos (comúnmente llamado Journal) y la sección de datos. La sección de registro puede estar ubicada dentro de la sección de datos (el comportamiento predeterminado), o incluso en un disco separado por completo, para un mejor rendimiento y confiabilidad.
El comando más básico para crear un sistema de archivos XFS es mkfs.xfs TARGET
, donde TARGET
es la partición en la que desea que se cree el sistema de archivos. Por ejemplo: mkfs.xfs /dev/sda1
.
Como en mke2fs
, mkfs.xfs
admite una serie de opciones de línea de comandos. Éstos son algunas de las más comunes.
-b size=VALUE
-
Establece el tamaño de bloque en el sistema de archivos, en bytes, al especificado en
VALUE
. El valor predeterminado es 4096 bytes (4 KiB), el mínimo es 512 y el máximo es 65536 (64 KiB). -m crc=VALUE
-
Los parámetros que comienzan con
-m
son opciones de metadatos. Éste habilita (siVALUE
es1
) o deshabilita (siVALUE
es0
) el uso de comprobaciones CRC32c para verificar la integridad de todos los metadatos en el disco. Esto permite una mejor detección de errores y recuperación de fallas relacionadas con problemas de hardware, por lo que está habilitado de forma predeterminada. El impacto en el rendimiento de esta comprobación debería ser mínimo, por lo que normalmente no hay razón para desactivarlo. -m uuid=VALUE
-
Establece el UUID de la partición al especificado como VALUE. Recuerde que los UUID son números de 32 caracteres (128 bits) en base hexadecimal, especificados en grupos de 8, 4, 4, 4 y 12 dígitos separados por guiones, como
1E83E3A3-3AE9-4AAC-BF7E-29DFFECD36C0
. -f
-
Forzar la creación de un sistema de archivos en el dispositivo de destino incluso si se detecta un sistema de archivos en él.
-l logdev=DEVICE
-
Esto colocará la sección de registro del sistema de archivos en el dispositivo especificado, en lugar de dentro de la sección de datos.
-l size=VALUE
-
Esto establecerá el tamaño de la sección de registro en el especificado en
VALUE
. El tamaño se puede especificar en bytes y se pueden utilizar sufijos comom
og
.-l size=10m
, por ejemplo, limitará la sección de registro a 10 Megabytes. -q
-
Modo silencioso. En este modo,
mkfs.xfs
no imprimirá los parámetros del sistema de archivos que se está creando. -L LABEL
-
Establece la etiqueta del sistema de archivos, que puede tener un máximo de 12 caracteres.
-N
-
Similar al parámetro
-n
demke2fs
, hará quemkfs.xfs
imprima todos los parámetros para la creación del sistema de archivos, sin crearlo realmente.
Creación de un sistema de archivos FAT o VFAT
El sistema de archivos FAT se originó a partir de MS-DOS y, a lo largo de los años, ha recibido muchas revisiones que culminaron con el formato FAT32 lanzado en 1996 con Windows 95 OSR2.
VFAT es una extensión del formato FAT16 que admite nombres de archivo largos (hasta 255 caracteres). Ambos sistemas de archivos son manejados por la misma utilidad, mkfs.fat
. mkfs.vfat
es un alias.
El sistema de archivos FAT tiene importantes inconvenientes que restringen su uso en discos grandes. FAT16, por ejemplo, admite volúmenes de 4 GB como máximo y un tamaño de archivo máximo de 2 GB. FAT32 aumenta el tamaño del volumen hasta 2 PB y el tamaño máximo del archivo hasta 4 GB. Debido a esto, los sistemas de archivos FAT se utilizan hoy con más frecuencia en unidades flash pequeñas o tarjetas de memoria (de hasta 2 GB de tamaño), o en dispositivos y sistemas operativos heredados que no admiten sistemas de archivos más avanzados.
El comando más básico para la creación de un sistema de archivos FAT es mkfs.fat TARGET
, donde TARGET
es la partición en la que desea que se cree el sistema de archivos. Por ejemplo: mkfs.fat /dev/sdc1
.
Como otras utilidades, mkfs.fat
soporta una serie de opciones de línea de comandos. A continuación se muestran los más importantes. Se puede leer una lista completa y una descripción de cada opción en el manual de la utilidad, con el comando man mkfs.fat
.
-c
-
Comprueba el dispositivo de destino en busca de bloques defectuosos antes de crear el sistema de archivos.
-C FILENAME BLOCK_COUNT
-
Creará el archivo especificado en
FILENAME
y luego creará un sistema de archivos FAT dentro de él, creando efectivamente una “imagen de disco” vacía, que luego puede escribirse en un dispositivo usando una utilidad comodd
o montarse como un loopback dispositivo. Al usar esta opción, el número de bloques en el sistema de archivos (BLOCK_COUNT
) debe especificarse después del nombre del dispositivo. -F SIZE
-
Selecciona el tamaño de la FAT (File Allocation Table), entre 12, 16 o 32, es decir, entre FAT12, FAT16 o FAT32. Si no se especifica,
mkfs.fat
seleccionará la opción apropiada según el tamaño del sistema de archivos. -n NAME
-
Establece la etiqueta de volumen, o el nombre, para el sistema de archivos. Puede tener hasta 11 caracteres y el valor predeterminado es sin nombre.
-v
-
Modo detallado. Imprime mucha más información de la habitual, útil para depurar.
Note
|
|
Creación de un sistema de archivos exFAT
exFAT es un sistema de archivos creado por Microsoft en 2006 que aborda una de las limitaciones más importantes de FAT32: el tamaño del archivo y del disco. En exFAT, el tamaño máximo de archivo es de 16 exabytes (desde 4 GB en FAT32) y el tamaño máximo del disco es de 128 petabytes.
Como es compatible con los tres principales sistemas operativos (Windows, Linux y mac OS), es una buena opción donde se necesita interoperabilidad, como en unidades flash de gran capacidad, tarjetas de memoria y discos externos. De hecho, es el sistema de archivos predeterminado, según lo define la SD Association, para tarjetas de memoria SDXC de más de 32 GB.
La utilidad predeterminada para crear sistemas de archivos exFAT es mkfs.exfat
, que es un enlace a mkexfatfs
. El comando más básico es mkfs.exfat TARGET
, donde TARGET
es la partición en la que desea que se cree el sistema de archivos. Por ejemplo: mkfs.exfat /dev/sdb2
.
Al contrario de las otras utilidades discutidas en esta lección, mkfs.exfat
tiene muy pocas opciones de línea de comandos. Son:
-i VOL_ID
-
Establece el ID de volumen en el valor especificado en
VOL_ID
. Este es un número hexadecimal de 32 bits. Si no está definido, se establece una ID basada en la hora actual. -n NAME
-
Establece la etiqueta de volumen o el nombre. Puede tener hasta 15 caracteres y el valor predeterminado es sin nombre.
-p SECTOR
-
Especifica el primer sector de la primera partición del disco. Este es un valor opcional y el predeterminado es cero.
-s SECTORS
-
Define el número de sectores físicos por grupo de asignación. Debe ser una potencia de dos, como 1, 2, 4, 8, etc.
Familiarización con el sistema de archivos Btrfs
Btrfs (oficialmente el B-Tree Filesystem, pronunciado como “Butter FS”, “Better FS” o incluso “Butterfuss”, su elección) es un sistema de archivos que ha estado en desarrollo desde 2007 específicamente para Linux por el Oracle Corporation y otras empresas, incluidas Fujitsu, Red Hat, Intel y SUSE, entre otras.
Hay muchas características que hacen que Btrfs sea atractivo en sistemas modernos donde son comunes grandes cantidades de almacenamiento. Entre estos se encuentran el soporte para múltiples dispositivos (incluyendo la creación de bandas, la duplicación y la creación de bandas+duplicación, como en una configuración RAID), compresión transparente, optimizaciones de SSD, copias de seguridad incrementales, instantáneas, desfragmentación en línea, comprobaciones fuera de línea, compatibilidad con subvolúmenes (con cuotas), deduplicación y mucho más.
Como es un sistema de archivos copy-on-write, es muy resistente a los bloqueos. Y además de eso, Btrfs es fácil de usar y está bien soportado por muchas distribuciones de Linux. Y algunos de ellos, como SUSE, lo utilizan como sistema de archivos predeterminado.
Note
|
En un sistema de archivos tradicional, cuando desea sobrescribir parte de un archivo, los datos nuevos se colocan directamente sobre los datos antiguos que están reemplazando. En un sistema de archivos copy-on-write, los nuevos datos se escriben en el espacio libre en el disco, luego los metadatos originales del archivo se actualizan para hacer referencia a los nuevos datos y solo entonces se liberan los datos antiguos, porque ya no son necesarios. Esto reduce las posibilidades de pérdida de datos en caso de una falla, ya que los datos antiguos solo se descartan después de que el sistema de archivos esté absolutamente seguro de que ya no se necesitan y los nuevos datos están en su lugar. |
Creación de un sistema de archivos Btrfs
La utilidad mkfs.btrfs
se utiliza para crear un sistema de archivos Btrfs. Usar el comando sin ninguna opción crea un sistema de archivos Btrfs en un dispositivo dado, así:
# mkfs.btrfs /dev/sdb1
Tip
|
Si no tiene la utilidad |
Puede usar la -L
para establecer una etiqueta (o nombre) para su sistema de archivos. Las etiquetas Btrfs pueden tener hasta 256 caracteres, excepto para las nuevas líneas:
# mkfs.btrfs /dev/sdb1 -L "New Disk"
Tip
|
Incluya la etiqueta entre comillas (como arriba) si contiene espacios. |
Tenga en cuenta este aspecto peculiar de Btrfs: puede pasar múltiples dispositivos al comando mkfs.btrfs
. Pasar más de un dispositivo abarcará el sistema de archivos sobre todos los dispositivos, lo que es similar a una configuración RAID o LVM. Para especificar cómo se distribuirán los metadatos en la matriz de discos, use el parámetro -m
. Los parámetros válidos son raid0
, raid1
, raid5
, raid6
, raid10
, single
y dup
.
Por ejemplo, para crear un sistema de archivos que abarque /dev/sdb1
y /dev/sdc1
, concatenando las dos particiones en una gran partición, use:
# mkfs.btrfs -d single -m single /dev/sdb /dev/sdc
Warning
|
Los sistemas de archivos que abarcan varias particiones, como el anterior, pueden parecer ventajosos al principio, pero no son una buena idea desde el punto de vista de la seguridad de los datos, ya que una falla en un solo disco de la matriz significa cierta pérdida de datos. El riesgo aumenta a medida que utiliza más discos, ya que también tiene más puntos posibles de falla. |
Gestión de subvolúmenes
Los subvolúmenes son como sistemas de archivos dentro de sistemas de archivos. Piense en ellos como un directorio que se puede montar (y tratar como) un sistema de archivos separado. Los subvolúmenes facilitan la organización y la administración del sistema, ya que cada uno de ellos puede tener cuotas o reglas instantáneas independientes.
Note
|
Los subvolúmenes no son particiones. Una partición asigna un espacio fijo en una unidad. Esto puede generar problemas más adelante, como que una partición se quede sin espacio cuando a otra le queda mucho espacio. No es así con los subvolúmenes, ya que “comparten” el espacio libre de su sistema de archivos raíz y crecen según sea necesario. |
Suponga que tiene un sistema de archivos Btrfs montado en /mnt/disk
, y desea crear un subvolumen dentro de él para almacenar sus copias de seguridad. Llamémoslo BKP
:
# btrfs subvolume create /mnt/disk/BKP
A continuación, enumeramos el contenido del sistema de archivos /mnt/disk
. Verá que tenemos un nuevo directorio, llamado así por nuestro subvolumen.
$ ls -lh /mnt/disk/ total 0 drwxr-xr-x 1 root root 0 jul 13 17:35 BKP drwxrwxr-x 1 carol carol 988 jul 13 17:30 Images
Note
|
Sí, también se puede acceder a los subvolúmenes como a cualquier otro directorio. |
Podemos comprobar que el subvolumen está activo, con el comando:
# btrfs subvolume show /mnt/disk/BKP/ Name: BKP UUID: e90a1afe-69fa-da4f-9764-3384f66fa32e Parent UUID: - Received UUID: - Creation time: 2019-07-13 17:35:40 -0300 Subvolume ID: 260 Generation: 23 Gen at creation: 22 Parent ID: 5 Top level ID: 5 Flags: - Snapshot(s):
Puede montar el subvolumen en /mnt/BKP
pasando el parámetro -t btrfs -o subvol=NAME
al comando mount
:
# mount -t btrfs -o subvol=BKP /dev/sdb1 /mnt/bkp
Note
|
El parámetro |
Trabajar con instantáneas
Las instantáneas son como subvolúmenes, pero rellenadas previamente con el contenido del volumen desde el que se tomó la instantánea.
Cuando se crea, una instantánea y el volumen original tienen exactamente el mismo contenido. Pero a partir de ese momento, divergirán. Los cambios realizados en el volumen original (como archivos agregados, renombrados o eliminados) no se reflejarán en la instantánea y viceversa.
Tenga en cuenta que una instantánea no duplica los archivos e inicialmente casi no ocupa espacio en el disco. Simplemente duplica el árbol del sistema de archivos, mientras apunta a los datos originales.
El comando para crear una instantánea es el mismo que se usa para crear un subvolumen, simplemente agregue el parámetro snapshot
después de btrfs subvolume
. El siguiente comando creará una instantánea del sistema de archivos Btrfs montado en /mnt/disk
en /mnt/disk/snap
:
# btrfs subvolume snapshot /mnt/disk /mnt/disk/snap
Ahora, imagine que tiene el siguiente contenido en /mnt/disk
:
$ ls -lh total 2,8M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg -rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg drwx------ 1 carol carol 366 jul 13 17:56 snap -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Observe el directorio de instantáneas, que contiene la instantánea. Ahora eliminemos algunos archivos y verifiquemos el contenido del directorio:
$ rm LG-G8S-ThinQ-* $ ls -lh total 1,7M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg drwx------ 1 carol carol 366 jul 13 17:56 snap -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Sin embargo, si revisa dentro del directorio snap, los archivos que eliminó todavía están allí y se pueden restaurar si es necesario.
$ ls -lh snap/ total 2,8M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg -rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
También es posible crear instantáneas de solo lectura. Funcionan exactamente como instantáneas en las que se puede escribir, con la diferencia de que el contenido de la instantánea no se puede cambiar, se “congelan” en el tiempo. Simplemente agregue el parámetro -r
al crear la instantánea:
# btrfs subvolume snapshot -r /mnt/disk /mnt/disk/snap
Algunas palabras sobre compresión
Btrfs admite la compresión de archivos transparente, con tres algoritmos diferentes disponibles para el usuario. Esto se hace automáticamente por archivo, siempre que el sistema de archivos esté montado con la opción -o compress
. Los algoritmos son lo suficientemente inteligentes como para detectar archivos que no se pueden comprimir y no intentarán comprimirlos, ahorrando recursos del sistema. Entonces, en un solo directorio puede tener archivos comprimidos y descomprimidos juntos. El algoritmo de compresión predeterminado es ZLIB, pero están disponibles LZO (más rápido, peor relación de compresión) o ZSTD (más rápido que ZLIB, compresión comparable), con múltiples niveles de compresión (consulte el objetivo correspondiente en las opciones de montaje).
Administrar particiones con GNU Parted
GNU Parted es un editor de particiones muy poderoso (de ahí el nombre) que se puede usar para crear, eliminar, mover, redimensionar, rescatar y copiar particiones. Puede funcionar con discos GPT y MBR y cubrir casi todas sus necesidades de administración de discos.
Hay muchas interfaces gráficas que facilitan mucho el trabajo con parted
, como GParted para entornos de escritorio basados en GNOME y el KDE Partition Manager para escritorios KDE. Sin embargo, debe aprender a usar parted
en la línea de comandos, ya que en una configuración de servidor nunca puede contar con un entorno de escritorio gráfico disponible.
Warning
|
A diferencia de |
La forma más sencilla de comenzar a usar parted es escribiendo parted DEVICE
, donde DEVICE
es el dispositivo que desea administrar (parted /dev/sdb
). El programa inicia una interfaz de línea de comandos interactiva como fdisk
y gdisk
con un mensaje (parted)
para que ingrese los comandos.
# parted /dev/sdb GNU Parted 3.2 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
Warning
|
¡Tenga cuidado! Si no especifica un dispositivo, |
Seleccionar discos
Para cambiar a un disco diferente al especificado en la línea de comando, puede usar el comando select
, seguido del nombre del dispositivo:
(parted) select /dev/sdb Using /dev/sdb
Obtener información
El comando print
se puede utilizar para obtener más información sobre una partición específica o incluso todos los dispositivos de bloque (discos) conectados a su sistema.
Para obtener información sobre la partición seleccionada actualmente, simplemente teclee print
:
(parted) print Model: ATA CT120BX500SSD1 (scsi) Disk /dev/sda: 120GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2097kB 116GB 116GB primary ext4 2 116GB 120GB 4295MB primary linux-swap(v1)
Puede obtener una lista de todos los dispositivos de bloque conectados a su sistema usando print devices
:
(parted) print devices /dev/sdb (1999MB) /dev/sda (120GB) /dev/sdc (320GB) /dev/mapper/cryptswap (4294MB)
Para obtener información sobre todos los dispositivos conectados a la vez, puede usar print all
. Si desea saber cuánto espacio libre hay en cada uno de ellos, puede usar print free
:
(parted) print free Model: ATA CT120BX500SSD1 (scsi) Disk /dev/sda: 120GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 32.3kB 2097kB 2065kB Free Space 1 2097kB 116GB 116GB primary ext4 116GB 116GB 512B Free Space 2 116GB 120GB 4295MB primary linux-swap(v1) 120GB 120GB 2098kB Free Space
Crear una tabla de particiones en un disco vacío
Para crear una tabla de particiones en un disco vacío, use el comando mklabel
, seguido del tipo de tabla de particiones que desea usar.
Hay muchos tipos de tablas de particiones admitidas, pero los tipos principales que debe conocer son msdos
que se usa aquí para referirse a una tabla de particiones MBR, y gpt
para referirse a una tabla de particiones GPT. Para crear una tabla de particiones MBR, teclee:
(parted) mklabel msdos
Y para crear una tabla de particiones GPT, el comando es:
(parted) mklabel gpt
Crear una partición
Para crear una partición se usa el comando mkpart
, usando la sintaxis mkpart PARTTYPE FSTYPE START END
, donde:
PARTTYPE
-
Es el tipo de partición, que puede ser
primaria
,lógica
oextendida
en caso de que se utilice una tabla de particiones MBR. FSTYPE
-
Especifica qué sistema de archivos se utilizará en esta partición. Tenga en cuenta que
parted
no creará el sistema de archivos. Simplemente establece una marca en la partición que le dice al sistema operativo qué tipo de datos esperar de ella. START
-
Especifica el punto exacto en el dispositivo donde comienza la partición. Puede utilizar diferentes unidades para especificar este punto.
2s
se puede usar para referirse al segundo sector del disco, mientras que1m
se refiere al comienzo del primer megabyte del disco. Otras unidades comunes sonB
(bytes) y%
(porcentaje del disco). END
-
Especifica el final de la partición. Tenga en cuenta que este no es el tamaño de la partición, es el punto del disco donde termina. Por ejemplo, si especifica
100 m
, la partición finalizará 100 MB después del inicio del disco. Puede utilizar las mismas unidades que en el parámetroSTART
.
Entonces, el comando:
(parted) mkpart primary ext4 1m 100m
Crea una partición primaria de tipo ext4
, comenzando en el primer megabyte del disco y terminando después del megabyte 100.
Eliminar una partición
Para eliminar una partición, use el comando rm
seguido del número de partición, que puede mostrar usando el comando print
. Entonces, rm 2
eliminaría la segunda partición en el disco seleccionado actualmente.
Recuperando particiones
parted
puede recuperar una partición eliminada. Considere que tiene la siguiente estructura de partición:
Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 primary 3 200MB 300MB 99.6MB ext4 primary
Por accidente, eliminó la partición 2 usando rm 2
. Para recuperarlo, puede utilizar el comando rescue
, con la sintaxis rescue START END
, donde START
es la ubicación aproximada donde comenzó la partición y END
la ubicación aproximada donde terminó.
parted
escaneará el disco en busca de particiones y ofrecerá restaurar las que se encuentren. En el ejemplo anterior, la partición 2
comenzó en 99,6 MB y terminó en 200 MB. Entonces puede usar el siguiente comando para recuperar la partición:
(parted) rescue 90m 210m Information: A ext4 primary partition was found at 99.6MB -> 200MB. Do you want to add it to the partition table? Yes/No/Cancel? y
Esto recuperará la partición y su contenido. Tenga en cuenta que rescue
solo puede recuperar particiones que tengan un sistema de archivos instalado. No se detectan particiones vacías.
Cambiar el tamaño de las particiones ext2/3/4
parted
se puede usar para cambiar el tamaño de las particiones y hacerlas más grandes o más pequeñas. Sin embargo, hay algunas advertencias:
-
Durante el cambio de tamaño, la partición debe estar sin usar y sin montar.
-
Necesita suficiente espacio libre después de la partición para hacerla crecer al tamaño que desee.
El comando es resizepart
, seguido del número de partición y dónde debería terminar. Por ejemplo, si tiene la siguiente tabla de particiones:
Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.6MB ext4 primary
Intentar hacer crecer la partición 1
usando resizepart
generaría un mensaje de error, porque con el nuevo tamaño, la partición 1
se superpondría con la partición 2
. Sin embargo, la partición 3
se puede cambiar de tamaño ya que hay espacio libre después de ella, lo que se puede verificar con el comando print free
:
(parted) print free Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.6MB ext4 primary 300MB 1999MB 1699MB Free Space
Entonces puede usar el siguiente comando para cambiar el tamaño de la partición 3 a 350 MB:
(parted) resizepart 3 350m (parted) print Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 350MB 150MB ext4 primary
Recuerde que el nuevo punto final se especifica contando desde el inicio del disco. Entonces, debido a que la partición 3
terminó en 300 MB, ahora debe terminar en 350 MB.
Pero cambiar el tamaño de la partición es solo una parte de la tarea. También necesita cambiar el tamaño del sistema de archivos que reside en ella. Para sistemas de archivos ext2/3/4 esto se hace con el comando resize2fs
. En el caso del ejemplo anterior, la partición 3 todavía muestra el tamaño “antiguo” cuando se monta:
$ df -h /dev/sdb3 Filesystem Size Used Avail Use% Mounted on /dev/sdb3 88M 1.6M 80M 2% /media/carol/part3
Para ajustar el tamaño, se puede usar el comando resize2fs DEVICE SIZE
, donde DEVICE
corresponde a la partición que desea cambiar de tamaño y SIZE
es el nuevo tamaño. Si omite el parámetro de tamaño, utilizará todo el espacio disponible de la partición. Antes de cambiar el tamaño, se recomienda desmontar la partición.
En el ejemplo anterior:
$ sudo resize2fs /dev/sdb3 resize2fs 1.44.6 (5-Mar-2019) Resizing the filesystem on /dev/sdb3 to 146212 (1k) blocks. The filesystem on /dev/sdb3 is now 146212 (1k) blocks long. $ df -h /dev/sdb3 Filesystem Size Used Avail Use% Mounted on /dev/sdb3 135M 1.6M 123M 2% /media/carol/part3
Para encoger una partición, el proceso debe realizarse en orden inverso. Primero cambie el tamaño del sistema de archivos al nuevo tamaño más pequeño, luego cambie el tamaño de la partición usando parted
.
Warning
|
Preste atención al encoger particiones. Si ordena mal las cosas, ¡perderá datos! |
En nuestro ejemplo:
# resize2fs /dev/sdb3 88m resize2fs 1.44.6 (5-Mar-2019) Resizing the filesystem on /dev/sdb3 to 90112 (1k) blocks. The filesystem on /dev/sdb3 is now 90112 (1k) blocks long. # parted /dev/sdb3 (parted) resizepart 3 300m Warning: Shrinking a partition can cause data loss, are you sure you want to continue? Yes/No? y (parted) print Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.7MB ext4 primary
Tip
|
En lugar de especificar un nuevo tamaño, puede usar el parámetro |
Creación de particiones de intercambio
En Linux, el sistema puede intercambiar páginas de memoria de RAM a disco según sea necesario, almacenándolas en un espacio separado generalmente implementado como una partición separada en un disco, llamada partición de intercambio o simplemente intercambio. Esta partición debe ser de un tipo específico y configurarse con una utilidad adecuada (mkswap
) antes de que pueda usarse.
Para crear la partición de intercambio usando fdisk
o gdisk
, simplemente proceda como si estuviera creando una partición normal, como se explicó antes. La única diferencia es que necesitará cambiar el tipo de partición a Linux swap.
-
En
fdisk
use el comandot
. Seleccione la partición que desea utilizar y cambie su tipo a82
. Escriba los cambios en el disco y salga conw
. -
En
gdisk
el comando para cambiar el tipo de partición también est
, pero el código es8200
. Escriba los cambios en el disco y salga conw
.
Si está usando parted
, la partición debe identificarse como una partición de intercambio durante la creación, simplemente use linux-swap
como tipo de sistema de archivos. Por ejemplo, el comando para crear una partición de intercambio de 500 MB a partir de 300 MB en el disco es:
(parted) mkpart primary linux-swap 301m 800m
Una vez que la partición está creada e identificada correctamente, simplemente use mkswap
seguido del dispositivo que representa la partición que desea usar, como:
# mkswap /dev/sda2
Para habilitar el intercambio en esta partición, use swapon
seguido del nombre del dispositivo:
# swapon /dev/sda2
Del mismo modo, swapoff
, seguido del nombre del dispositivo, desactivará el intercambio en ese dispositivo.
Linux también admite el uso de swap files en lugar de particiones. Simplemente cree un archivo vacío del tamaño que desee usando dd
y luego use mkswap
y swapon
con este archivo como destino.
Los siguientes comandos crearán un archivo de 1 GB llamado myswap
en el directorio actual, lleno de ceros, y luego lo configurarán y habilitarán como un archivo de intercambio.
Cree el archivo de intercambio:
$ dd if=/dev/zero of=myswap bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.49254 s, 143 MB/s
if=
es el archivo de entrada, el origen de los datos que se escribirán en el archivo. En este caso es el dispositivo /dev/zero
, que proporciona tantos caracteres NULL
como se soliciten. of=
es el archivo de salida, el archivo que se creará. bs=
es el tamaño de los bloques de datos, aquí especificado en Megabytes, y count=
es la cantidad de bloques que se escribirán en la salida. 1024 bloques de 1 MB cada uno equivale a 1 GB.
# mkswap myswap Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=49c53bc4-c4b1-4a8b-a613-8f42cb275b2b # swapon myswap
Usando los comandos anteriores, este archivo de intercambio se usará solo durante la sesión actual del sistema. Si se reinicia la máquina, el archivo seguirá estando disponible, pero no se cargará automáticamente. Puede automatizar eso agregando el nuevo archivo de intercambio a /etc/fstab
, que discutiremos en una lección posterior.
Tip
|
Tanto |
Ejercicios Guiados
-
¿Qué esquema de partición debería utilizarse para particionar un disco duro de 3 TB en tres particiones de 1 GB? ¿Por qué?
-
En
gdisk
, ¿cómo podemos saber cuánto espacio hay disponible en el disco? -
¿Cuál sería el comando para crear un sistema de archivos ext3, verificando antes los bloques defectuosos, con la etiqueta
MyDisk
y un UUID aleatorio, en el dispositivo/dev/sdc1
? -
Usando
parted
, ¿cuál es el comando para crear una partición ext4 de 300 MB, comenzando con 500 MB en el disco? -
Imagine que tiene 2 particiones, una en
/dev/sda1
y la otra en/dev/sda2
, ambas de 20 GB de tamaño. ¿Cómo puede usarlas en un solo sistema de archivos Btrfs, de tal manera que el contenido de una partición se refleje automáticamente en la otra, como en una configuración RAID1? ¿Qué tamaño tendrá el sistema de archivos?
Ejercicios Exploratorios
-
Considere un disco de 2 GB con una tabla de particiones MBR y el siguiente diseño:
Disk /dev/sdb: 1.9 GiB, 1998631936 bytes, 3903578 sectors Disk model: DataTraveler 2.0 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: 0x31a83a48 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 1050623 1048576 512M 83 Linux /dev/sdb3 2099200 3147775 1048576 512M 83 Linux
¿Puede crear una partición de 600 MB en él? ¿Por qué?
-
En un disco en
/dev/sdc
, tenemos una primera partición de 1 GB, que contiene aproximadamente 256 MB de archivos. Usandoparted
, ¿cómo puede reducirlo para que tenga suficiente espacio para los archivos? -
Imagine que tiene un disco en
/dev/sdb
y desea crear una partición de intercambio de 1 GB al principio. Entonces, usandoparted
, cree la partición conmkpart primary linux-swap 0 1024M
. Luego, habilita el intercambio en esta partición conswapon /dev/sdb1
, pero aparece el siguiente mensaje de error:swapon: /dev/sdb1: read swap header failed
¿Qué salió mal?
-
Durante el curso de esta lección, estuvo probando algunos comandos en
parted
pero, por error, eliminó la tercera partición en su disco duro. Usted sabe que vino después de una partición UEFI de 250 MB y una partición de intercambio de 4 GB, y tenía un tamaño de 10 GB. ¿Qué comando puede usar para recuperarlo? -
Imagine que tiene una partición de 4 GB sin usar en
/dev/sda3
. Usandofdisk
, ¿cuál sería la secuencia de operaciones para convertirlo en una partición de intercambio activa?
Resumen
En esta lección aprendimos:
-
Cómo crear una tabla de particiones MBR en un disco con
fdisk
, y cómo usarlo para crear y eliminar particiones -
Cómo crear una tabla de particiones MBR en un disco con
gdisk
, y cómo usarlo para crear y eliminar particiones -
Cómo crear particiones ext2, ext3, ext4, XFS, VFAT y exFAT
-
Cómo utilizar
parted
para crear, eliminar y recuperar particiones en discos MBR y GPT -
Cómo usar las particiones resize ext2, ext3, ext4 y Brts
-
Cómo crear, configurar y activar particiones de intercambio y archivos de intercambio
Los siguientes comandos se discutieron en esta lección:
-
fdisk
-
gdisk
-
mkfs.ext2
,mkfs.ext3
,mkfs.ext4
,mkfs.xfs
,mkfs.vfat
ymkfs.exfat
-
parted
-
btrfs
-
mkswap
-
swapon
yswapoff
Respuestas a los ejercicios guiados
-
¿Qué esquema de partición debería utilizarse para particionar un disco duro de 3 TB en tres particiones de 1 GB? ¿Por qué?
GPT, ya que MBR admite como máximo discos duros de 2 TB.
-
En
gdisk
, ¿cómo podemos saber cuánto espacio hay disponible en el disco?Utilice
p
(print). El espacio libre total se mostrará como la última línea de información antes de la tabla de particiones. -
¿Cuál sería el comando para crear un sistema de archivos ext3, buscando bloques defectuosos antes, con la etiqueta
MyDisk
y un UUID aleatorio, en el dispositivo/dev/sdc1
?El comando sería
mkfs.ext3 -c -L MyDisk -U random /dev/sdc1
. Alternativamente,mke2fs -t ext3
también se puede usar en lugar demkfs.ext3
-
Usando
parted
, ¿cuál es el comando para crear una partición ext4 de 300 MB, comenzando con 500 MB en el disco?Utilice
mkpart primary ext4 500m 800m
. Recuerde que tendrá que crear el sistema de archivos usandomkfs.ext4
, ya que parted no hace esto. -
Imagine que tiene 2 particiones, una en
/dev/sda1
y la otra en/dev/sda2
, ambas de 20 GB de tamaño. ¿Cómo puede usarlas en un solo sistema de archivos Btrfs, de tal manera que el contenido de una partición se refleje automáticamente en la otra, como en una configuración RAID1? ¿Qué tamaño tendrá el sistema de archivos?Utilice
mkfs.btrfs /dev/sda1 /dev/sdb1 -m raid1
. El sistema de archivos resultante tendrá un tamaño de 20 GB, ya que una partición actúa simplemente como un espejo de la otra.
Respuestas a ejercicios exploratorios
-
Considere un disco de 2 GB con una tabla de particiones MBR y el siguiente diseño:
Disk /dev/sdb: 1.9 GiB, 1998631936 bytes, 3903578 sectors Disk model: DataTraveler 2.0 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: 0x31a83a48 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 1050623 1048576 512M 83 Linux /dev/sdb3 2099200 3147775 1048576 512M 83 Linux
¿Puede crear una partición de 600 MB en él? ¿Por qué?
No puede, porque no hay suficiente espacio contiguo. La primera pista de que algo está “no coincide” es la lista de dispositivos: tiene
/dev/sdb1
y/dev/sdb3
, pero no/dev/sdb2
. Entonces, falta algo.Luego, debe mirar dónde termina una partición y comienza la otra. La partición uno termina en el sector
1050623
y la partición 2 comienza en2099200
. Esa es una “brecha” de 1048577 sectores. A 512 bytes por sector, eso es 536.871.424 bytes. Si lo divide por 1024 obtiene 524.288 Kilobytes. Divida por 1024 de nuevo y obtendrá … 512 MB. Este es el tamaño de la “brecha”.Si el disco tiene 2 GB, entonces moveríamos como máximo otros 512 MB después de la partición 3. Incluso si tenemos en total alrededor de 1 GB sin asignar, el bloque contiguo más grande es de 512 MB. Entonces, no hay espacio para una partición de 600 MB.
-
En un disco en
/dev/sdc
, tenemos una primera partición de 1 GB, que contiene aproximadamente 256 MB de archivos. Usandoparted
, ¿cómo puede reducirlo para que tenga suficiente espacio para los archivos?Esta es una operación de varias partes. Primero tiene que encoger el sistema de archivos usando
resize2fs
. En lugar de especificar el nuevo tamaño directamente, puede utilizar el parámetro-M
para que sea “suficientemente grande”. Entonces:resize2fs -M /dev/sdc1
.Luego, cambie el tamaño de la partición con parted usando
resizepart
. Dado que es la primera partición, podemos asumir que comienza en cero y termina en 241 MB. Entonces, el comando esresizepart 1 241M
. -
Imagine que tiene un disco en
/dev/sdb
y desea crear una partición de intercambio de 1 GB al principio. Entonces, usandoparted
, crea la partición conmkpart primary linux-swap 0 1024M
. Luego, habilita el intercambio en esta partición conswapon /dev/sdb1
, pero aparece el siguiente mensaje de error:swapon: /dev/sdb1: read swap header failed
¿Qué salió mal?
Creó una partición del tipo correcto (
linux-swap
), pero recuerde quemkpart
no crea un sistema de archivos. Olvidó configurar la partición como un espacio de intercambio primero conmkswap
antes de usarla. -
Durante el curso de esta lección, estuvo probando algunos comandos en
parted
pero, por error, eliminó la tercera partición en su disco duro. Usted sabe que vino después de una partición UEFI de 250 MB y una partición de intercambio de 4 GB, y tenía un tamaño de 10 GB. ¿Qué comando puede usar para recuperarlo?Tranquilo, tiene toda la información que necesita para recuperar la partición, solo use
rescue
y haga los cálculos. Tenía 250 MB + 4.096 MB (4*1024) antes, por lo que el punto de inicio debería ser alrededor de 4346 MB. Más 10.240 MB (10*1024) de tamaño, debería terminar en 14.586 MB. Entonces,rescue 4346m 14586m
debería ser el truco. Es posible que deba dar un poco de “espacio adicional” para rescatar, comenzando un poco antes y terminando un poco tarde, dependiendo de la geometría de su disco. -
Imagine que tiene una partición de 4 GB sin usar en
/dev/sda3
. Usandofdisk
, ¿cuál sería la secuencia de operaciones para convertirlo en una partición de intercambio activa?Primero, cambie el tipo de partición a “Linux Swap”(82), escriba sus cambios en el disco y salga. Luego, use
mkswap
para configurar la partición como un área de intercambio. Luego, useswapon
para habilitarlo.