Tips記事
» 2000年07月01日 00時00分 UPDATE

「/home/」などのディレクトリを,ほかのドライブ(パーティション)に移動したい

[ITmedia]

 最初は数GバイトのハードディスクにインストールしたLinux。しかし使い込んでいくうちに,「/home/」や「/usr/」などのディレクトリ下の容量が増えてしまい,ほかのパーティションやドライブに移したり構成を変えたいといった考えもでてくるだろう。そんな時に注意しなければならないのは,次の点だ。

  1. ファイルやディレクトリのパーミッション(属性)を変えずにコピーする。
  2. 移動元から移動先のディレクトリへ,認識設定を変更する。

 1の方法を実現するには,cpあるいはtarコマンドを使うのがよい。

tarコマンドを使う方法

$ tar cf - ./home/ | (cd /hdb; tar xpvf -)

 tarは,複数のファイルを1つにまとめる(アーカイブ)コマンドだ。本来は,テープメディアなどへのバックアップが主な用途である。

 「cf」オプションは,「c」がcreate(作成),「f」は続けてファイル名を指定する意味だ。ここではファイル名を省略し,「-」と指定することで標準出力への書き込みとしている。次の「./home/」は,アーカイブを行う移動元のファイル(ディレクトリ)だ。

 「|」はパイプ指定で,これまでの指定をそのまま通すことを示す。次の指定を行った上でカッコで囲む部分は,cd /hdbがディレクトリの移動,さらに「;」(続けて次の指定)に続き,/hdbのディレクトリ下でtarを使いアーカイブを展開する。

 「x」はアーカイブされているファイルを展開する指定だ。「p」はパーミッション保存したまま,「v」は経過を表示する指定である。「f」は前述したようにファイル名指定となる。最後の「-」は,前述の標準出力されたファイルを扱うという意味だ。

cpコマンドを使う場合

 最近のLinux(ディストリビューション)であれば,次のようなcpコマンドでもよいだろう。tarに比べ,簡単な構文でパーミッションを保持したままコピーすることができる。

$ cp -av /home /hdb

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