Skip to main content

LFS 12.2 systemd desde Ubuntu 24.04 x64

Para la práctica se hace uso del LFS versión https://www.linuxfromscratch.org/lfs/view/12.2-systemd

El hardware asignado a la VM es de:

  • 04 cpus
  • 08 gb de memoria ram
  • 30 gb de disco duro (donde residirá sistema LFS, importante que sea SATA)
    • 28 gb para partición root
    • 02 gb para partición swap

Capítulo 2

2.2 Host Requirements

Iniciando en https://www.linuxfromscratch.org/lfs/view/12.2-systemd/chapter02/hostreqs.html, ejecutando el script de host system requirements se encuentra que hay paquetes que no está instalados y que el sistema shell sh no es bash.

Instalando los paquetes necesarios

sudo apt install bison gawk gcc make g++ texinfo

Haciendo que sh sea bash. Comprueba a donde apunta la shell sh (el cual es un link simbolico).

ls -l /usr/bin/sh

Como puedes ver... apunta a dash y no a bash. Por lo tanto elimina el link sh y crealo de nuevo.

sudo rm /usr/bin/sh
sudo ln -s /usr/bin/bash /usr/bin/sh

Ejecuta de nuevo el comando

ls -l /usr/bin/sh

Ahora podrás ver que apunta a bash.

Volviendo a ejecutar el script ahora indicará que todo es correcto.

2.5 Creating a File System on the partition

Al añadir un disco duro en el sistema virtual seguramente le habrá dado el identificador sda. Por lo que ahora es necesario crear mínimo 2 particiones (root y swap). Estas particiones pueden ser creadas con gparted, fdisk o la herramienta que más cómoda te sea.

El motivo que se haya dado solo 2gb a la particion swap es que para el sistema LFS que se le va a dar en la asignatura es suficiente y más teniendo 8gb de ram... en la actualidad el 1=1 en ram swap no se suele cumplir, porque hay ram suficiente... cosa que antes no pasaba.

Ejecutando los comandos que indica, reemplazando los datos por el nombre de la partición

mkfs -v -t ext4 /dev/sda1

y para la swap

mkswap /dev/sda2

2.6 Setting the $LFS variable

En este apartado se va a configurar la variable LFS que se va a usar durante TODA la práctica. Como recomendacion es mejor hacer toda la práctica en una misma terminal, en caso de que el usuario quiera abrir varias terminales tendrá que tener en cuenta que ha de configurar la variable LFS en todas aquellas que vaya a usar para la práctica.

2.7 Mounting the new partition

A continuación hay que crear la carpeta para ello es necesario hacerlo con permiso de sudo ya que si no, no dejará crearla.

A continuación se monta el disco en la carpeta creada

Finalmente activar la swap en la partición definida para la swap. En este caso sda2.

Capítulo 3

Se han de descargar los sources indicados por los profesores y disponibles en la plataforma del campus, no los que indica el libro.

Capítulo 5

En este cápitulo, tal y como se indica en

https://www.linuxfromscratch.org/lfs/view/12.2-systemd/partintro/generalinstructions.html

por cada paquete y salvo que se indique lo contrario, se ha de descomprimir el tar, entrar, configurar, compilar, instalar, subir al directorio sources y eliminar la carpeta descomprimida.

No seguir estos pasos puede conllevar a errores en la creación de LFS y tener que volver a empezar desde cero.

5.2 Binutils 2.43.1 Pass 1

Output del make install

y tal y como se indica en los requisitos generales... subimos a la carpeta sources y eliminamos la carpeta extraida del paquete.

5.3 GCC-14.2.0 Pass 1

Output del configure

Output del make

Output del make install

5.4 Linux-6.10.5 API Headers

5.5 Glibc-2.40

Output configure

Output make

Output make install

Output de la comprobación

y efectivamente si todo ha ido bien... así sale

5.6 Libstdc++ from GCC-14.2.0

Tal como indica, se ha de descomprimir el paquete gcc de nuevo ...

Output del configure de libstdc++

Output del make

Output del make install

Output comando remove

Capítulo 6

6.2 - M4-1.4.19

Output configure

Output make

Output make install

6.3 - Ncurses-6.5

Output Preconfigure

Output configure

Output make

Output make install y los otros comandos

6.4 - Bash-5.2.32

Output configure

Output make

Output make install

6.5 - Coreutils-9.5

Output configure

Output make

Output make install

Output move

6.6 - Diffutils-3.10

Output configure

Output make

Output make install

6.7 - File-5.45

Output preconfigure

Output configure

Output make

Output make install

Output remove libtool

6.8 - Findutils-4.10.0

Output configure

Output make

Output make install

6.9 - Gawk-5.3.0

Output configure

Output make

Output make install

6.10 - Grep-3.11

Output configure

Output make

Output make install

6.11 - Gzip-1.13

Output configure

Output make

Output make install

6.12 - Make-4.4.1

Output configure

Output make

Output make install

6.13 - Patch-2.7.6

Output configure

Output make

Output make install

6.1214 - Sed-4.9

Output configure

Output make

Output make install

6.1315 Tar-1.35

Output configure

Output make

Output make install

6.1416 - Xz-5.6.2

Output configure

Output make

Output make install

Remove liblzma

6.17 - Binutils-2.43.1 Pass 2

Output configure

Output make

Output make install

6.15

Remove

Outputlibtool configure Output make Output make installfiles

6.1618 - GCC-14.2.0 Pass 2

Output configure Output make Output make install

Output configure Output make Output make install

Output configure Output make Output make install