起動時にLinuxまたはUnixで「/」をマウントする方法は?

起動時にLinuxまたはUnixで「/」をマウントする方法は?

特定のパスにデバイスをインストールできます。たとえば、「/dev/sda1」は「/home/user」にマウントできます。私が理解していないのは、起動時に「/」がマウントされる方法と場所です。誰でもこれを説明するのに役立ちますか?

ベストアンサー1

Unix システムの起動中に、カーネルは通常の操作中に何もしない何らかの操作を実行します。その一つは、ディレクトリにファイルシステムをマウントすることです。/これは、マウントがmountシステムコールによってトリガーされず、ターゲットディレクトリが既存のディレクトリではないため、通常のマウント操作とは大きく異なります。もう一つPID 1でプログラムを実行する、これは通常の作業とは異なります。既存のプロセスの複製

この「魔法の」ルートディレクトリをマウントする方法は、Unixのバリエーションによって大きく異なります。カーネルは、コンパイル時の設定、カーネルイメージのランタイム設定、事前定義されたメモリ位置のランタイム設定、コマンドライン引数など、さまざまな方法で指定できる設定パラメータに基づいてマウントするデバイスを選択します。どのように動作するか、お使いのコンピュータでこれを実行するには、Unixバリアントに関するドキュメントを確認し、お使いのコンピュータがどのように構成されているかを理解する必要があります。

仕組みを理解するために、最新のLinuxカーネルの仕組みの概要を見てみましょう。 Linuxは長い歴史と様々なユースケースを持っているので、これは最も簡単な例ではありません。

  • /Linuxは、RAMに保存されているファイルで構成されたパスに追加された「特殊」ファイルシステムから起動できます。この特別なファイルシステムファイルシステムの初期化;rootfs ファイルシステムタイプのインスタンスです。 initramfsは、アーキテクチャ依存プロトコルを介してブートローダによって配信されたコンテンツで埋められ、ブートローダがメモリにロードしたカーネルイメージに直接コンパイルされます。
  • あるいは、Linuxは、/カーネルの初期化コードによって認識される制限された(しかしより大きい)ボリュームタイプのセットの一部であるデバイスをマウントすることもできます。これらのデバイスタイプには、汎用タイプディスク(ATA、USBなどを含むSCSIなど)の一般タイプパーティション内のすべてのファイルシステム、RAMディスクとNFSマウントが含まれます。
  • 選択したパスに応じて、初期ルートファイルシステムは後で非表示にするか、別のファイルシステムに置き換えることができます。シャドウイングは、ほとんどのデスクトップシステムとサーバーシステムが動作する方法であるinitramfsで発生します(一方、組み込みシステムにはハードコーディングされたルートファイルシステムがあることがよくあります)。交換は何が起こるのか初期化プログラム、特殊なRAMディスクです。 initramfs または initrd の操作は、通常のジョブで使用する「本当の」ルートファイルシステムを提供するドライバーをロードすることです。

おすすめ記事