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
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).
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
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:
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
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
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
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:
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)
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.