Instalar Gentoo en VirtualBox

Category: VirtualBox 42 0

Instalando Gentoo como una VM de VirtualBox

Gentoo es una de las distribuciones más esotéricas que existen. Ofrece personalización a expensas de la facilidad de uso. Sin embargo, arroja luz sobre el funcionamiento interno de una instalación de Linux. Experimentar con un entorno Gentoo dentro de una VM es probablemente una gran manera de empezar a aprender sobre los sistemas operativos en general.

Vamos a ver el proceso paso a paso de la instalación del sistema operativo base junto con la explicación detrás de cada paso.

1. Conseguir el medio de instalación adecuado

La forma más fácil de instalar Gentoo es utilizando la ISO híbrida (LiveDVD). Lo que significa que la imagen de disco puede ser utilizada para instalar el sistema operativo en otro disco o simplemente puede ser utilizada como un entorno vivo para arrancar con fines de diagnóstico.

Puedes obtener el archivo de imagen aquí. Elige el que corresponde a tu plataforma de hardware. Los procesadores modernos de Intel y AMD suelen ofrecer la arquitectura AMD64.

A continuación, tienes que crear una VM en VirtualBox. Abre VirtualBox, y haz clic en el botón que dice “Nuevo” ahora puedes introducir el nombre de la VM y seleccionar $0027Tipo$0027 como Linux y $0027Versión$0027 como Gentoo 64-bit.

Ajuste el tamaño de la memoria a 2048MB y luego haga clic en “Crear” para proceder a la creación del disco duro virtual.

Los valores por defecto funcionarán bien en este caso (aunque vamos a trabajar con 32GB de espacio en disco en lugar de 8GB) y ahora puede hacer clic en “Crear” una última vez para finalizar los detalles.

Ahora, selecciona la VM recién creada en el panel de control de VirtualBox y te aparecerá un disco de inicio. Haga clic en el icono de archivo junto a él y en el explorador de archivos que se abre después de que navegar por el archivo iso gentoo livecd que ha descargado anteriormente.

Una vez que inicies la VM verás el menú de arranque con las siguientes opciones:

Seleccionar x86_64 es la opción más adecuada en este caso.

Después de esto, será recibido con una pantalla de inicio de sesión con el usuario de gentoo por defecto, haga clic en el inicio de sesión sin introducir ninguna contraseña (como se indica en la captura de pantalla siguiente).

Ahora estás técnicamente dentro de un sistema operativo Gentoo. Sin embargo, este es un medio en vivo, lo que significa que no puedes usarlo como un sistema instalado en tu disco duro (virtual). Pero puedes usar este entorno para instalar Gentoo en tu disco duro virtual.

2. Particionar el disco duro virtual

El disco .vdi que hemos creado antes es sólo un disco en bruto en este punto, unido a la máquina virtual y la propia VM está ejecutando el medio ambiente Gentoo. Ahora para instalar el entorno Gentoo en este disco para que pueda arrancar por sí mismo necesitaríamos hacer varias cosas.

  1. Hacer que el disco sea booteable.
  2. Formatear el disco con un sistema de archivos
  3. Instalar la imagen base de Gentoo en el sistema de archivos raíz.

Para llevar a cabo la 1ª tarea sólo necesitamos hacer 4 particiones del siguiente tamaño y preferiblemente en el siguiente orden.

  1. Partición del gestor de arranque para grub: 50MB de tamaño
  2. Partición de arranque formateada ext4: 500MB de tamaño
  3. Partición de intercambio para el archivo de intercambio: 2000MB de tamaño
  4. Partición raíz para que residan el SO principal y los binarios relacionados. Formateada con el sistema de archivos ext4 y va a ocupar la mayor parte del espacio restante del disco virtual.

Para hacer las particiones primero necesitamos obtener el nombre del disco virtual adjunto al sistema. Abrimos el terminal (konsole) y ejecutamos sudo -i para convertirnos en usuario root y luego ejecutamos lsblk para listar todos los dispositivos de almacenamiento en bloque.El nombre del dispositivo en nuestro caso es sda y tiene un tamaño de 32GB. A continuación tenemos que entrar en la utilidad parted para particionar este disco. Para ello ejecuta, como root:

