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 archivo en /dev
,
como /dev/sda1
o /dev/sda2
.
En este tema, 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 la época 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 los 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 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 resuelve muchas de las limitaciones de MBR. No existe un límite explícito en el tamaño del disco, y el número máximo de particiones está limitado sólo 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, 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 #
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) del sistema de ficheros 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 un objeto dentro del sistema operativo (Un sistema de ficheros, una partición, un disco, etc..). 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 del sistema de ficheros 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 este tema, 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”) es un sistema de archivos que ha estado en desarrollo desde 2007 específicamente para Linux por Oracle Corporation y otras empresas como 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 implica
que el sistema de archivos abarcará
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 apuntando a los datos originales que están en el volumen sobre el que se ha aplicado la instantánea.
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 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, verificando antes los bloques defectuosos, 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,mk2efs -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 este tema, 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.