Mit diesem Projekt können Sie eine Linux -Distribution von Grund auf neu erstellen
Wir brauchen einige Abhängigkeiten, also installieren Sie diese diese
sudo apt get install bzip2 git vim make gcc libncurses-dev flex bison bc cpio libelf-dev libssl-dev syslinux dosfstools
Jetzt müssen wir den Linux -Kernel klonen und ihn bearbeiten
git clone --depth 1 https://github.com/torvalds/linux.git
Wechseln Sie nun in das Linux -Verzeichnis
cd linux
Jetzt müssen wir den Kernel bearbeiten, indem wir die Optionen bearbeiten. Dies öffnet ein interaktives Menü
make menuconfig
Stellen Sie sicher, dass 64 bit kernel (NEW) ausgewählt ist
Nachdem Sie den menuconfig haben, wenn Sie mehr Kerne haben als 6, können Sie mehr als 6 wie ich 8 Kerne haben können
make -j 8
Nachdem der Kenel fertiggestellt ist (Gentoo Moment), sehen Sie eine Nachricht mit bZimage , boot-files
mkdir /boot-files
Kopieren Sie dann das bZimage in das boot-files -Verzeichnis
cp arch/x86/boot/bzImage /boot-files
bzImage ist eine Datei zum Booten der System -CD zurück
cd ..
Jetzt klonen draufbox
git clone --depth 1 https://git.busybox.net/busybox
Geben Sie dann busybox Verzeichnis ein
cd busybox
Dann machen Sie den menuconfig
make menuconfig
Gehen Sie zu settings > Build static binary (no shared libs) (NEW) Wählen Sie es jetzt aus. Der Grund make -j <cores> warum wir static Erstellung hergestellt haben
make -j 8
Nachdem die Busybox fertiggestellt wurde, machen Sie ein initramds
mkdir /boot-files/initramfs
Jetzt rennen
make CONFIG_PREFIX=/boot-files/initramfs install
Initramfs ist das anfängliche Dateisystem, das der Kernel nach dem Booten lädt. Wir werden dort die Belastungsbox nun in diesen Ordner verschieben
cd /boot-files/initramfs/
Erstellen Sie nun eine Datei namens init
nano init
Fügen Sie nun diese Befehle zu init
#!/bin/sh
/bin/sh
Speichern Sie es nun jetzt löschen Sie linuxrc ohne diese Datei
rm linuxrc
Fügen Sie nun Exec -Permessionen zu Init hinzu
chmod +x init
Finden Sie nun und packen Sie es dann in ein .cpio -Archiv ein
find . | cpio -o -H newc > ../init.cpio
-o bedeutet, ein neues Archiv zu erstellen, jetzt 1 Dir Back
cd ..
Jetzt wurde die Datei erstellt. Verwenden Sie ls , um sie zu sehen. Wir werden jedoch einen Bootloader namens syslinux verwenden
dd if=/dev/zero of=boot bs=1M count=50
Dies erstellt eine Datei mit 50-100 Megabyte und wird mit Nullen gefüllt. Wir werden das fat Dateisystem verwenden
mkfs -t fat boot
dann rennen
syslinux boot
Machen Sie nun ein Verzeichnis namens alles andere als für die Sicherheit, wir werden m verwenden und dann den Stiefel mit M. montieren
mkdir m
mount boot m
Kopieren Sie dann den Kernel und initramfs in den boot FS
cp bzImage init.cpio m
Jetzt entlerne es
unmount m
Jetzt ist das Boot -Bild fertig, sodass wir es starten werden
qemu-system-x86_64 boot
Syslinux startet und fragt, welche Datei verwendet werden soll
/bzImage -initrd=init.cpio
Verbindungen DFS GUI DFS For Embedded Devices