このプロジェクトを使用すると、Linuxディストリビューションをゼロから構築できます
いくつかの依存関係が必要なので、これらをインストールしてください
sudo apt get install bzip2 git vim make gcc libncurses-dev flex bison bc cpio libelf-dev libssl-dev syslinux dosfstools
次に、Linuxカーネルをクローンして編集する必要があります
git clone --depth 1 https://github.com/torvalds/linux.git
次に、 Linuxディレクトリに変更します
cd linux
これで、オプションを編集してカーネルを編集する必要があります。
make menuconfig
64 bit kernel (NEW)が選択されていることを確認してください
その後、 menuconfigを作成した後、6個以上のコアを作成できる場合は6個以上のコアを作成できます。
make -j 8
Kenelがコンパイルを終えた後(Gentoo Moment)、 bZimageでメッセージが表示され、 boot-filesという名前のディレクトリを作成します
mkdir /boot-files
次に、 bZimage boot-filesディレクトリにコピーします
cp arch/x86/boot/bzImage /boot-files
bzImageは、システムを起動するためのファイルですCDバック
cd ..
今、Busyboxをクローンします
git clone --depth 1 https://git.busybox.net/busybox
次に、 busyboxディレクトリを入力します
cd busybox
次に、 menuconfigを作ります
make menuconfig
settings > Build static binary (no shared libs) (NEW)を選択してください。これを保存しました。 staticビルドを作成した理由は、実行したコアの量を使用して外部make -j <cores>を必要としないためです。
make -j 8
Busyboxがコンパイルを終えた後、 initramdsを作成します
mkdir /boot-files/initramfs
今実行します
make CONFIG_PREFIX=/boot-files/initramfs install
initramfsは初期ファイルシステムであり、起動後にカーネルがロードされます。
cd /boot-files/initramfs/
ここで、 initというファイルを作成します
nano init
次に、これらのコマンドをinitに追加します
#!/bin/sh
/bin/sh
次に保存今すぐlinuxrcを削除しますそのファイルは必要ありません
rm linuxrc
次に、exec Permessionsをinitに追加します
chmod +x init
次に、 .cpioアーカイブにパックします
find . | cpio -o -H newc > ../init.cpio
-o新しいアーカイブを作成することを意味します1 dirバック
cd ..
これで、ファイルが作成されたファイルがlsを使用して表示されますが、 syslinuxと呼ばれるブートローダーを使用します。
dd if=/dev/zero of=boot bs=1M count=50
これにより、50〜100メガバイトのファイルが作成され、Zerosで満たされ、 fatファイルシステムを使用します
mkfs -t fat boot
その後、実行します
syslinux boot
ここで、安全のためにmを使用してMを使用してからmにマウントするディレクトリを作成します。
mkdir m
mount boot m
次に、カーネルとinitramfsをboot fsにコピーします
cp bzImage init.cpio m
今それをアンマウントします
unmount m
これでブートイメージの準備ができたので、起動します
qemu-system-x86_64 boot
Syslinuxが起動し、使用するファイルを尋ねます
/bzImage -initrd=init.cpio
DFS For Embedded Devices DFS GUI DFSをリンクします