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