1. ホーム
  2. オペレーティングシステム
  3. リナックス

ゼロからLinuxのisoイメージを作る方法(グラフィックチュートリアル)

2022-01-13 15:13:26

I. 前書き

    極めて単純化されたlinuxシステムには、linuxカーネル、ルートファイルシステム、ブートの3つの部分だけが必要です。ここでは、この記事のlinuxのisoイメージを作成するために使用したシステムとソフトウェアを紹介します。

    OS: ubuntu 20
    ソフトウェア:xorriso

II. linuxカーネルを作る

    1. まず、公式サイトにアクセスし、ダウンロードするバージョンを選択する必要があります。公式のダウンロードアドレスは以下の通りです。 https://mirrors.edge.kernel.org/pub/linux/kernel

    2. tar で解凍し、そのディレクトリに入り、カーネルの設定を行います。以下のような構成が一般的です。
      a. make defconfig - デフォルト設定
      b. make allyesconfig - できれば「はい」を選択する設定を作成する。
      c. make allnoconfig - noを選択できる場合は、noの設定を作成します。
      d. make menuconfig - ncurserベースのGUI設定
      ここでは、下図のように、make defconfigというコマンドを使って、デフォルトのものを使用します。

    3. 次に make bzImage コマンドでカーネルをコンパイルすると、下図のようになります。

    コンパイルされたカーネルファイルは arch のように、対応するアーキテクチャフォルダの下にあるフォルダに移動します。

III. ルートファイルシステムの作成

    1. busyboxは簡単に言うとLinuxのツールの集合体です。まず、busyboxは以下の公式サイトからダウンロードすることができます。 https://busybox.net/downloads

    2は、ビジーボックスをコンパイルし、カーネルの手順をコンパイルする基本的に同じですが、解凍のためのパッケージをダウンロードし、フォルダに、デフォルトのコンパイルオプションを設定するdefconfigを作る使用、ここで生成に注意を払う必要があります。 .config 設定ファイルでは CONFIG_STATIC=y ない場合は、以下のように追加してください。

    3. 次に make busybox install コマンドでbusyboxをコンパイルすると _install フォルダーを作成します。


    4. 次に rootfs フォルダを作成し、そこに _install フォルダから linuxxrc コード}以外のすべてのファイルとフォルダ /codeにコピーされます。 rootfs フォルダを作成し、最後に dev フォルダーを作成し、最後にルートディレクトリの下に init ファイルの中身は、次の図のとおりです。

    5. 最後に、コマンド find . | cpio -R root:root -H newc -o | gzip > . /rootfs.gz ファイルシステムをパックすると、以下のようにファイルシステムが作成されます。

IV. BIOS

    1. ここでは syslinux を作成し bios ブート可能なlinuxのisoイメージである syslinux 公式ダウンロードアドレスは以下の通りです。 https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux

    2. ダウンロード syslinux 解凍して、フォルダを作成します。 isobios を解凍し syslinux フォルダの下にある

bios/core/isolinux.bin
bios/com32/elflink/ldlinux/ldlinux.c32
にコピーします。 isobios フォルダに、次のように記述します。

<イグ

    3. で isobios フォルダに設定ファイルを作成します。 isolinux.cfg を、以下のファイル内容で作成します。

    4. 最後に isobios [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]     [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]     [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]     [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]     [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]     [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]     [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]     [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...] [...]