さくらのクラウドでパーティションの移動

さくらのクラウドで、/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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください