IT

ハードディスクのレイアウト設計、ブートローダのインストール、共有ライブラリ管理【LPIC level1】

目次

  • ハードディスクのレイアウト設計
  • Linuxインストールに必要なパーティション(ルートパーティション、スワップ領域)
  • LVM
  • ブートローダのインストール
  • GRUBのインストール
  • GRUB Legacyの設定
  • 共有ライブラリ管理
  • スタティックリンクとダイナミックリンク
  • 必要な共有ライブラリの確認

ハードディスクのレイアウト設計

Linuxインストールに必要なパーティション

Linuxをインストールする際、パーティションを設計する必要があります。

パーティションとはハードディスクを論理的に分割した単位のことです。

Linuxのパーティションには、以下の二つが最低限必要地です。

ルートパーティション

最上位のディレクトリであるルートディレクトリ(/)を割り当てたパーティションのことで、その配下に様々なディレクトリやファイルが含まれています。

スワップ領域

物理メモリに収まらなかった情報を一時的に格納するための領域です。

以上のパーティションのみを作成した場合は、すべてのディレクトリがルートパーティションに収まることになります。

しかし、通常はディレクトリの用途に応じて特定のディレクトリを別のパーティションに割り当てます。以下は、その理由です。

  • 柔軟なシステム管理を行うことが出来る。
  • ディスクに障害が発生した時の被害を抑えることが出来る。
  • 障害発生時にスムーズな復旧作業が出来る。

なお、システムの起動に必要なディレクトリ(/bin、/sbinなど)はルートパーティションから分割できません。

ディレクトリ分割
可否
用途
/home一般ユーザーがそれぞれ利用するファイルが格納されています。
(書き込みが頻繁に発生します。)
/usrプログラムやライブラリ、ドキュメントが置かれます。
(読み込みが頻繁に発生します。)
/varログファイルやメールなど更新頻度の高いファイルが格納されます。
(書き込みが頻繁に発生します。)
/opt追加でインストールしたパッケージを格納します。
(容量が大きくなる可能性があります。)
/bootLinuxカーネルなど起動に必須のファイルを格納します。
/tmp一時ファイルを格納します。
/bin×一般ユーザー用のコマンドを格納します。
/sbin×管理者用のコマンドを格納します。
/etc×システムの設定ファイルを格納します。
/lib×共有ライブラリを格納します。
/dev×デバイスファイルを格納します。

Linuxのファイルシステム内のレイアウトはFHS(Filesystem Hierarchy standard)として標準化されています。多くのLinuxディストリビューションでFHSをベースにディレクトリ、ファイルが配置されています。

FHSと各ディレクトリについては以下の記事からお願いします。

LVM

ブートローダのインストール

ハードディスクなどのストレージからOSを読み込んで起動するプログラムをブートローダと言います。

GRUBのインストール

GRUBは多機能なブートローダで、多くのディストリビューションで標準的に使用されています。

以下、GRUBの特徴です。

  • 多数ファイルシステムを認識可能
  • シェル機能を搭載し、コマンドによる高度な管理が可能

ブートローダをインストールするには、grub-installコマンドを実行します。

GRUB Legcyの設定

GRUB Legacyの設定ファイルは、/boot/grub/menu.lstです。

GRUB 2の設定

GRUB 2の設定ファイルは、/boot/grub/grub.cfgです。

しかし、GRUB Legacyと異なり、直接ファイルを編集しません。

/etc/default/grubで設定を行い、grub-mkconfigコマンドを実行すると、設定に基づき、/boot/grub/grub.cfgが生成されます。

ブートオプションの指定

ブートローダ起動時に、システムの動作を指定するための様々なブートオプションを指定できます。

以下、代表的なブートオプションです。

起動オプション説明
init=パスinitの代わりに指定コマンドを実行します。
root=デバイス名ルートパーティションを設定します。
数字(0-6)指定したランレベルで起動します。
quiet起動中のカーネルからの情報出力を抑制します。

共有ライブラリ管理

ライブラリとは、よく使われる機能をまとめ、他のプログラムから利用できるようにしたものです。

ライブラリには静的ライブラリ共有ライブラリがあります。

静的ライブラリ

静的ライブラリとは、プログラム作成時にその実行ファイル内に組み込まれるライブラリです。

共有ライブラリ

共有ライブラリとは、プログラム実行時にロードされ、複数のプログラム間で共有されるライブラリです。

スタティックリンクとダイナミックリンク

リンクとは、プログラム本体からライブラリ機能(関数)を利用することです。

スタティックリンク

スタティックリンクとは、ライブラリの機能(関数)を一つ一つのプログラムの中に埋め込む方法です。

デメリットとして機能(関数)が重複してしまいます。

ダイナミックリンク

ダイナミックリンクとは、プログラムにライブラリを埋め込めず、実行時にライブラリの機能を呼び出す方法です。

ダイナミックリンクによって呼び出されるライブラリを共有ライブラリと言います。

必要な共有ライブラリの確認

実行ファイルが必要としている共有ライブラリは、lddコマンドで調べることが出来ます。

共有ライブラリの検索パスが記述されている/etc/ld.so.confファイルを参照し/etc/ld.so.cacheファイルを更新します。

/etc/ld.so.cacheファイルは、プログラムの実行時に、共有ライブラリの場所を検索するために使用されるファイルです。ldconfigコマンドを使用して作成します。

環境変数LD_LIBRARY_PATHとは共有ライブラリの検索パスを指定するための環境変数です。

最後まで読んで頂き、ありがとうございました。

他の分野へ移動でいる全体ページへは下記リンクから移動できます。