Este proyecto le permite construir una distribución de Linux desde cero
Necesitamos algunas dependencias, así que instale estas
sudo apt get install bzip2 git vim make gcc libncurses-dev flex bison bc cpio libelf-dev libssl-dev syslinux dosfstools
Ahora necesitamos clonar el kernel de Linux y editarlo
git clone --depth 1 https://github.com/torvalds/linux.git
Ahora cambie al directorio Linux
cd linux
Ahora necesitamos editar el núcleo editando las opciones que esto abrirá un menú interactivo
make menuconfig
Asegúrese de que se seleccione 64 bit kernel (NEW)
Luego, después de hacer el menuconfig si tienes más núcleos que 6 de lo que puedes hacer más de 6, como tengo 8 núcleos
make -j 8
Después de que Kenel terminó de compilar (Gentoo Moment) verá un mensaje con bZimage , haga un directorio llamado boot-files
mkdir /boot-files
Luego copie el bZimage en el directorio boot-files
cp arch/x86/boot/bzImage /boot-files
bzImage es un archivo para arrancar el CD del sistema.
cd ..
ahora clone Busybox
git clone --depth 1 https://git.busybox.net/busybox
Luego ingrese el directorio busybox
cd busybox
Entonces haz el menuconfig
make menuconfig
Vaya a settings > Build static binary (no shared libs) (NEW) Seleccione ahora Guardar, la razón por la que hicimos la construcción static es porque no queremos binarios externos ahora con la cantidad de núcleos que ha ejecutado make -j <cores> como por ejemplo
make -j 8
Después de que Busybox terminó de compilar hacer un initramds
mkdir /boot-files/initramfs
ahora corre
make CONFIG_PREFIX=/boot-files/initramfs install
initRAMFS es el sistema de archivos inicial que se carga el kernel después del arranque, pondremos a Busybox allí ahora se mueve a esa carpeta
cd /boot-files/initramfs/
ahora crea un archivo llamado init
nano init
Ahora agregue estos comandos a init
#!/bin/sh
/bin/sh
Ahora guárdelo ahora Elimine linuxrc No hay necesidad de ese archivo
rm linuxrc
Ahora agregue las permesiones de ejecución al init
chmod +x init
Ahora encuentre luego empacarlo en un archivo .cpio
find . | cpio -o -H newc > ../init.cpio
-o significa crear un nuevo archivo ahora vaya 1 directorio de espalda
cd ..
Ahora se ha creado el archivo Usar ls para verlo, pero usaremos un gestor de arranque llamado syslinux Make the BootFile
dd if=/dev/zero of=boot bs=1M count=50
Esto hará un archivo que sea de 50-100 megabytes y se llenará de ceros, usaremos el sistema de archivos fat
mkfs -t fat boot
luego corre
syslinux boot
Ahora haga un directorio llamado cualquier cosa que por seguridad usaremos m y luego Monte Boot a M
mkdir m
mount boot m
Luego copie el núcleo e initramfs al boot FS
cp bzImage init.cpio m
Ahora desmonte
unmount m
Ahora la imagen de arranque está lista para que la iniciaremos
qemu-system-x86_64 boot
Syslinux se iniciará y preguntará qué archivo usar usar
/bzImage -initrd=init.cpio
Enlaces DFS GUI DFS For Embedded Devices