This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Manual de Gentoo: X86/Bloques/Discos

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:X86/Blocks/Disks and the translation is 100% complete.



Tablas de particionamiento

Aunque teóricamente es posible utilizar un disco de forma directa, sin particionar, para albergar la instalación Linux (por ejemplo cuando se crea un RAID btrfs), en la práctica, esto casi nunca ocurre. En su lugar, los dispositivos de bloque se dividen en partes más pequeñas y manejables. En los sistemas x86 éstas se llaman particiones. Actualmente hay dos tecnologías estándar de particionamiento en uso: MBR y GPT.

MBR

La configuración MBR (Registro de Arranque Maestro -Master Boot Record-) utiliza identificadores de 32 bits para el sector de comienzo y longitud de las particiones y ofrece soporte para tres tipos de particiones: primaria, extendida y lógica. Las particiones primarias almacenan su información en el propio registro maestro de arranque, un lugar muy pequeño (normalmente 512 bytes) al comienzo del disco. Debido a esta limitación en el tamaño, solo se permiten cuatro particiones primarias (por ejemplo desde /dev/sda1 hasta /dev/sda4).

Para poder ofrecer más particiones, una de las particiones primarias se puede marcar como partición extendida. Esta partición puede contener particiones lógicas (particiones dentro de otra partición).

Importante
Although still supported by most motherboard manufacturers partition tables are considered legacy. Unless working with hardware that is pre-2010, it best to partition a disk using a GUID Partition Table. Readers who must proceed with MBR should acknowledge the following information:
  • Most post-2010 motherboards consider MBR a legacy (supported, but not ideal) boot mode.
  • Due to using 32-bit identifiers, master boot record partitioning tables cannot handle disks that are greater than 2 TiBs in size.
  • Unless a extended partition is created, MBR supports a maximum of four partitions.
  • The MBR setup does not provide any backup-MBR, so if an application or user overwrites the MBR, all partition information is lost.

The Handbook authors suggest using GPT whenever possible for Gentoo installations.

GPT

El esquema GPT (Tabla de Particiones GUID -GUID Partition Table-) utiliza identificadores de 64 bits para las particiones. El espacio donde se almacena la información sobre particiones es mucho mayor que los 512 bytes de un MBR, por lo que prácticamente no hay límite en la cantidad de particiones para un disco GPT. Por otro lado el tamaño de cada partición tiene unos límites bastante mayores (casi 8 ZB -sí, zetabytes-).

Cuando se utiliza UEFI (en lugar de BIOS) como interfaz de software de sistema entre el sistema operativo y el firmware, se requiere el uso de GPT ya que se podrían producir problemas de compatibilidad si se utiliza MBR.

GPT también utiliza sumas de comprobación y redundancia. Realiza sumas de comprobación CRC32 para detectar errores en la cabecera y el las tablas de particiones y dispone de una copia de respaldo GPT al final del disco. Esta copia de respaldo puede utilizarse para recuperarse en caso de que se produzcan daños en la GPT primaria que se almacena al comienzo del disco.

GPT o MBR

De la descripción anterior, se puede pensar que GPT es siempre la opción recomendada. Sin embargo hay algunas excepciones.

El uso de GPT en una computadora basada en BIOS funciona, pero no se puede realizar un arranque dual con un sistema operativo Microsoft Windows. La razón es que Microsoft Windows arrancará en modo UEFI si detecta una etiqueta de particiones GPT.

Algunas placas base que contienen firmware con errores y que se configuren para arrancar en modo BIOS/CSM/legacy pueden presentar problemas cuando se inicie desde discos etiquetados con GPT. En este caso debería poder solucionar el problema activando la opción de arranque en la partición MBR protegida que se debe realizar mediante fdisk con la opción -t dos para forzarlas a leer la tabla de particiones usando el formato MBR.

En este caso, ejecute fdisk y cambie el indicador pulsando la tecla a. Pulse (1) para seleccionar la primera partición y después pulse la tecla (w) para guardar los cambios en el disco y salir del programa fdisk:

usuario $fdisk -t dos /dev/sda
Welcome to fdisk (util-linux 2.24.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
  
Command (m for help): a
Partition number (1-4): 1
  
Command (m for help): w

Utilizar UEFI

Cuando se instala Gentoo en un sistema que usa UEFI (en lugar de BIOS) para arrancar el sistema operativo, es importante crear una Partición del Sistema EFI (ESP). Las instrucciones relativas a parted a continuación contienen las indicaciones necesarias para gestionar esta operación adecuadamente.

La ESP must debe ser una variante de FAT (En ocasiones se muestra como vfat en los sistemas Linux). La UEFI especificación oficial cita que el firmware UEFI reconocerá sistemas de archivos FAT12, 16, o 32, aunque se recomienda FAT32 para la ESP. Proceder para dar formato a la ESP como FAT32:

root #mkfs.fat -F 32 /dev/sda2
Importante
Si no se utiliza una variante de FAT para la ESP, no se garantiza que el firmware del sistema UEFI encuentre el cargador de arranque (o el núcleo Linux) y seguramente ¡No se pueda iniciar el sistema!

Almacenamiento avanzado

RAID Btrfs

Tal y como se indica arriba, con btrfs se tiene la capacidad de crear sistemas de archivos a través de múltiples dispositivos. Los sistemas de archivos btrfs generados de esta forma pueden actuar en los siguientes modos: raid0, raid1, raid10, raid5 y raid6. Los modos RAID 5 y 6 han mejorado considerablemente pero se siguen considerando inestables. Una vez se ha creado un sistema de archivos en múltiples dispositivos, con unas pocas órdenes se pueden añadir nuevos dispositivos y eliminar los antiguos. Btrfs no es muy amigable con los nuevos usuarios.

Los sistemas de archivos ext4 se pueden convertir a sistemas btrfs, lo cual puede ser de utilidad para los que quieran instalar Gentoo con un sistema de archivos de sobra probado e incrementar gradualmente su conocimiento sobre nuevos sistemas de archivos como btrfs mediante la experimentación.

LVM

Los CDs de instalación para x86 proporcionan soporte para el Gestor de Volúmenes Lógicos (LVM). LVM incrementa incrementa la flexibilidad ofrecida por el esquema de particionamiento. Las instrucciones de instalación de abajo se centran en particiones "normales", sin embargo, es importante saber que las particiones de tipo LVM también están soportadas si se elige ese camino. Consultar el artículo sobre LVM para obtener más información. Aviso a los que comienzan: Aunque LVM está soportado completamente, está fuera del alcance de esta guía.

Esquema de particionamiento por defecto

A lo largo del resto del manual, se utilizará el siguiente esquema de particionamiento como un ejemplo sencillo:

Partición Sistema de archivos Tamaño Descripción
/dev/sda1 (cargador de arranque) 2M Partición de arranque BIOS
/dev/sda2 ext2 (o fat32 si se va a utilizar UEFI) 128M Partición de arranque/sistema EFI
/dev/sda3 (intercambio -swap-) 512M o más Partición de intercambio
/dev/sda4 ext4 Resto del disco Partición raíz

Si esto es suficiente y el lector ha optado por el camino GPT, puede saltar directamente a Por_defecto: Utilizar parted para crear las particiones del disco. Aquéllos que aún estén interesados en MBR (¡A veces ocurre!) y estén utilizando la disposición ejemplo pueden saltar a #Alternativa: Utilizar fdisk para crear las particiones del disco.

Tanto fdisk como parted son utilidades de particionamiento. fdisk es de sobra conocida, estable y recomendada para una disposición de particionamiento MBR mientras que parted ha sido una de las primeras utilidades de gestión de dispositivos en Linux que ofrece soporte de particiones GPT. A los que les guste la interfaz de usuario de fdisk pueden utilizar gdisk (GPT fdisk) como alternativa a parted.

Antes de pasar a las instrucciones de creación, el primer conjunto de secciones describirán con mas detalle cómo pueden crearse esquemas de particionamiento y mencionan algunos problemas comunes.

Diseñar un esquema de particionamiento

¿Cuántas particiones y de qué tamaño?

The number of partitions is highly dependent on the environment. For instance, if there are lots of users, then it is advised to have /home/ separate as it increases security and makes backups easier. If Gentoo is being installed to perform as a mail server, then /var/ should be separate as all mails are stored inside /var/. A good choice of filesystem will then maximize the performance. Game servers will have a separate /opt/ as most gaming servers are installed there. The reason is similar for the /home/ directory: security and backups. In most situations, /usr/ is to be kept big: not only will it contain the majority of applications, it typically also hosts the Gentoo ebuild repository (by default located at /usr/portage) which already takes around 650 MiB. This disk space estimate excludes the packages/ and distfiles/ directories that are generally stored within this ebuild repository.

Todo depende bastante de lo que el administrador quiera conseguir. Tener particiones o volúmenes separados tiene las siguientes ventajas:

  • Puede elegir el mejor sistema de archivos para cada partición o volumen.
  • El sistema entero no puede quedarse sin espacio si una herramienta fallara y escribiera datos continuamente en una partición o volumen.
  • Si es el caso, el tiempo dedicado a las comprobaciones de integridad de los sistemas de archivos se reduce ya que las éstas pueden ser hechas en paralelo (esta ventaja es mayor con múltiples discos que con múltiples particiones).
  • Se puede mejorar la seguridad montando algunas particiones o volúmenes en modo solo lectura, nosuid (los bits setuid son ignorados), noexec (los bits de ejecución son ignorados) etc.

Sin embargo, tener múltiples particiones tiene también desventajas. Si no se configuran adecuadamente, un sistema puede tener mucho espacio vacío en una partición y ninguno en otra. Otra contrariedad es que las particiones separadas - especialmente las que se utilizan para puntos de montaje importantes como /usr/ o /var/ - a menudo requieren del administrador el que arranque con un sistema de archivos de inicio en RAM (initramfs) para montar la partición antes de que otros guiones de inicio se ejecuten. Este no es siempre el caso, por lo que los resultados pueden ser diferentes.

También, existe un límite de 15 particiones para SCSI y SATA a no ser que el disco use la estructura GPT.

¿Qué decir sobre el espacio de intercambio?

No existe un valor perfecto para la partición de intercambio. El propósito de esta partición es ofrecer espacio de almacenamiento al núcleo cuando la memoria interna (RAM) está bajo presión. Un espacio de intercambio permite al núcleo mover al disco páginas de memoria que probablemente no se van a acceder en un corto espacio de tiempo (intercambio o page-out), liberando memoria. Desde luego, si esa memoria se necesita, estas páginas deben ser devueltas a la memoria (page-in) lo cual llevará un tiempo (debido a que los discos son lentos comparados con la memoria interna).

Cuando el sistema no va a ejecutar aplicaciones que consuman mucha memoria o tiene mucha memoria disponible, entonces seguramente no necesitará mucho espacio de intercambio. Sin embargo, el espacio de intercambio se utiliza también para almacenar el contenido de toda la memoria en caso de hibernación. Si se trata de un sistema que va a necesitar hibernación, se empleará un mayor espacio de intercambio. En la mayoría de los casos deberá tener al menos la misma cantidad de memoria que tiene su sistema.


¿Qué es la partición de arranque BIOS?

Una partición de arranque BIOS es una partición muy pequeña (de 1 a 2 MB) en la que cargadores de arranque como GRUB2 pueden poner datos adicionales que no caben el espacio reservado para ellos (algunos cientos de bytes en el caso del MBR) y no se pueden colocar en otro lugar.

Estas particiones no son siempre necesarias, pero considerando el poco espacio que consumen y las dificultades que tendríamos para documentar la enorme cantidad de diferencias entre particiones, merece la pena crearla en cualquier caso.

Para completar, podemos decir que la partición de arranque BIOS se necesita cuando se utiliza la disposición GPT con GRUB2 o cuando usando el esquema de particiones MBR con GRUB2, la primera partición comienza antes de la localización de 1 MB en el disco.

Por defecto: Utilizar parted para crear las particiones del disco

En este capítulo usaremos el esquema de particiones de ejemplo mencionado anteriormente:

Partición Descripción
/dev/sda1 Partición de arranque BIOS
/dev/sda2 Partición de arranque
/dev/sda3 Partición de intercambio
/dev/sda4 Partición raíz

Cambie el equema de particiones según sus preferencias particulares.

Mostrar la disposición actual de las particiones con parted

El programa parted ofrece una interfaz simple para particionar sus discos y ofrece soporte para particiones grandes (más de 2 TB). Lance parted sobre su disco (en nuestro ejemplo utilizamos /dev/sda). Es recomendable indicar a parted que realice un alineamiento óptimo:

root #parted -a optimal /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

El alineamiento indica que las particiones comenzarán en límites bien conocidos dentro del disco, asegurando que las operaciones de disco al nivel del sistema operativo (recuperar páginas de disco) usan el menor número posible de operaciones internas de disco. Las particiones que están desalineadas pueden requerir el tener que obtener del disco dos páginas en lugar de una aunque, el sistema operativo solicitara una única página.

Para mostrar todas las opciones que soporta parted, teclee help y pulse la tecla Intro.

Definir la etiqueta GPT

La mayoría de los discos en los sistemas de arquitecturas x86 o amd64 han sido preparados usando un etiquetado "msdos". Usando parted, la orden para crear un etiquetado GPT en el disco es mklabel gpt:

Advertencia
Al cambiar el tipo de particionado, se eliminarán todas las particiones del disco. Se perderán todos los datos del disco.
(parted)mklabel gpt

Si quiere que el disco tenga un esquema MBR, utilice mklabel msdos.

Eliminar todas las particiones con parted

Si no ha hecho esto aún, (por ejemplo a través de la operación mklabel anterior, o porque el disco se ha formateado recientemente), elimine en primer lugar todas las particiones presentes en el disco. Teclee print para ver las particiones que están definidas actualmente y rm <N> donde N es el número de la partición que se desea eliminar.

(parted)rm 2

Haga lo mismo con el resto de particiones que no vaya a necesitar. Asegúrese, sin embargo, de que no comete errores en este punto -parted realiza los cambios inmediatamente (a diferencia de fdisk que los deja pendientes, permitiendo al usuario "deshacer" sus cambios antes de salvarlos o salir de fdisk).

Crear las particiones

Ahora se utilizará parted para crear las particiones con los siguientes ajustes:

  • El tipo de partición a usar. Normalmente será "primary" (primaria). Si se usa la etiqueta de partición msdos, tenga en cuenta que no puede tener más de cuatro particiones primarias. Si necesita más de cuatro particiones cree una de las cuatro partición como extendida (extended) y dentro de ella cree particiones logicas (logical).
  • La localización en la que comienza la partición (se puede expresar en MB, GB, ...)
  • La localización en la que termina la partición (se puede expresar en MB, GB, ...)

En primer lugar, le indicamos a parted que la unidad de medida con la que trabajaremos es megabytes (realmente mebibytes abreviado por MiB que es la notación "estándar", sin embargo, utilizaremos MB en lo que sigue ya que es más común):

(parted)unit mib

Ahora creamos una partición de 2 MB que se utilizará más tarde para el cargador de arranque GRUB2. Para ello utilizamos la orden mkpart e informamos a parted que comience en 1 MB y termine en 3 MB (creando así una partición de 2 MB).

(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on
(parted)print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number   Start      End      Size     File system  Name   Flags
 1       1.00MiB    3.00MiB  2.00MiB               grub   bios_grub

Haga lo mismo para la partición de arranque (128 MB), partición de intercambio (en el ejemplo 512 MB) y la partición raíz que ocupa el resto del disco (para ello, la localización final se marca con -1, indicando el final del disco menos 1 MB que es lo más lejos que puede llegar una partición).

(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)mkpart primary 131 643
(parted)name 3 swap
(parted)mkpart primary 643 -1
(parted)name 4 rootfs

Cuando se usa el interfaz UEFI (en lugar de BIOS) para arrancar el sistema, hay que marcar la partición de arranque como partición de sistema EFI. Parted hace esto automáticamente cuando la opción "boot" es activada en una partición:

(parted)set 2 boot on

El resultado final tiene este aspecto:

(parted)print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number   Start      End      Size     File system  Name   Flags
 1       1.00MiB    3.00MiB  2.00MiB               grub   bios_grub
 2       3.00MiB    131MiB   128MiB                boot   boot
 3       131MiB     643MiB   512MiB                swap
 4       643MiB     20479MiB 19836MiB              rootfs
Nota
En una instalación UEFI se mostrarán las marcas de arranque y esp en la partición de arranque.

Use la orden quit para salir de parted.

Alternativa: Utilizar fdisk para crear las particiones del disco

Nota
Aunque los mas recientes fdisk deben soportar el GPT, aún muestra tener algunos problemas con él. Las instrucciones que siguen a continuación asumen que se está usando un esquema MBR.

Los siguientes párrafos explican como crear el esquema de particionado de ejemplo usando fdisk. El esquema de particionado de ejemplo ha sido mencionado anteriormente:

Partition Descripción
/dev/sda1 Partición de arranque BIOS
/dev/sda2 Partición de arranque
/dev/sda3 Partición de intercambio
/dev/sda4 Partición raíz

Cambie el esquema de particionamiento según sus propias preferencias.

Examinar el esquema de particionamiento actual

fdisk es una popular y potente herramienta que permite dividir el disco en particiones. Arranca fdisk sobre tu unidad de disco (en nuestro ejemplo usamos el dispositivo de disco /dev/sda):

root #fdisk /dev/sda
Nota
Para tener soporte GPT añada -t gpt. Se recomienda comprobar con detalle la salida de fdisk en el caso de las versiones mas recientes de fdisk en las que cambia la opción MBR que tenía por defecto. Las restantes instrucciones asumen un esquema MBR.

Use la tecla p para mostrar el esquema de particionamiento actual del disco:

Command (m for help):p
Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1        14    105808+  83  Linux
/dev/sda2            15        49    264600   82  Linux swap
/dev/sda3            50        70    158760   83  Linux
/dev/sda4            71      2184  15981840    5  Extended
/dev/sda5            71       209   1050808+  83  Linux
/dev/sda6           210       348   1050808+  83  Linux
/dev/sda7           349       626   2101648+  83  Linux
/dev/sda8           627       904   2101648+  83  Linux
/dev/sda9           905      2184   9676768+  83  Linux

Este disco en particular se ha configurado para albergar siete sistemas de archivos Linux (cada uno con su correspondiente partición listada como "Linux") así como una partición de intercambio (listada como "Linux swap").

Eliminar todas las particiones con fdisk

Primero elimine todas las particiones existentes en el disco. Teclee d para eliminar una partición. Por ejemplo, para borrar una partición existente /dev/sda1:

Command (m for help):d
Partition number (1-4): 1

La partición ha sido marcada para su borrado. Ya no aparecerá al mostrar la lista de particiones (p), pero no será eliminada hasta que guarde los cambios realizados. Esto permite anular la operación si se ha cometido una equivocación - en este caso teclee q inmediatamente y la tecla Intro a continuación y no se eliminarán las particiones.

Teclee p de forma repetida para ver el listado de particiones y pulse d junto con el número de la partición para borrarla. Acabará con la tabla de partticiones vacia:

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
Device Boot    Start       End    Blocks   Id  System

Ahora que la tabla de particiones que está en memoria está vacía, estamos preparados para crear las particiones.

Crear una partición de arranque BIOS

En primer lugar creamos una partición de arranque BIOS pequeña. Teclee n para crear una nueva partición y a continuación p para seleccionar una partición primaria, seguido de 1 para seleccionar la primera partición primaria. Cuando se solicite el primer sector asegúrese de que comienza en 2048 (es necesario por el cargador de arranque) y pulse Intro. Cuando se solicite el último sector teclee +2M para crear un partición de 2 MB:

Nota
El comienzo en el sector 2048 es una medida de seguridad en caso de que el cargador de arranque no detecte esta partición como disponible para su utilización.
Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (64-10486533532, default 64): 2048
Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +2M

Marque la partición para trabajar con UEFI:

Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 4
Changed system type of partition 1 to 4 (BIOS boot)
Nota
Usar UEFI con un esquema de particiones MBR está desaconsejado. Si usa un sistema con capacidad UEFI, por favor use el esquema GPT.

Crear la partición de arranque

Ahora cree una partición de arranque pequeña. Teclee n para crear una nueva partición, a continuación p para seleccionar una partición primaria seguido de 2 para seleccionar la segunda partición primaria. Cunado le solicite el primer sector acepte el valor por defecto pulsando Enter. Cuando le solicite el último sector, teclee +128M para crear una partición de 128 MB:

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First sector (5198-10486533532, default 5198): (Pulse Intro)
Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +128M

Ahora, si teclea p, verá la siguiente presentación de particiones:

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1         3      5198+  ef  EFI (FAT-12/16/32)
/dev/sda2             3        14    105808+  83  Linux

Teclee a para cambiar la marca de arrancable de una partición y luego seleccione 2. Si introduce p de nuevo, observará que ha aparecido un * en la columna "Boot".

Crear la partición de intercambio

Para crear la partición de intercambio, teclee n para crear una nueva partición, y luego p para decir a fdisk que debe ser una partición primaria. Entonces teclee 3 para crear la tercera partición primaria, /dev/sda3. Cuando le solicite el primer sector, pulse Enter. Cuando le solicite el último sector, teclee +512M (u otro tamaño que necesite para su partición de intercambio) para crear una partición de 512MB.

Una vez que haya hecho esto, teclee t para definir el tipo de partición, 3 para seleccionar la partición que acaba de crear y entonces "82" para fijar el tipo "Linux Swap".

Crear la partición raíz

En el último lugar, creamos la partición de raíz. Introduzca n para crear la nueva partición, p para decir a fdisk que cree una partición primaria. A continuación teclee 4 para crear la cuarta partición primaria, /dev/sda4. Cuando le solicite el primer sector, pulse Enter. Cuando le solicite el último sector, pulse Enter para crear una partición que ocupará todo el espacio restante en el disco. Tras completar todos estos pasos, introduciendo p se debe mostrar una tabla de particiones que debe parecerse mucho a la siguiente:

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1         3      5198+  ef  EFI (FAT-12/16/32)
/dev/sda2   *         3        14    105808+  83  Linux
/dev/sda3            15        81    506520   82  Linux swap
/dev/sda4            82      3876  28690200   83  Linux

Almacenar la tabla de particiones

Para guardar el esquema de particionamiento y salir de fdisk teclee w.

Command (m for help):w

Con las particiones creadas, es momento de construir los sistemas de archivos en ellas.