目次


パーティションの活用: /home の移動編

ステップバイステップによる区画移動の方法

Comments

/home 区画は、最も頻繁に移動される区画の 1 つです。時々、/home 内のスペースが全部使い果たされてしまい、追加のハード・ディスクが必要になることがあります。また場合によっては、/home がルート区画の一部としてセットアップされるために、パフォーマンスを上げたり、バックアップをやりやすくするために、それを移動しなければならなくなることがあります。これらのどの場合についても、/home を安全かつ効率的に移動する方法をご紹介しましょう。

注意
以下のテクニックは、区画の移動方法を説明したものです。確かにこのテクニックは、区画移動の失敗をバックアウトできるように設計されてはいますが、ユーザー・エラーから保護してくれるわけではありません。つまり、区画をフォーマットしたり、多数のファイルをコピーしたりするときはいつでも、間違った情報を入力して多くのデータを壊してしまう可能性があります。このため、重要なファイルは、必ずすべてのバックアップを取ってから処理する ことを強くお勧めします。

準備が整ったら、/home の移動を開始します。実行ステップは、正確には、現在 /home がそれ自身の別個の区画に常駐しているかどうか、あるいはルート区画に常駐しているかどうかによって異なります。ステップを進めるときは、このことに留意してください (必要な場合は、その旨お知らせします)。/home を新しいハード・ディスクに移動する場合は、そのハード・ディスクがシステムに物理的にインストールされていなければなりません。

1. 新しい区画の作成(必要な場合)

/home を既存の区画に移動する場合 (ターゲットのプライマリー区画または拡張区画が存在していれば、その既存の区画は ext2 でなくても構いません)は、ステップ 2 へ進んでください。

新しい区画がまだない場合は、cfdisk (優先) または fdisk を使ってそれを作成する必要があります。その区画が最初のドライブに常駐していない場合は、デバイスの名前を最初の引数として cfdisk または fdisk に指定することを忘れないでください。適切なプライマリー区画または拡張区画を作成したら、リブートして区画テーブルを正しく再読み取りできるようにする必要があります。システムのリブートが必要になるのは、このときだけです。

2. 新しい区画でのファイル・システムの作成

新しい区画でファイル・システムを作成するには、まず、新しい区画の正確なデバイス名を知っていなければなりません(たとえば、/dev/sda5)。正確なデバイス名が分からない場合は、すぐ停止して、ダブル・チェックしてください! そして次のように、ルートとして入力します。

# mkfs.ext2 /dev/???

上記および以下のコード・サンプルで、??? は、ターゲットの区画名と置き換えてください。このコマンドを実行すると、ターゲットの区画には空の ext2 ファイル・システムが入ります。

3. /mnt での新規ファイル・システムのマウント

/mnt/newpart という名前のディレクトリーを作成してから、そこに以下の新しい区画をマウントします。

# mount /dev/??? /mnt/newpart

4. 単一ユーザー・モードへのドロップ

システムの可能性を最大化するために、このステップをできるだけ遅らせましたが、ここで、単一ユーザー・モードにドロップし、ファイル を /home から /mnt/newpart にコピーする必要があります。/home では、どのファイルもオープンすることはできませんが、次のようにして単一ユーザー・モードに入ることにより、その恐れはなくなります。

# init 1

プロンプトが出たら、ルート・パスワードを入力してシステム・メインテナンスを実行してください。これで、ルート・シェルが入手できるはずです。

5. /home へのディレクトリーの変更およびファイルのコピー

次のように入力してください。

# cd /home
# cp -ax * /mnt/newpart

cp -ax コマンドは、/home の内容を /mnt/newpart に繰り返しコピーして、すべてのファイル属性を保存し、どのマウント・ポイントも越えたりしないようにします。このコマンドが完了すると、/mnt/newpart には、現在 /home に入っているすべてのファイルとディレクトリーの正確なコピーが含まれています。古い /home がそれ自身の別個の区画 (/etc/fstab の中の別個の行にリストされている)に含まれていた場合は、ステップ 6a へ進んでください。それ以外の場合は、ステップ 6b へ進んでください。

6a. 新しい区画の使用 (古い /home が区画である場合)

以下の手順は、古い /home がすでにそれ自身の専用区画に含まれているシステムで使用するものです。これに該当しない場合は、アイテム 6b を参照してください。

次のように入力して、古い区画をアンマウントします。

# cd /
# umount /home

次に、新しい区画をアンマウントし、さらに再マウントします。

# umount /mnt/newpart
# mount /dev/??? /home

これで、新しい区画が /home に作成され、使用可能になります。最後の数ステップをマルチユーザー・モードで実行することができます。単一ユーザー・モードを終了して、CTRL-D を押すと、システムが復帰し、実行に入ります。

重要: システムが正常に始動したら、ルートとしてログインし、/etc/fstab を編集すると、/dev/??? が、古い区画ではなく、/home に自動的にマウントされます。たとえば、次の行を、

/dev/hda3	/home	ext2	defaults	1	2

次のように変更します。

/dev/???	/home	ext2	defaults	1	2

6b. 新しい区画の使用 (古い /home が区画でない場合)

以下の手順は、前に /home がそれ自身の別個の区画に入っていなかった場合に使用します (たとえば、/home がルート区画に常駐するディレクトリーであった場合)。以下のようにします。

# mv /home /home.old
# mkdir /home      
# mount /dev/??? /home

ここで、CTRL-D を押して単一ユーザー・モードを出ます。システムが復帰し、実行に入ったら、/etc/fstab を編集し、次のような 1 行を追加します。

/dev/???	/home	ext2	defaults	1	2

こうしておけば、次回にシステムをリブートするときに、新しい区画が正しくマウントされるようになります。

7. 完了

ファイル・コピーの問題が発生する場合のことを考えて、古い /home ディレクトリー/区画を意図的に残しておきました。システムがスムーズに稼動していることを確認したら、古い /home 区画を何か別のことに使用するか、または /home.old ディレクトリーを除去するかのどちらかを行うことができます。

おめでとうございます。これで、/home の移動が完了しました。次回のヒントでは、システムを再構成して、/tmp と /var がそれぞれの共用区画に含まれるようにします。そこでまたお会いしましょう。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=226810
ArticleTitle=パーティションの活用: /home の移動編
publish-date=05012000