LoginSignup
6
5

More than 5 years have passed since last update.

ext3容量拡張

Last updated at Posted at 2013-08-06

VMなどでLVM使わず適当に、

  1. /dev/sda1 => /boot
  2. /dev/sda2 => /
  3. /dev/sda3 => swap

と作っちゃったときに、/の容量が足りなくなってきて、VMマネージャで容量を増やした時などの作業方法。
fdiskでパーティションを一度削除し、より大きなエリアを同じ位置に設定することで、容量拡張をします。

※ちなみに作業は自己責任でお願いします。当方は作業結果の保証は、しませんので。

状況確認

# df -h
# fdisk -l /dev/sda

出力された情報を控えておく。 (特に各パーティションのシリンダ位置番号とブロック数)

Disk /dev/sda: 171.7 GB, 171798691840 bytes
255 heads, 63 sectors/track, 20886 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         127     1020096   83  Linux
/dev/sda2             128        9920    78662272+  83  Linux
/dev/sda3            9921       10442     4192965   82  Linux swap / Solaris

linux rescueで再起動

インストールCDから起動

  • CentOS5/Debian等
    起動時にboot:と表示されたら linux rescue と間違いなく入力する

  • CentOS6等
    起動時に選択メニューが現れるので、 Rescue installed system を選択する。

今回の作業ではネットワークは使用しないので、選択肢が出てきたらネットワーク無しでOK。

ディスクをマウントし作業

マウント

# fdisk /dev/sda

現在のパーティションの状況を表示

出力されたブロック数などの情報が最初に控えた物と相違無いことを確認。

p

第3パーティションと第2パーティションを削除

d 3
d 2

第2パーティションを作成

新規パーティションの開始位置(start)は、削除前に第2パーティションのものとして控えた開始位置を入力する(内容後述)。
※これを間違えると情報を失います

n p 2

第3パーティションを作成

n p 3

第3パーティションをSWAPに変更

t 
82

書き込み

w

終了位置(end)の数値の算出方法(...というほど大げさなものでは無く...)

当初控えた第3パーティション(swap)の容量を、そのまま最終シリンダ位置に移動する。
よって、

  • 控えたfdisk情報の第3パーティションの終了位置シリンダ番号から開始位置シリンダ番号を引く。(第3パーティションのシリンダ数)
    上記サンプルでは、10442-9921=521

  • 控えたfdisk情報のディスクのシリンダ数(最終シリンダ番号)から、先の第3パーティションのシリンダ数を引く。(第3パーティションの開始シリンダ番号)
    上記サンプルでは、20886-521=20365

  • 第3パーティションの開始シリンダ番号から1を引いた数字が第2パーティションの終了位置となる。
    上記サンプルでは、20365-1=20364

つまり、
第2パーティションは

  • 開始位置 128
  • 終了位置 20364

第3パーティションは

  • 開始位置 20365
  • 終了位置 20886(最終シリンダ)

となる。

ファイルシステムのチェックと拡張

# e2fsck -f /dev/sda2
# resize2fs /dev/sda2

再起動

起動前にcdを出しておいてHDDから起動する。

reboot

作業後状況確認

# df -h
# fdisk -l /dev/sda

当初のサンプルの物が以下のようになればHappy End.

Disk /dev/sda: 171.7 GB, 171798691840 bytes
255 heads, 63 sectors/track, 20886 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         127     1020096   83  Linux
/dev/sda2             128       20364   162553702+  83  Linux
/dev/sda3           20365       20886     4192965   82  Linux swap / Solaris

おわり

たぶん問題無く/dev/sda2の容量が増えているはず。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5