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: PPC64/Instalación/Discos
Introducción a los dispositivos de bloque
Dispositivos de bloque
Examinaremos de forma detallada los aspectos de Gentoo Linux así como Linux en general que tengan que ver con discos, sistemas de archivos de Linux, particiones y dispositivos de bloque. Una vez familiarizados con las entrañas de los discos y sistemas de archivos, podemos establecer las particiones y sistemas de archivos para la instalación de Gentoo Linux.
Para empezar, explicaremos el término dispositivos de bloque. Quizás el dispositivo de bloque más conocido es el que representa la primera unidad de disco llamada /dev/sda. Las unidades SCSI y Serial ATA son etiquetadas mediante /dev/sd*; incluso las unidades IDE son reconocidas como /dev/sd* con la estructura libata del núcleo más reciente. Si está utilizando la antigua estructura de unidades, entonces la primera unidad IDE será /dev/hda.
Los dispositivos de bloque mencionados anteriormente representan una interfaz abstracta de disco. Las aplicaciones pueden hacer uso de estas interfaces para interactúar con el disco duro de la máquina sin tener que saber el tipo de unidad que tiene: IDE, SCSI, o cualquier otra. La aplicación puede simplemente dirigirse al almacenamiento en el disco como a una serie de bloques contiguos de acceso aleatorio de 512-bytes.
Partitions and slices
Although it is theoretically possible to use a full disk to house a Linux system, this is almost never done in practice. Instead, full disk block devices are split up in smaller, more manageable block devices. On most systems, these are called partitions. Other architectures use a similar technique, called slices.
Designing a partition scheme
How many partitions and how big?
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.
It very much depends on what the administrator wants to achieve. 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 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 disadvantages as well. If not configured properly, the system might have lots of free space on one partition and none on another. Another nuisance is that separate partitions - especially for important mount points like /usr/ or /var/ - often require the administrator to boot with an initramfs to mount the partition before other boot scripts start. This isn't always the case though, so results may vary.
There is also a 15-partition limit for SCSI and SATA unless the disk uses GPT labels.
What about swap space?
There is no perfect value for the swap partition. The purpose of swap space is to provide disk storage to the kernel when internal 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), freeing memory. Of course, if that memory is suddenly needed, these pages need to be put back in memory (page-in) which will take a while (as disks are very slow compared to internal memory).
When the system is not going to run memory intensive applications or the system has lots of memory available, then it probably does not need much swap space. However, swap space is also used to store the entire memory in case of hibernation. If the system is going to need hibernation, then a bigger swap space is necessary, often at least the amount of memory installed in the system.
Default: Using mac-fdisk
These instructions are for the Apple G5 system.
Start mac-fdisk:
root #
mac-fdisk /dev/sda
First delete the partitions that have been cleared previously to make room for Linux partitions. Use d in mac-fdisk to delete those partition(s). It will ask for the partition number to delete.
Second, create an Apple_Bootstrap partition by using b. It will ask what block to start from. Enter the number of the first free partition, followed by a p. For instance this is 2p.
This partition is not a "boot" partition. It is not used by Linux at all; there is no need to place any filesystem on it and it should never be mounted. PPC users don't need an extra partition for /boot.
Now create a swap partition by pressing c. Again mac-fdisk will ask what block to start from. As we used 2 before to create the Apple_Bootstrap partition, enter 3p. When asked for the size, enter 512M (or whatever size needed). When asked for a name, enter swap (mandatory).
To create the root partition, enter c, followed by 4p to select from what block the root partition should start. When asked for the size, enter 4p again. mac-fdisk will interpret this as "Use all available space". When asked for the name, enter root (mandatory).
To finish up, write the partition to the disk using w and q to quit mac-fdisk.
To make sure everything is ok, run mac-fdisk once more and check whether all the partitions are there. If not all created partitions are shown, or it is missing some of the changes that were made, then reinitialize the partitions by pressing i in mac-fdisk. Note that this will recreate the partition map and thus remove all the partitions.
Alternative: Using fdisk
The following instructions are for IBM pSeries, iSeries, and OpenPower systems.
When planning to use a RAID disk array for the Gentoo installation on POWER5-based hardware, first run iprconfig to format the disks to Advanced Function format and create the disk array. Emerge sys-fs/iprutils after the installation is complete.
If the system has an ipr-based SCSI adapter, start the ipr utilities now.
root #
/etc/init.d/iprinit start
The following parts explain how to create the example partition layout described previously, namely:
Partition | Description |
---|---|
/dev/sda1 | PPC PReP Boot partition |
/dev/sda2 | Swap partition |
/dev/sda3 | Root partition |
Change the partition layout according to personal preference.
Viewing current partition layout
fdisk is a popular and powerful tool to split a disk into partitions. Fire up fdisk on the current disk (in our example, we use /dev/sda):
root #
fdisk /dev/sda
Command (m for help)
If there is still an AIX partition layout on the system, then the following error message will be displayed:
root #
fdisk /dev/sda
There is a valid AIX label on this disk. Unfortunately Linux cannot handle these disks at the moment. Nevertheless some advice: 1. fdisk will destroy its contents on write. 2. Be sure that this disk is NOT a still vital part of a volume group. (Otherwise you may erase the other disks as well, if unmirrored.) 3. Before deleting this physical volume be sure to remove the disk logically from your AIX machine. (Otherwise you become an AIXpert).
Don't worry, new empty DOS partition table can be created by pressing o.
This will destroy any installed AIX version!
Type p to display the disk current partition configuration:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 12 53266+ 83 Linux /dev/sda2 13 233 981571+ 82 Linux swap /dev/sda3 234 674 1958701+ 83 Linux /dev/sda4 675 6761 27035410+ 5 Extended /dev/sda5 675 2874 9771268+ 83 Linux /dev/sda6 2875 2919 199836 83 Linux /dev/sda7 2920 3008 395262 83 Linux /dev/sda8 3009 6761 16668918 83 Linux
This particular disk is configured to house six Linux filesystems (each with a corresponding partition listed as "Linux") as well as a swap partition (listed as "Linux swap").
Removing all partitions
First remove all existing partitions from the disk. Type d to delete a partition. For instance, to delete an existing /dev/sda1:
Command (m for help):
d
Partition number (1-4): 1
The partition has been scheduled for deletion. It will no longer show up when typing p, but it will not be erased until the changes have been saved. If a mistake was made and the session needs to be aborted, then type q immediately and hit Enter and none of the partitions will be deleted or modified.
Now, assuming that indeed all partitions need to be wiped out, repeatedly type p to print out a partition listing and then type d and the number of the partition to delete it. Eventually, the partition table will show no more partitions:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System
Now that the in-memory partition table is empty, let's create the partitions. We will use a default partitioning scheme as discussed previously. Of course, don't follow these instructions to the letter but adjust to personal preference.
Creating the PPC PReP boot partition
First create a small PReP boot partition. Type n to create a new partition, then p to select a primary partition, followed by 1 to select the first primary partition. When prompted for the first cylinder, hit Enter. When prompted for the last cylinder, type +7M to create a partition 7 MB in size. After this, type t to set the partition type, 1 to select the partition just created and then type in 41 to set the partition type to "PPC PReP Boot". Finally, mark the PReP partition as bootable.
The PReP partition has to be smaller than 8 MB!
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-6761, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-6761, default 6761): +8M
Command (m for help):
t
Selected partition 1 Hex code (type L to list codes): 41 Changed system type of partition 1 to 41 (PPC PReP Boot)
Command (m for help):
a
Partition number (1-4): 1 Command (m for help):
Now, when looking at the partition table again (through p), the following partition information should be shown:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 3 13293 41 PPC PReP Boot
Creating the swap partition
Now create the swap partition. To do this, type n to create a new partition, then p to tell fdisk to create a primary partition. Then type 2 to create the second primary partition, /dev/sda2 in our case. When prompted for the first cylinder, hit Enter. When prompted for the last cylinder, type +512M to create a partition 512MB in size. After this, type t to set the partition type, 2 to select the partition just created and then type in 82 to set the partition type to "Linux Swap". After completing these steps, typing p should display a partition table that looks similar to this:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 13293 41 PPC PReP Boot /dev/sda2 4 117 506331 82 Linux swap
Creating the root partition
Finally, create the root partition. To do this, type n to create a new partition, then p to tell fdisk to create a primary partition. Then type 3 to create the third primary partition, /dev/sda3 in our case. When prompted for the first cylinder, hit Enter. When prompted for the last cylinder, hit enter to create a partition that takes up the rest of the remaining space on the disk. After completing these steps, typing p should display a partition table that looks similar to this:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 13293 41 PPC PReP Boot /dev/sda2 4 117 506331 82 Linux swap /dev/sda3 118 6761 29509326 83 Linux
Saving the partition layout
To save the partition layout and exit fdisk, type w.
Command (m for help):
w
Crear los sistemas de archivos
Introducción
Creadas las particiones, debemos formatearlas para poder colocarles un sistema de archivos. En la próxima sección se describen los distintos sistemas de archivos soportados en Linux. Los lectores que ya sepan los sistemas de archivos que pueden usar deben ir a Creación de un sistema de archivos en una partición. En caso contrario siga leyendo para conocer los sistemas de archivos disponibles...
Sistemas de archivos
Existen varios sistemas de archivos disponibles. Algunos se consideran estables en la arquitectura ppc64 - se aconseja leer sobre los sistemas de archivos y su estado de soporte antes de seleccionar uno de los más experimentales para particiones importantes.
- btrfs
- Un sistema de archivos de nueva generación que proporciona muchas caracterísyicas avanzadas como instantánea, autocorrección mediante sumas de comprobación, compresión transparente, subvolúmenes y RAID integrado. Algunas distribuciones han empezado a proporcionarlo como una opción aparte, pero no está listo para su uso en producción. Informaciones sobre corrupción del sistema de archivos son normales. Sus desarrolladores urgen a usar la última versión del núcleo por seguridad porque los antiguos tienen problemas conocidos. Esta ha sido la situación durante años y es demasiado pronto para decir si las cosas han cambiado. Las correcciones a problemas de corrupción raramente son llevadas a núcleos anteriores. Tenga cuidado cuando use este sistema de archivos!
- ext2
- Es un sistema de archivos Linux probado, pero no dispone de soporte para transacciones, lo que significa que las comprobaciones rutinarias al arrancar pueden tardar bastante tiempo. Ahora, hay muchas opciones alternativas, sistemas de archivos de nueva generación con soporte para transacciones cuya integridad puede ser verificada con mayor rapidez, por lo que gozan de mayor popularidad. Los sistemas de archivos transaccionales previenen retrasos durante el reinicio del equipo, incluso cuando el sistema de archivos está en un estado inconsistente.
- ext3
- Es la versión transaccional de ext2, que proporciona soporte para una rápida recuperación además de otros modos mejorados de funcionamiento como registro completo y ordenado de datos. Utiliza un árbol HTree como índice que permite un alto rendimiento en casi todas las situaciones. En resumen ext3 es un sistema de ficheros muy bueno y fiable.
- ext4
- El sistema de ficheros ext4 se creó como una bifurcación en el código (fork) del sistema de archivos ext3, incorporando nuevas características, mejoras de rendimiento y eliminación de los limites de tamaño realizando cambios moderados en el formato del disco. Puede trabajar con volúmenes de hasta 1 EB y con un tamaño máximo de fichero de 16TB. En lugar de la asignación de bloques usando mapas de bits que emplean los sistemas de archivos clásicos ext2/3, ext4 utiliza extents (en inglés), lo cual mejora el rendimiento con los archivos grandes y reduce la fragmentación. Ext4 también ofrece un algoritmo más sofisticado de asignación de bloques (asignación demorada y asignación múltiple de bloques) ofreciendo al controlador del sistema de archivos más formas de optimizar la disposición de los datos en el disco. Ext4 es el sistema de archivos recomendado para las plataformas de propósito general.
- f2fs
- El sistema de archivos con dispositivos ideado para dispositivos flash fue creado originalmente por Samsung para utilizarlo con memoria flash NAND. En el segundo cuarto del año 2016, este sistema de archivos aún se considera inmaduro pero es una opción decente cuando se instala Gentoo en tarjetas microSD, discos USB u otros dispositivos de almacenamiento basados en la tecnología flash.
- The Flash-Friendly File System was originally created by Samsung for the use with NAND flash memory. As of Q2, 2016, this filesystem is still considered immature, but it is a decent choice when installing Gentoo to microSD cards, USB drives, or other flash-based storage devices.
- JFS
- Es un sistema de archivos de alto rendimiento con soporte transaccional. Es de IBM. JFS es un sistema de archivos ligero, rápido y fiable, basado en un árbol B+ con un buen rendimiento bajo varias condiciones.
- ReiserFS
- Es un sistema de archivos B+ (basado en árboles balanceados) que tiene un gran rendimiento, especialmente cuando trata con muchos archivos pequeños, a costa de emplear más ciclos de CPU. ReiserFS parece tener menos mantenimiento que otros sistemas de archivos.
- XFS
- Es un sistema de archivos transaccional que trae un juego de características robustas y está optimizado para ser escalable. XFS parece ser menos robusto ante fallos hardware.
- vfat
- También conocido como FAT32, es soportado por Linux aunque no permite ninguna configuración de permisos. Se usa mayormente por interoperabilidad con otros sistemas operativos (principalmente Microsoft Windows) aunque también es necesario para algunos sistema de firmware (como UEFI).
- NTFS
- Este sistema de archivos de "Nueva Tecnología" es el buque insignia de los sistemas de archivos de Microsoft Windows. Al igual que el sistema vfat descrito arriba, no almacena los ajustes de permisos o los atributos extendidos necesarios para que los sistemas BSD o Linux funcionen correctamente, por lo tanto no se pueden utilizar como sistemas de archivos del raíz. Debería utilizarse únicamente para interoperar con los sistemas Microsoft Windows (observar el énfasis especial en únicamente).
Cuando se usa ext2, ext3 o ext4 en una partición pequeña (menos de 8GB), debe crearse el sistema de archivos especificando las opciones adecuadas para reservar suficientes inodos. La orden mke2fs (mkfs.ext2) utiliza la proporción "bytes por inodo" para calcular cuántos inodos debe tener un sistema de archivos. En particiones pequeñas es aconsejable aumentar el número de inodos respecto al calculado de esa manera.
En ext2, se hacer usando la siguiente órden:
root #
mkfs.ext2 -T small /dev/<dispositivo>
En ext3 y ext4, hay que añadir la opción -j
para habilitar el diario (journaling):
root #
mkfs.ext2 -j -T small /dev/<device>
Así se generarán el cuadruple de inodos de manera que los "bytes por inodo" se reducen desde 1 por cada 16kB hasta 1 por cada 4kB. Este ajuste aun puede hacerse mas fino indicando la proporción que se desee:
root #
mkfs.ext2 -i <proporción> /dev/<dispositivo>
Creación de un sistema de archivos en una partición
Para crear un sistema de archivos en una partición o volumen, existen utilidades de espacio de usuario disponibles para todos los sistemas de archivos. Hacer clic en el nombre del sistema de archivos de la tabla de abajo para obtener información de cada sistema de archivos:
Sistema de archivos | Orden de creación | ¿En el CD mínimo? | Paquete |
---|---|---|---|
btrfs | mkfs.btrfs | Sí | sys-fs/btrfs-progs |
ext2 | mkfs.ext2 | Sí | sys-fs/e2fsprogs |
ext3 | mkfs.ext3 | Sí | sys-fs/e2fsprogs |
ext4 | mkfs.ext4 | Sí | sys-fs/e2fsprogs |
f2fs | mkfs.f2fs | Sí | sys-fs/f2fs-tools |
jfs | mkfs.jfs | Sí | sys-fs/jfsutils |
reiserfs | mkfs.reiserfs | Sí | sys-fs/reiserfsprogs |
xfs | mkfs.xfs | Sí | sys-fs/xfsprogs |
vfat | mkfs.vfat | Sí | sys-fs/dosfstools |
NTFS | mkfs.ntfs | Sí | sys-fs/ntfs3g |
Por ejemplo, para formatear la partición de arranque (/dev/sda1) en ext2 y la partición raíz (/dev/sda3) en ext4, tal como se usa en la estructura de particiones de ejemplo, se utilizarán las siguientes órdenes:
root #
mkfs.ext2 /dev/sda1
root #
mkfs.ext4 /dev/sda3
Ahora puede crear los sistemas de archivos sobre sus particiones (o volúmenes lógicos) recién creados.
Activar la partición de intercambio
mkswap es la orden utilizada para inicializar particiones de intercambio:
root #
mkswap /dev/sda2
Para activar la partición, use swapon:
root #
swapon /dev/sda2
Cree y active la partición de intercambio con las órdenes mencionadas arriba.
Montar la partición raíz
Ahora que las particiones están inicializadas y albergan sistemas de archivos, es hora de montarlas. Utilice la orden mount sin olvidar crear los puntos de montaje necesarios para cada partición que haya creado. Como ejemplo montamos la partición raíz:
root #
mount /dev/sda3 /mnt/gentoo
Si necesita que su /tmp/ resida en una partición separada, asegúrese de cambiar los permisos después de montarla:
root #
chmod 1777 /mnt/gentoo/tmp
Más adelante, siguiendo estas instrucciones, necesitaremos montar el sistema de archivos proc (una interfaz virtual del núcleo) así como otros pseudo-sistemas de archivos del núcleo. Pero primero instalaremos el sistema base de Gentoo