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 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
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++

Capítulo 6
6.02 - M4-1.4.19
Output configure
Output make
Output make install
6.03 - Ncurses-6.5
Output Preconfigure
Output configure
Output make
Output make install y los otros comandos
6.04 - Bash-5.2.32
Output configure
Output make
Output make install
Output link
6.05 - Coreutils-9.5
Output configure
Output make
Output make install
Output move
6.06 - Diffutils-3.10
Output configure
Output make
Output make install
6.07 - File-5.45
Output preconfigure
Output configure
Output make
Output make install
Output remove libtool
6.08 - Findutils-4.10.0
Output configure
Output make
Output make install
6.09 - 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.14 - Sed-4.9
Output configure
Output make
Output make install
6.15 - Tar-1.35
Output configure
Output make
Output make install
6.16 - 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
Remove libtool files
6.18 - GCC-14.2.0 Pass 2
Output preconfigure
Output configure
Output make
Output make install
Output symlink
Capítulo 7
Puedes ver que no deja cambiar la carpeta mnt/lfs/lib64, esto es porque lo hemos ejecutado desde lfs... y esto pasa por no haber leido el mensaje!
Escalamos a root, comprobamos que tenemos seteada la variable LFS y si no la tenemos ... la seteamos!
volvemos a ejecutar el comando anterior. Verificamos que todas las carpetas están como root!
Llegados al 7.6 el output debería ser
7.7 - Gettext-0.22.5
Ahora vuelve el compilar paquetes, pero ahora no tenemos la variable LFS puesto que ya estamos dentro del chroot! Por lo tanto /sources será la anterior /mnt/lfs/sources.
Output configure
Output make
Output install msgfmt...
7.8 - Bison-3.8.2
Output configure
Output make
Output make install
7.9 - Perl-5.40.0
Output configure
Output make
Output make install
7.10 - Python-3.12.5
Output configure
Output make
Output make install
7.11 - Texinfo-7.1
Output configure
Output make
Output make install
7.12 - Util-linux-2.40.2
Output configure
Output make
Output make install
                











































































































