LPIC-1 Tema 104.1: crear particiones y sistemas de archivos
Pasamos al bloque temático 104 de las certificaciones LPIC-1. Este bloque está destinado a la gestión de dispositivos, sistemas de archivos (FS), y la jerarquía FHS. Concretamente, en el tema 104.1 se dedica a la creación de particiones y de sistemas de archivos. Es decir, los candidatos deberían ser capaces de configurar las particiones del medio de almacenamiento y crear los FS en cualquier tipo de medio. Eso incluye también el espacio de intercambio SWAP.
Si lo recuerdas, ya se vio algo de esto en el tema 102.1, donde expliqué cómo formatear con algunas herramientas básicas, cómo crear las particiones SWAP, montar y desmontar dispositivos, y sobre fstab. Ese mismo tema lo dividí en otro artículo más donde separé todo lo referente al diseño del espacio de particionamiento en Linux. Por tanto, ya tienes bastante base adelantada para lo que se busca con este 104.1.
¿Entonces? ¿Qué habrá de novedoso en este artículo? Pues básicamente voy a agregar la gestión de tablas de particiones MBR/GPT haciendo uso de herramientas como gdisk y parted, así como algunas características básicas del sistema de archivos btrfs, como multi-device, compresión y subvolúmenes.
parted
Con parted se pueden manipular las tablas de particiones de los medios de almacneamiento (SD, pendrive, discos duros,…). A diferencia de fdisk que se centra en las MBR, con parted se puede trabajar con MBR y también con las modernas GPT.
#Consultar las tablas de un dispositivo. Por ejemplo /dev/sda sudo parted -s /dev/sda unit mib print #Para crear una tabla de particiones en /dev/sdx de tipo MBR parted -s /dev/sdx mklabel msdos #Para crear una tabla de particiones GPT parted -s /dev/sdX mklabel gpt
Pero parted también va más allá y permite crear particiones al igual que otras herramientas como mkfs que ya analizamos en los temas 102.1. Para esta tarea, puedes seguir este esquema:
parted -s /dev/sdX unit XXX mkpart XXXX start end
Siendo:
- /dev/sdX: el nombre del medio en el que se quiere generar la partición.
- unit XXX: puede ser una unidad como unit MB (Megabytes), unit MiB (MebiBytes), unit GB (Gigabytes),…
- mkpart XXXX: el tipo de partición. Recuerda que había primary, extended y logical.
- start end: indica el punto de inicio y el de fin donde comienza y termina la partición en dicho medio de almacenamiento. Por este motivo se indica la unidad. Aunque también puedes indicar directamente 100% si la partición va a ocupar todo el dispositivo.
Además, también puedes activar o desactivar flags de las particiones ya creadas:
parted -s /dev/sdX set partition-number flag on/off
Siendo:
- /dev/sdX: el medio.
- set: para indicar que se va a configurar una bandera.
- partition-number: el número de partición de ese medio.
- flag: se puede sustituir por la bandera que quieras activar o desactivar.
- GPT flags:
- bios_grub: para partición BIOS boot.
- legacy_boot: para marcar como partición arrancable.
- msftdata: partición con un sistema de archivos NTFS o FAT.
- msftres: identifica para una partición Microsoft Reserved.
- MBR flags:
- boot: para la partición arrancable.
- hidden: para la partición oculta para sistemas operativos Microsot.
- raid: para marcar la partición como miembro de un RAID (por software).
- lvm: para marcarla como miembro de un LVM.
- GPT flags:
- on/off: para activar o desactivar respectivamente.
Por ejemplo:
#Crear una partición en todo el medio completo parted -s /dev/sdb unit mib mkpart primary 1 100% #Una vez creada puedes modificar las banderas parted -s /dev/sda set 2 lvm on
gdisk
La herramienta gdisk es similar a fdisk pero para GPT en este caso. Incluso se puede convertir una tabla de un tipo a otro. Por ejemplo:
#Consultar información gdisk -l /dev/sda
Para crear una tabla en un medio, puedes ejecutar la orden siguiente y usar ? para ver la ayuda. Te mostrará un menú con la letra que debes introducir y la acción a la que corresponde. Por ejemplo, d para eliminar partición, w para escribir cambios y salir, o para crear, n para nueva partición, p para mostrar la información de la tabla actual, etc. Es decir, muy similar a fdisk si lo recuerdas. Por ejemplo:
#Crear una tabla o modificarla mediante el menú interactivo gdisk /dev/sdx #Para convertir MBR a GPT puedes usar las teclas w y #Para convertir GTP a MBR puedes usar las teclas r g #Y para ver la información actual p
btrfs (básico)
Ya sabes que btrfs ha llegado como un nuevo FS con algunas características interesantes. Al igual que ZFS hace uso extensivo de copy-on-write, permite snapshots de solo lectura o modificables, soporte nativo para multidispositivo, compresión, y para subvolúmenes. Además, se protege a los datos mediante checksums. Resulta muy eficiente para ficheros pequeños y grandes, a diferencia de otros FS que trabajan bien con uno o con otros, pero no con ambos. Funciona también bien en discos SSD. Por eso ha cobrado tanto protagonismo.
Vamos a las características básicas como el soporte para multidispositivo. Con ello se puede agregar varios medios de almacenamiento a un solo agregado, como lo que ocurre con LVM o con RAID 0. Es decir, sumas capacidad en una mismo espacio.
#Crear una partición btrfs en un medio mkfs.btrfs /dev/sda #Usar la función multidispositivo para agrupar varios mkfs.btrfs /dev/sdc /dev/sdd
En cuanto a la compresión, se puede activar de forma transparente en un btrfs. Eso quiere decir que en la partición donde se ha activado, los bloques se comprimen (gzip o lzo) antes de escribirse y se descomprimen de manera automática cuando se van a leer. Eso ahorrará espacio en disco a cambio de incrementar un poco la carga de la CPU para realizar las compresiones y descompresiones al vuelo mientras se trabaja.
Aunque se comprima, cuando se consulta el tamaño de los ficheros con las herramientas del sistema, se mostrará el espacio real y no el espacio comprimido. Eso facilita a los administradores de sistemas a saber cuál es el tamaño verdadero.
#Activar la compresión al crear el FS mkfs.btrfs -o compress /dev/sda #Elegir un algoritmo de compresión concreto mkfs.btrfs -o compress=zlib /dev/sda
Por último, en cuanto a los subvolúmenes, es similar a un sistema de ficheros contenido en el anfitrión. Como mínimo tiene un subvolumen (por defecto), pero pueden crearse más. Aunque actualmente comparten la configuración RAID del FS al que pertenece un subvolumen, están configurados para que en un futuro se pueda implementar de forma independiente. Por cierto, desde el punto de vista del FS, un subvolumen se puede ver como si fuese un directorio.
#Para crear un subvolumen puedes usar btrfs subvolume create /mnt/btrfs1/subvolumen1 btrfs subvolume create /mnt/btrfs1/subvolumen2 btrfs subvolume create /mnt/btrfs1/subvolumenN
Es decir, un subvolumen tiene semejanzas a LVM. Las diferencias son:
- El subvolumen tiene la capacidad del FS al que pertenece. En cambio, en LVM el volumen lógico tiene una capacidad que se ha reservado para él dentro del grupo de volumenes al que pertenece.
- A diferencia de LVM, en una instantánea de un subvolumen sí se puede gestionar de forma más flexible al ser idéntico. Es decir, una vez creada no hay original e instantánea.
Pingback: viagra