さくらのクラウドで、/homeディレクトリを追加ディスク内のパーティションに移動してみた。
まず、さくらのクラウドのコントロールパネルでディスクを追加してサーバに接続しておく。
下記では、追加したディスクは、/dev/hdb として認識されています。
移行の手順は以下の通り。
fdiskでパーティションを作成する
# fdisk /dev/hdb このディスクのシリンダ数は 2610 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 1 最初 シリンダ (1-2610, default 1): Using default value 1 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-2610, default 2610): Using default value 2610 コマンド (m でヘルプ): p Disk /dev/hdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/hdb1 1 2610 20964793+ 83 Linux コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。 カーネルはまだ古いテーブルを使っています。 新しいテーブルは次回リブート時に使えるようになるでしょう。 ディスクを同期させます。
ここでいったんリブートする。
作成したパーティションにファイルシステムを作成する
# mkfs -t ext3 /dev/hdb1 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 2621440 inodes, 5241198 blocks 262059 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 160 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
/mnt での新規ファイル・システムのマウント
いったん新しいディレクトリにマウントする。
ここでは、/mnt/newpart というディレクトリにマウントした。
# mkdir /mnt/newpart # mount /dev/hdb1 /mnt/newpart
このマウントは一時的なものなので、/etc/fstabには記述しない。
ファイルのコピー
ここからは、さくらのクラウドのコントロールパネルのコンソールで操作する。
まず、安全にファイルをコピーするために、シングルユーザモードにする。
# telinit 1
ファイルをコピーする。
# cd /home # cp -ax * /mnt/newpart/
マウントポイントの変更
# mv /home /home.old # mkdir /home # mount /dev/hdb1 /home
exitでシングルユーザモードを抜ける。
# exit
/etc/fstabの編集。
# nano /etc/fstab
/etc/fstab に以下の行を追加。
/dev/hdb1 /home ext3 defaults 1 2
再起動
再起動すると、/dev/hdb1 が /home のみにマウントされた状態になる。
確認。
$ df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/hda2 18G 8.8G 7.8G 53% / /dev/hda1 99M 18M 76M 20% /boot tmpfs 1006M 0 1006M 0% /dev/shm /dev/hdb1 20G 5.6G 14G 30% /home
元に戻す場合
問題があって元に戻す場合は、さくらのクラウドのコンソールでシングルユーザモードにして、/homeをumount後、/homeを削除、/home.oldを/homeにリネームすればよい。あと、/etc/fstab から/homeのマウントのエントリを削除するのを忘れずに。
/homeディレクトリをumountするとき、device is busy となってアンマウントできない場合は、
# umount -l /home
でアンマウントする。
パーティションの活用: /home の移動編
ITmedia エンタープライズ : Linux Tips「「/home/」などのディレクトリを,ほかのドライブ(パーティション)に移動したい」
マウントポイントの移動 - Linux on Titan700