$ parted -a optimal devsda

Ahora estamos en el CLI de la utilidad parted, empecemos por listar todas las particiones escribiendo print:

Y obtenemos un mensaje de error diciendo que el disco no es reconocido. Esto es de esperar ya que el proceso de instalación con Gentoo no está automatizado, tienes que configurar manualmente cada pequeño detalle, incluyendo los detalles de particionamiento para tu sistema base. Lo primero es lo primero, vamos a darle a nuestro disco una etiqueta adecuada.

(parted) mklabel gpt

Las etiquetas GPT son esenciales para identificar de forma única un dispositivo, incluso después de que, digamos, el sistema se reinicie y el dispositivo se conecte en un puerto diferente, esta etiqueta será responsable de decirle al sistema operativo que el disco acaba de cambiar de puerto SATA, pero que sigue teniendo los mismos datos y formato que antes.

Particionar el disco ejecutando los siguientes comandos (Las líneas que comienzan con el símbolo $0027$0027 son comentarios para explicar el comando que tienen encima):

(partición)unidad MB
Establece la unidad a MegaBytes
(parted)mkpart primary 1 20
Hace una partición primaria empezando por 1 MegaByte hasta el 20 para la bios
(parted)mkpart primary 21 500
Partición del sistema de archivos de arranque
(parted)mkpart primary 501 2500
Partición de tamaño 2000MB hecha para swap
(parted)mkpart primary 2501 -1
Partición para el sistema de archivos (raíz). -1 indica que
esta partición llega hasta el final del disco.

Puedes ver que cada partición tiene un número y es de tipo primario. Sin embargo, no están formateadas con ningún sistema de archivos en particular ni tienen ningún nombre de uso ni banderas establecidas para ellas. Vamos a hacerlo.

(parted)name 1 grub
(parted)set 1 bios_grub on
La partición número 1 tiene su bandera bios_grub establecida a uno
y se le da un nombre apropiado.
(parted)name 2 boot
(parted)name 3 swap
(parted)name 4 root
(parted)quit

Después de poner los nombres apropiados a las 4 particiones y una bandera bios_grub a la primera partición, salimos de la utilidad parted. Ahora pasamos a formatear las particiones con un sistema de archivos apropiado en nuestro shell bash habitual (todavía como usuario root) ejecutando primero el siguiente comando:

$lsblk
Para listar todas las particiones y comprobar sus nombres de nodo de dispositivo

Se puede ver que el esquema de particionamiento ha etiquetado la primera partición sda1 que corresponde a la partición grub y así sucesivamente hasta sda4. Los dispositivos están presentes en el directorio dev como devsda1 , devsda2 y así sucesivamente.

Para formatearlos como corresponde, ejecute los comandos:

$mkfs.ext4 devsda2
$mkfs.ext4 devsda4
$mkswap devsda3
$swapon devsda3

Ahora podemos montar estas particiones en el entorno vivo actual para que todas las operaciones necesarias, como la construcción del kernel, puedan realizarse allí y almacenarse de forma persistente.

$mount devsda4 mntgentoo
$mkdir mntgentooboot
$mount devsda2 mntgentooboot

Nuestra sería partición raíz está montada en mntgentoo del entorno livecd actual y de forma similar nuestra sería partición de arranque está montada en mntgentooboot.

3. Obteniendo el tarball y usando chroot

Ahora que tenemos nuestro disco preparado, es el momento de obtener el tarball del código fuente de gentoo y colocarlo allí. En el entorno del CD en vivo, abre el navegador abre este enlace y haz clic en los archivos Stage3 bajo la sección amd64 en la parte superior de la página.

Una vez completada la descarga, copia el tarball al directorio mntgentoo y extrae su contenido allí.

$cp homegentooDescargas mntgentoo
$tar xpf stage3-*.tar.xz –xattrs-include=$0027*.*$0027
–numeric-owner

En el segundo comando, se utiliza la utilidad tar para descomprimir el tarball. xpf indica al comando tar que queremos extraer x, p preservar los permisos de los archivos y f para dar a entender que estamos extrayendo archivos y no la entrada estándar.

La extensión del archivo puede no ser tar.xz en su caso. Observa el nombre de tu archivo tar y escribe en consecuencia.

La parte –xattrs-include del comando preserva los atributos (lectura, escritura y ejecución) de los archivos individuales

Y la parte –numeric-owner asegura un número de identificación de grupo y de usuario tal y como aprueba la convención de Gentoo para una configuración típica.

Si ves los contenidos que se extraerían en tu directorio mntgentoo se asemejarían a un típico entorno raíz de Unix con directorios como etc sbin, etc. La idea detrás de esto es que, una vez extraídos todos los archivos necesarios para un entorno Gentoo en funcionamiento, cambiaremos nuestro directorio raíz a mntgentoo y utilizaremos herramientas y gestores de paquetes para configurarlo. El gestor de paquetes haría los cambios en el directorio, pero sería engañado para hacer los cambios en el directorio mntgentoo en su lugar.

Como nuestra partición raíz está montada en este directorio, todos los cambios se harían allí y luego arrancaríamos este nuevo entorno una vez que hayamos terminado.

Pero primero, vamos a hacer algunos cambios en los archivos de configuración:

$nano gentoomntetcportagemake.conf

Después de la línea CFLAGS deberías añadir las siguientes líneas que permitirían a portage tratar los archivos c++ de la misma manera que los archivos c. Portage es el gestor de paquetes de Gentoo, en términos generales. Se utiliza para obtener el código fuente de los programas para que pueda compilarlos todos (automáticamente) en su sistema nativo.

$CXXFLAGS=”${CFLAGS}”

También copie el archivo resolv.conf de su entorno livecd a la nueva raíz.

$cp -L etcresolv.conf mntgentooetc

Ahora nos aseguramos de que todos los sistemas de archivos necesarios para que el kernel de Linux recopile información sobre el sistema estén disponibles cuando intente arrancar. Así que tomamos la información recopilada por la imagen livecd sobre nuestra máquina virtual y su hardware y la vinculamos a nuestro nuevo sistema de archivos raíz.

$mount -t proc mntgentooproc
$mount –rbind sys mntgentoosys
$mount –rbind dev mntgentoodev

Es el momento de hacer chroot (cambiar el root) a mntgentoo.

$chroot mntgentoo binbash
$source etcprofile
$exportar PS1=”(chroot) $PS1″

4. Compilación del kernel de Linux

Vamos a sincronizar nuestro árbol de portage (repositorio de software) con la versión oficial. Esto es similar a apt update en Ubuntu.

$emerge-webrsync

Una vez que esto termina, podemos seleccionar un perfil para nuestro sistema. Que esencialmente ajusta el sistema para un caso de uso específico (servidor, estación de trabajo, etc.). Vamos a ir con un entorno de plasma KDE que aparece en el número seis.

$eselect lista de perfiles
$eselect conjunto de perfiles 6

Las configuraciones de zona horaria y de configuración regional son las siguientes:

$ls usrsharezoneinfo

Localiza tu ubicación en este directorio. En este caso, fue AsiaDili

$cp usrsharezoneinfoContinentCity etclocaltime
$echo ” AsiaDili”> etctimezone

A continuación, descomente el juego de caracteres específico de la ubicación y el idioma que desee utilizar del archivo etclocale.gen. Descomentamos la línea es US.UTF-8 UTF-8.

$nano etclocale.gen

Aplicar los cambios:

$locale-gen
$env-update && source etcprofile

Ahora, podemos obtener las fuentes del kernel de Linux y empezar a compilarlas:

$emerge gentoo-sources
$emerge genkernel
$genkernel todo

El último comando comenzará a compilar el kernel, lo cual tomará mucho tiempo, especialmente si tienes recursos de hardware limitados.

Related Articles

Add Comment