Linuxでハードディスク増設


Linuxサーバの/usrの空きが無くなってきたため、ディスク領域の拡張をすることにした。

拡張前の構成は以下の通り。

パーティション タイプ マウント先ディレクトリ 使用率
/dev/sda1 Linux      /boot 8%
/dev/sda2 Linux      /            95%
/dev/sda3 Linuxスワップ
/dev/sda4 Win95拡張領域
/dev/sda5 Linux       /var/crash 1%
/dev/sda6 Linux       (未使用)

/dev/sda4がWin95拡張領域になっているが、実質は使用されていないため、/dev/sda6と合わせて、/usrをマウントさせることにした。

1.パーティションの変更作業


【重要】
   作業前には、必ず全パーティションのバックアップを作成する。
今回はFTPツールを使用して、NASハードディスク上にバックアップを作成。

fdiskコマンドを使用する。管理者(root)権限で作業する。

$ su -
Password: rootのパスワード
# cd /sbin
# fdisk /dev/sda

このディスクのシリンダ数は 35643 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
 (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ):

コマンドmでfdiskのヘルプを表示。fdiskのコマンドは以下の通り。

コマンドの動作
  a   ブート可能フラグをつける
  b   bsd ディスクラベルを編集する
  c   dos 互換フラグをつける
  d   領域を削除する
  l   既知の領域タイプをリスト表示する
  m   このメニューを表示する
  n   新たに領域を作成する
  o   新たに空の DOS 領域テーブルを作成する
  p   領域テーブルを表示する
  q   変更を保存せずに終了する
  s   空の Sun ディスクラベルを作成する
  t   領域のシステム ID を変更する
  u   表示/項目ユニットを変更する
  v   領域テーブルを照合する
  w   テーブルをディスクに書き込み、終了する
  x   特別な機能 (エキスパート専用)

/dev/sda4をLinux拡張領域にし、その下に/dev/sda5, /dev/sda6を論理パーティションとして定義する。/dev/sda4に割り当てられていた領域は/dev/sda6に移しここを/usrにする。

コマンド (m でヘルプ):d

区画番号 (1-4):4 ←/dev/sda4を削除

コマンド (m でヘルプ):n

 e 拡張区画
 p 基本区画(1-4)

e

区画番号 (1-4):4 ←/dev/sda4を作成


最初のシリンダ (xxxxx-yyyyy, default xxxxx):xxxxx

デフォルト値(xxxxx)で通常はOK

最後のシリンダ, または +size, +sizeM, +sizeK (xxxxx-yyyyy, default yyyyy): yyyyy

プライマリなので、空きすべてを割り当てる。

/dev/sda4, /dev/sda6を論理領域として定義する。

コマンド (m でヘルプ):n

 e 拡張区画
 p 基本区画(1-4)

e

区画番号 (1-4):4 ←/dev/sda4を作成


最初のシリンダ (xxxxx-yyyyy, default xxxxx):xxxxx

デフォルト値(xxxxx)で通常はOK

最後のシリンダ, または +size, +sizeM, +sizeK (xxxxx-yyyyy, default yyyyy): yyyyy

プライマリなので、空きすべてを割り当てる。

/dev/sda5, /dev/sda6を論理パーティションに割り当てる。
以下を2階繰り返し、/dev/sda5, /dev/sda6を作成。
コマンド (m でヘルプ):n

l 論理(5 以上)
p 基本区画(1-4)

l

最初のシリンダ (xxxxx-yyyyy, default xxxxx):xxxxx

デフォルト値(xxxxx)で通常はOK

最後のシリンダ, または +size, +sizeM, +sizeK (xxxxx-yyyyy, default yyyyy): yyyyy

プライマリなので、空きすべてを割り当てる。

論理パーティションの追加が終わったら、パーティション設定を保存してfdiskを終了する。

コマンド (m でヘルプ):w


Linuxサーバの再起動で、設定が有効になる。

2.パーティションのフォーマット


作成した論理パーティション/dev/sda5, /dev/sda6をフォーマットする。フォーマットにはmke2fsコマンドを使用する。

# cd /sbin
# mke2fs /dev/sda5
# mke2fs /dev/sda6

3./dev/sda5の内容を戻す


/var/crashの内容をバックアップより/dev/sda5にコピーして戻す。FTPツールを使用。

4./usrをマウント


マウント先のディレクトリをまず作成する。仮マウント先として/usrnewを作成する。
# mkdir /usrnew

mountコマンドで/dev/sda6に/usrnewをマウントする。
# mount -t ext2 /dev/sda6 /usrnew

サーバ起動時に自動的にファイルシステムをマウントさせるには、/etc/fstabを編集する必要がある。
【fstabの内容】
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/sda3 swap swap defaults 0 0
LABEL=/var/crash /var/crash ext3 defaults 1 1
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/sda6 /usrnew ext2 defaults 1 2←これを追加

/usrの内容を/usrnewへコピーする。
# cp -a /usr/* /usrnew

コピー終了後は、ディレクトリ名を変更する。
# mv /usr /usrold
# mv /usrnew /usr

/etc/fstabを以下のように修正。
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/sda3 swap swap defaults 0 0
LABEL=/var/crash /var/crash ext3 defaults 1 1
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/sda6 /usr ext2 defaults 1 2←修正

サーバ再起動し、dfコマンドで構成を確認する。/dev/sda6に/usrがマウントされていればOK。確認後、/usroldをディレクトリごと削除する。

拡張後の構成はこのようになった。
パーティション タイプ マウント先ディレクトリ 使用率
/dev/sda1 Linux      /boot 8%
/dev/sda2 Linux      /            6%
/dev/sda3 Linuxスワップ
/dev/sda4 Linux拡張領域
/dev/sda5 Linux       /var/crash 1%
/dev/sda6 Linux       /usr 4%

お名前
コメント
最終更新:2008年03月14日 14:14