Handbook:Alpha/Blocks/Disks
Particiones
Aunque es teóricamente posible usar un disco entero para alojar un sistema Linux, esto no es hecho casi nunca en la práctica. En cambio, los dispositivos de bloque enteros son divididos en pequeños y más manejables dispositivos de bloque. En sistemas Alpha, estos son llamados "particiones".
En las siguientes secciones, las instrucciones de instalación utilizarán el ejemplo de particionado para la configuración ARC/AlphaBIOS. Por favor, ajústelo a sus preferencias personales.
Designing a partition scheme
How many partitions and how big?
The design of disk partition layout is highly dependent on the demands of the system and the file system(s) applied to the device. If there are lots of users, then it is advised to have /home on a separate partition which will increase security and make backups and other types of maintenance easier. If Gentoo is being installed to perform as a mail server, then /var should be a separate partition as all mails are stored inside the /var directory. Game servers may have a separate /opt partition since most gaming server software is installed therein. The reason for these recommendations is similar to the /home directory: security, backups, and maintenance.
In most situations on Gentoo, /usr and /var should be kept relatively large in size. /usr hosts the majority of applications available on the system and the Linux kernel sources (under /usr/src). By default, /var hosts the Gentoo ebuild repository (located at /var/db/repos/gentoo) which, depending on the file system, generally consumes around 650 MiB of disk space. This space estimate excludes the /var/cache/distfiles and /var/cache/binpkgs directories, which will gradually fill with source files and (optionally) binary packages respectively as they are added to the system.
How many partitions and how big very much depends on considering the trade-offs and choosing the best option for the circumstance. Separate partitions or volumes have the following advantages:
- Choose the best performing filesystem for each partition or volume.
- The entire system cannot run out of free space if one defunct tool is continuously writing files to a partition or volume.
- If necessary, file system checks are reduced in time, as multiple checks can be done in parallel (although this advantage is realized more with multiple disks than it is with multiple partitions).
- Security can be enhanced by mounting some partitions or volumes read-only,
nosuid
(setuid bits are ignored),noexec
(executable bits are ignored), etc.
However, multiple partitions have certain disadvantages as well:
- If not configured properly, the system might have lots of free space on one partition and little free space on another.
- A separate partition for /usr/ may require the administrator to boot with an initramfs to mount the partition before other boot scripts start. Since the generation and maintenance of an initramfs is beyond the scope of this handbook, we recommend that newcomers do not use a separate partition for /usr/.
- There is also a 15-partition limit for SCSI and SATA unless the disk uses GPT labels.
Installations that intend to use systemd as the service and init system must have the /usr directory available at boot, either as part of the root filesystem or mounted via an initramfs.
What about swap space?
RAM size | Suspend support? | Hibernation support? |
---|---|---|
2 GB or less | 2 * RAM | 3 * RAM |
2 to 8 GB | RAM amount | 2 * RAM |
8 to 64 GB | 8 GB minimum, 16 maximum | 1.5 * RAM |
64 GB or greater | 8 GB minimum | Hibernation not recommended! Hibernation is not recommended for systems with very large amounts of memory. While possible, the entire contents of memory must be written to disk in order to successfully hibernate. Writing tens of gigabytes (or worse!) out to disk can can take a considerable amount of time, especially when rotational disks are used. It is best to suspend in this scenario. |
There is no perfect value for swap space size. The purpose of the space is to provide disk storage to the kernel when internal dynamic memory (RAM) is under pressure. A swap space allows for the kernel to move memory pages that are not likely to be accessed soon to disk (swap or page-out), which will free memory in RAM for the current task. Of course, if the pages swapped to disk are suddenly needed, they will need to be put back in memory (page-in) which will take considerably longer than reading from RAM (as disks are very slow compared to internal memory).
When a system is not going to run memory intensive applications or has lots of RAM available, then it probably does not need much swap space. However do note in case of hibernation that swap space is used to store the entire contents of memory (likely on desktop and laptop systems rather than on server systems). If the system requires support for hibernation, then swap space larger than or equal to the amount of memory is necessary.
As a general rule for RAM amounts less than 4 GB, the swap space size is recommended to be twice the internal memory (RAM). For systems with multiple hard disks, it is wise to create one swap partition on each disk so that they can be utilized for parallel read/write operations. The faster a disk can swap, the faster the system will run when data in swap space must be accessed. When choosing between rotational and solid state disks, it is better for performance to put swap on the solid state hardware.
It is worth noting that swap files can be used as an alternative to swap partitions; this is mostly helpful for systems with very limited disk space.
Utilizar fdisk para particionar un disco (únicamente SRM)
En los siguientes párrafos se explica como crear el ejemplo del esquema de particiones para el SRM:
Particiones | Descripción |
---|---|
/dev/sda1 | Partición de intercambio |
/dev/sda2 | Partición raíz |
/dev/sda3 | Todo el disco (requerido) |
Cambie el equema de particiones según sus preferencias particulares.
Identificar los discos disponibles
Para conocer los discos que están funcionando en el sistema, utilice las siguientes órdenes:
Para discos IDE:
root #
dmesg | grep 'drive$'
Para discos SCSI:
root #
dmesg | grep 'scsi'
La salida indicará los discos que se detectaro y su respectiva entrada en /dev/. En los siguientes párrafos asumiremos que el disco en uno SCSI en /dev/sda.
Ahora lance fdisk:
root #
fdisk /dev/sda
Borrar todas las particiones
Si el disco está completamente vacío, deberá en primer lugar crear una etiqueta de disco BSD.
Command (m for help):
b
/dev/sda contains no disklabel. Do you want to create a disklabel? (y/n) y A bunch of drive-specific info will show here 3 partitions: # start end size fstype [fsize bsize cpg] c: 1 5290* 5289* unused 0 0
Comenzaremos eliminando todas las particiones excepto la partición 'c' (es un requisito para utilizar las etiquetas BSD). A continuación se muestra la forma de eliminar una partición (en el ejemplo utilizamos 'a'). Repita el proceso hasta borrar el resto de particiones (recuerde no eliminar la partición 'c').
Utilice la tecla p para ver las particiones existentes. La tecla d se usa para eliminar una partición.
BSD disklabel command (m for help):
p
8 partitions: # start end size fstype [fsize bsize cpg] a: 1 235* 234* 4.2BSD 1024 8192 16 b: 235* 469* 234* swap c: 1 5290* 5289* unused 0 0 d: 469* 2076* 1607* unused 0 0 e: 2076* 3683* 1607* unused 0 0 f: 3683* 5290* 1607* unused 0 0 g: 469* 1749* 1280 4.2BSD 1024 8192 16 h: 1749* 5290* 3541* unused 0 0
BSD disklabel command (m for help):
d
Partition (a-h): a
Después de repetir el proceso para todas la particiones, el listado debería mostrar algo como lo siguiente:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] c: 1 5290* 5289* unused 0 0
Crear la partición de intercambio
En dispositivo basados en Alpha no es necesario disponer de una partición distinta para arrancar. Sin embargo, el primer cilindro no se puede utilizar como la imagen aboot que se colocará allí.
Crearemos una partición de intercambio que comience en el tercer cilindro con un tamaño total de 1 GB. Utilce n para crear esta nueva partición. Una vez creada, cambiaremos su tipo a 1 (uno), que significa intercambio.
BSD disklabel command (m for help):
n
Partition (a-p): a First cylinder (1-5290, default 1): 3 Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):
t
Partition (a-c): a Hex code (type L to list codes): 1
Después de estos pasos, se debería mostrar un esquema similar al siguiente:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] a: 3 1003 1001 swap c: 1 5290* 5289* unused 0 0
Crear la partición raíz
Crearemos ahora la partición raíz comenzando por el primer cilindro después de la de intercambio. Utilice la orden p para ver dónde acaba la partición de intercambio. En nuestro ejemplo, esto es en 1003, lo que hace que la partición raíz comience en 1004.
Otro problema que encontramos es que actualmente hay una incidencia en fdisk que hace que parezca que el número de cilindros disponibles es uno más sobre el número real. En otras palabras, cuando se pregunta por el último cilindro, decremente en uno el número de cilindro (en este ejemplo: 5290).
Cuando se haya creado la partición, cambiaremos el tipo a 8 para ext2.
BSD disklabel command (m for help):
n
Partition (a-p): b First cylinder (1-5290, default 1): 1004 Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):
t
Partition (a-c): b Hex code (type L to list codes): 8
El esquema de particiones resultante debería ser similar al siguiente:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] a: 3 1003 1001 swap b: 1004 5289 4286 ext2 c: 1 5290* 5289* unused 0 0
Guarde el esquema de particiones y salga
Salga de la aplicación fdisk tecleando w. Esto también guardará la disposición de particiones.
Command (m for help):
w
Usar fdisk para particionar el disco (solo para ARC/AlphaBIOS)
En los siguientes párrafos se explica como crear el ejemplo del esquema de particiones para el ARC/AlphaBIOS:
Partición | Descripción |
---|---|
/dev/sda1 | Partición de arranque |
/dev/sda2 | Partición de intercambio |
/dev/sda3 | Partición raíz |
Cambie el esquema de particiones acorde a sus preferencias personales.
Identificar los discos disponibles
Para averiguar qué discos están funcionando en el sistema, utilice las siguientes órdenes:
Para discos IDE:
root #
dmesg | grep 'drive$'
Para discos SCSI:
root #
dmesg | grep 'scsi'
De esta salida debería ser fácil ver qué discos se detectaron y su respectiva entrada /dev/. En los siguientes párrafos asumiremos que el disco es SCSI en /dev/sda.
Ahora lance fdisk:
root #
fdisk /dev/sda
Eliminar todas las particiones
Si el disco duro está completamente vacío, entonces en primer lugar cree la etiqueta de disco DOS.
Command (m for help):
o
Building a new DOS disklabel.
Comenzaremos eliminando todas las particiones. A continuación se muestra como eliminar una partición (en el ejemplo usamos '1'). Repita el proceso para eliminar otras particiones.
Utilice la tecla p para mostrar las particone existentes. La tecla d se usa para eliminar una partición.
command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 478 489456 83 Linux /dev/sda2 479 8727 8446976 5 Extended /dev/sda5 479 1433 977904 83 Linux Swap /dev/sda6 1434 8727 7469040 83 Linux
command (m for help):
d
Partition number (1-6): 1
Crear la partición de arranque
En sistema Alpha que utilizan MILO para arrancar, tenemos que crear un pequeña partición vfat.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-8727, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):
t
Selected partition 1 Hex code (type L to list codes): 6 Changed system type of partition 1 to 6 (FAT16)
Crear la partición de intercambio
Crearemos una partición de intercambio con un tamaño total de 1GB. Utilice n para crear una nueva partición.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (17-8727, default 17): 17 Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):
t
Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap)
Una vez realizados estos pasos, se mostrará un esquema similar al siguiente:
Command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 16 16368 6 FAT16 /dev/sda2 17 971 977920 82 Linux swap
Crear la partición raíz
Ahora crearemos la partición raíz. De nuevo, simplemente use la orden n.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (972-8727, default 972): 972 Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727
Una vez realizados estos pasos, se mostrará un esquema similar al siguiente:
Command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 16 16368 6 FAT16 /dev/sda2 17 971 977920 82 Linux swap /dev/sda3 972 8727 7942144 83 Linux
Guardar el esquema de particiones y salir
Guarde los cambios realizados en fdisk tecleando w.
Command (m for help):
w
Ahora que se han creado las particiones, continuar con Crear los sistemas de ficheros.