2010年6月5日土曜日

Ubuntuでhome,usr,varディレクトリを別パーティションに移動する

[したいこと・しりたいこと・目標]


homeディレクトリをを別ディスクに移設する
/homeディレクトリを別パーティションに移動する
homeディレクトリのマウント場所を変更する
ホームディレクトリの容量を大きくする

usrディレクトリをを別ディスクに移設する
/usrディレクトリを別パーティションに移動する
usrディレクトリのマウント場所を変更する
usrの容量を大きくする


varディレクトリをを別ディスクに移設する
/varディレクトリを別パーティションに移動する
varディレクトリのマウント場所を変更する
varの容量を大きくする


[環境]

Ubuntu Lucid Lynx 10.04 on VMWare Fusion 3

インストール時におまかせパーティションにしたHDD 20G
/dev/sda1 /
/dev/sda2 swap
/dev/sda5 home
/dev/sda6 usr
/dev/sda7 var
としてパーティション分けしてあると仮定する


これから追加するHDD 30G
/dev/sdb5 新しいhome
/dev/sdb6 新しいusr
/dev/sdb7 新しいvar
として利用すると仮定する




(01)
仮想マシンの停止状態で、設定画面からハードディスクを選択
ハードディスクの追加をする


(02)
インストールCDから起動
try Ubuntu 10.04LTSを選択

(03)
ターミナルから
$ sudo fdisk -l
追加したHDDが/dev/sdbであることを確認

(04)
追加HDDにパーティションを作成する

fdiskコマンドを使用する
$ sudo fdisk /dev/sdb

/dev/sdbに拡張ボリュームをつくる

拡張ボリュームを作る
Command (m for help) :で
n
と入力
Command action で
e
と入力
Partition number (1-4) : で
1
と入力
First cylinder (1 - 3916, default 1) : で
enterキーを押す
Last cylinder, +cylinders or + size{K,M,G} (1-3916, default 3916) : で
enterキーを押す


ロジカルパーティション/dev/sdb5を作る
Command (m for help) :で
n
Command (m for help) : で
l
と入力
First cylinder (1- 3916, default 1) : で
enter
を押す
Last cylinder, +cylinders or + size{K,M,G} (1-3916, default 1) : で
+9G
と入力



ロジカルパーティション/dev/sdb6を作る
Command (m for help) :で
n
Command (m for help) : で
l
と入力
First cylinder (1177 - 3916, default 1177) : で
enter
を押す
Last cylinder, +cylinders or + size{K,M,G} (1177-3916, default 1177) : で
+9G
と入力


ロジカルパーティション/dev/sdb7を作る
Command (m for help) :で
n
Command (m for help) : で
l
と入力
First cylinder (2353 - 3916, default 2353) : で
enter
を押す
Last cylinder, +cylinders or + size{K,M,G} (2353-3916, default 3916) : で
+9G
と入力

p
と入力
結果を表示する

w
と入力
設定を書き込み終了する

確認する
$ sudo fdisk -l

liveCDのGPartedでやるとわかり易い

(05)
ext4でフォーマット
$ sudo mkfs -t ext4 /dev/sdb5
$ sudo mkfs -t ext4 /dev/sdb6
$ sudo mkfs -t ext4 /dev/sdb7


(06)
マウントポイントを作る
$ mkdir /home/ubuntu/new_home
$ mkdir /home/ubuntu/new_usr
$ mkdir /home/ubuntu/new_var

$ mkdir /home/ubuntu/old_home
$ mkdir /home/ubuntu/old_usr
$ mkdir /home/ubuntu/old_var

$ mkdir /home/ubuntu/old

(07)
マウント

$sudo mount /dev/sdb5 /home/ubuntu/new_home
$sudo mount /dev/sdb6 /home/ubuntu/new_usr
$sudo mount /dev/sdb7 /home/ubuntu/new_var

$sudo mount /dev/sda5 /home/ubuntu/old_home
$sudo mount /dev/sda6 /home/ubuntu/old_usr
$sudo mount /dev/sda7 /home/ubuntu/old_var

$sudo mount /dev/sda1 /home/ubuntu/old

(08)
/homeの内容をコピーする

作業ディレクトリに移動
$ cd /home/ubuntu/old_home

コマンドを実行する
$ sudo cp -a /home/ubuntu/old_home/* /home/ubuntu/new_home

(09)
/usrの内容をコピーする

作業ディレクトリに移動
$ cd /home/ubuntu/old_var

コマンドを実行する
$ sudo tar cvf - . | sudo tar xvf - -C /home/ubuntu/new_usr

(10)
/varの内容をコピーする

作業ディレクトリに移動
$ cd /home/ubuntu/old_var

コマンドを実行する
$ sudo find . -print | sudo cpio -pdmua /var_new


(11)
UUIDの確認
$sudo blkid /dev/sdb5 | cut -d '"' -f 2
$sudo blkid /dev/sdb6 | cut -d '"' -f 2
$sudo blkid /dev/sdb7 | cut -d '"' -f 2

UUIDだけ表示されるので、ターミナルのメニューからコピーする

(12)
/etc/fstabの編集する

viで編集なら
$sudo vi /home/ubuntu/old/etc/fstab

geditiで編集なら
$ gksu gedit
して
/home/ubuntu/old/etc/fstab
を開く

UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyya5 /home ext4 defaults 0 2

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxb5 /home ext4 defaults 0 2
に変更する

UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyya5 /usr ext4 defaults 0 2

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxb5 /usr ext4 defaults 0 2
に変更する

UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyya5 /var ext4 defaults 0 2

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxb5 /var ext4 defaults 0 2
に変更する

ターミナルでコピーした値を貼りつければ簡単だ

(11)
再起動

$ sudo reboot

(12)
しばらく運用して、問題がないなら、/dev/sda5 /dev/sda6 /dev/sda7 を削除する

[その他]

この記事で書いたvarディレクトリの移動は、最初のインストール時に手動で/varパーティションを切っている場合は有効のハズ
初回、自動パーティションの場合は、この方法で/varの移動は上手くいかない。
ureadahead-other main process terminated: xubuntu setup information
http://app.f.m-cocolog.jp/t/typecast/1302116/1319576/58349239
などの記事を参考に
/etc/init/ureadahead.conf
/etc/init/ureadahead-other.conf
の、ファイルを編集してみたが起動できなかった。

[参考]

Moving /usr & /var to another partition « Out Here In The Field : Time Out
http://outhereinthefield.wordpress.com/2008/02/02/moving-usr-var-to-another-partition/

[xubuntu] moving /var and /tmp to a separate partition. - Ubuntu Forums
http://ubuntuforums.org/showthread.php?t=891612

[ubuntu] Move var directory to another partition - Ubuntu Forums
http://ubuntuforums.org/showthread.php?t=1317328

ホームディレクトリの引越し
http://saminnet.dip.jp/servercomputer/Lmemo/pub/qa27.html

Ubuntu9.04 /homeと/usrの引っ越し: あゆあゆ日誌
http://ayuayux.cocolog-nifty.com/chari/2009/08/ubuntu904-homeu.html

[ubuntu] Move var directory to another partition - Ubuntu Forums
http://ubuntu-virginia.ubuntuforums.org/showthread.php?p=8262372

0 コメント: