検索
連載

ソースファイルからLinux環境を構築しよう!LFSで作って学ぶLinuxの仕組み(1)(2/3 ページ)

最近のディストリビューションは非常に多くのプログラムから成っており、システムに必要なソフトウェアを把握するのは困難になってきている。必要なプログラムを1つずつ自分でコンパイルしてインストールするLinux From Scratchを通して、LinuxがOSとして機能するための仕組みを学んでもらいたい。(編集局)

Share
Tweet
LINE
Hatena

LFS用パーティションの作成

 今回紹介する準備作業のうち、最も厄介なのがこの作業になるだろう。これからLinux環境を構築するのであれば、インストール時にパーティションを用意すればいいから特別苦労する必要はない。LFSで構築したい環境にもよるが、100Mbytesから1Gbytes程度の間で、ディスク容量と相談してパーティションを作ればいい。しかし、すでに構築済みの環境では、マウントポイントを割り当てていないパーティションなど用意していないだろう。新たにパーティションを捻出する方法はいくつか考えられるが、ここでは安全性と手軽さの高い順に紹介しておこう。

 いずれにしても、LFS用に作成したパーティションを既存のLinuxで「/mnt/lfs」にマウントする。マウントポイントは好きな名前で構わない(/mnt/lfsでなくてもよい)のだが、/mnt/lfsとすれば本稿やLFS BOOKと統一が図れる。マウントポイントを異なる名前にする場合は、適宜読み替えてほしい。

  • 新規インストール
     現状の環境に未練がなければ、Linuxをインストールし直すのが手っ取り早い。ソフトウェアの再インストールやデータの移し替えは必要になるが、最も手軽で安全性も高い。
  • ディスクの追加
     ディスクを追加すれば、当然新しいパーティションを作成できる。この方法は、安全性は高いものの、コストが掛かる点が手軽とはいい難い。具体的な手順は割愛する。
  • 既存のパーティションの統廃合
     最も現実的だが、手軽さや安全性に欠けるのがこの方法である。この方法は、既存のパーティションに格納されたデータを別のパーティションに移動する。そして、空になったパーティションをLFS用にマウントし直して再利用する。当然ながら、パーティションが1つしかない環境では統廃合しようがない。

 既存のパーティションを統廃合する方法を概念図で表すと図2のようになるのだが、どれをどこに移動してもいいというわけではない。移動するパーティション(マウントポイント)の受け入れ先は、親子関係にあるマウントポイントに限定される。さらに、システム稼働中に移動可能なものを選ぶ必要がある。

図2 パーティションを統廃合し、LFS用のパーティションを作り出す
図2 パーティションを統廃合し、LFS用のパーティションを作り出す

 例えば、/homeを/usrのパーティションに移動しようにも、/usrがマウントポイントだから移動できない(図3)。/homeが移動できるのは、親ディレクトリである/のパーティションに限られる。/homeのサブディレクトリが独立したパーティションになっていれば強引に統合できなくもないが、手続きは面倒にならざるを得ない。

図3 パーティションの統廃合はどこでも可能というわけではない
図3 パーティションの統廃合はどこでも可能というわけではない

 いずれにしても、この作業は危険を伴うので、間違いは即事故につながる。データが消えてしまうどころか、最悪の場合は二度と起動できなくなるかもしれない。パーティションやマウントに関する知識が十分でないなら、詳しい人の助けを得た方がいいだろう。

 ここでは、/usr/localを/usrに移動して、空いたパーティションをLFS用とする例を紹介する(編注)。この手順を参考に、作業していただければいいだろう。

編注:ディスクを増設したり未使用だったパーティションを利用する場合は、パーティションを切ったうえで以下の「ファイルシステムの作成」から読んでいただければよい。


現在のマウントポイントの確認

 パーティションの容量、空き具合などを確認する。移動される側の空き容量が十分か、移動する側のデバイス名は何かを特に確認しておきたい。万が一に備えて、全体をメモしておくくらいの慎重さが欲しい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 df -kでは、デバイス名とマウントポイントのほかに容量もチェックできる。また、mountコマンドは容量はチェックできないが、マウントポイントとデバイスが簡単に確認できる。

編注:以下、/dev/hda6にインストールするという前提で話を進める。インストール先デバイス名は、自分の環境に合わせて読み替えてほしい。


移動側データのバックアップ

 パーティションを削除する前に、データをtarで圧縮して確保しておく。マウントポイント以下を、ディレクトリごと圧縮するのがポイント。当然ながら、作業はrootユーザーで行い、/ディレクトリに保存しておくと展開も楽にできる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

移動するパーティションのアンマウント

 データを保存したら、対象のパーティションをアンマウントする。アンマウントしてもディスク上のデータが消えるわけではないが、OSから見えない状態になる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

バックアップしたデータの展開

 データがOSから見えない状態になったところで、保存しておいたデータを移動される側のパーティションに展開する。この場合、/usr/localを/usrに移動するため、ディレクトリなどを特に作成せずにそのまま展開すればよい。展開できたら、データが見えていることを確認する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

ファイルシステムの作成

 データの移動が確認できたら、アンマウントしておいたパーティションをフォーマットする。ここでは、mke2fsコマンド(編注)で行う。その際、ボリュームラベルを付けておくと、後で自動マウントの設定を行うときに便利である。フォーマットせずにデータを消すだけでも構わないのだが、その場合はボリュームラベルが残ってしまう。ここではそれを嫌ってフォーマットしているが、各自の判断で行えばいいだろう。

 もしパーティションの再編成を望むなら、ここでfdiskを使ってもよい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

編注:mke2fsコマンドの「-L」は、ボリュームラベルを付けるためのオプション。必須ではないが、ボリュームラベルを付けておくと分かりやすくなる。


マウントのテストと自動マウントの変更

 フォーマットしたパーティションを/mnt/lfsにマウントしてみる。マウントポイントはOS側にあらかじめ作成しておく。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 マウントできることを確認したら、OS起動時に/mnt/lfsが自動でマウントされるようにする。古いマウントポイント(/usr/local)へのマウントが残っているので、それを新しいマウントポイント(/mnt/lfs)へマウントするように編集する。このとき、フォーマット時に付けたボリュームラベルかデバイス名が必要になる。

 OS起動時に自動でマウントする設定は/etc/fstabに記述されているので、それを開いて編集する。一番左の項目がデバイス名かボリュームラベル、2番目がマウントポイントだ。ほかは特に修正する必要はないだろう。以下は、既存パーティションをLFSに転用する場合の例だ(ほかのパーティションについては、環境によって異なる)。新規にパーティションやハードディスクを追加した場合は、LFS用のパーティションの設定を追記するだけでよい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 これでLFSのためのパーティションの作成は終了である。ディスク容量の都合や使い勝手を意識するのであれば、/mnt/lfs/usrや/mnt/lfs/sbinなどを別のパーティションに作成してもよい。本連載では、LFSのためのパーティションは1つだけで進めることとする。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る