土曜日, 10月 25, 2008

VMware Server上のLinux(CentOS)にHDD追加

VMware Server上で動かしていたCentOS5のHDD容量が8GBで足りなくなってきたので追加した。

VMware ServerでHDDを追加

まずゲストOSをシャットダウン。 CentOSなのでshutdown -h nowを実行した。 終了後以下の手順でHDDを追加。

  1. InventoryからHDDを追加したい仮想マシンを右クリックしてSettingsを選択
  2. HardwareタブのAddボタンをクリック
  3. Welcome to the Add Hardware Wizard: 次へボタンをクリック
  4. Hardware Type: Hard Diskを選択して次へボタンをクリック
  5. Select a Disk: Create a new virtual diskを選択して次へボタンをクリック
  6. Select a Disk Type: この仮想マシンで使用しているHDDと同じタイプを選択して次へボタンをクリック。SCSI (Recommended)
  7. Specify Disk Capacity: Disk size(GB)を好きなサイズに設定する。 ディスクに余裕があればAllocate all disk space nowをチェック。 Split disk into 2GB filesはチェックしない。次へボタンをクリック
  8. Specify Disk File: 好きなファイル名を指定。完了ボタンをクリックしてウィザードが終了し、HDDが追加される
  9. Virtual Machine Settings画面のHardwareタブにHard Disk 3 (SCSI 0:2)が追加されているはず(実は2つめ。1回目ではSCSI :0:1が追加される)

Linuxのパーティション設定

仮想マシンを起動すると、以下のようにデバイスファイルが増えていることが分かる。

# cd /dev
# ls -l sd*
brw-r----- 1 root disk 8,  0 10月 25 10:38 sda
brw-r----- 1 root disk 8,  1 10月 25 10:39 sda1
brw-r----- 1 root disk 8,  2 10月 25 10:38 sda2
brw-r----- 1 root disk 8, 16 10月 25 10:38 sdb
brw-r----- 1 root disk 8, 17 10月 25 10:38 sdb1
brw-r----- 1 root disk 8, 32 10月 25 10:38 sdc

SCSI 0:1がsdbに、SCSI 0:2がsdcになっている(らしい)。 fdiskコマンドで中身を見てみると以下のようになっている。 (fdisk -lで表示した方がはやいかも)

# fdisk /dev/sda

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

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

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1044     8281507+  8e  Linux LVM

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

# fdisk /dev/sdc
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

このディスクのシリンダ数は 1305 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

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

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System

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

/dev/sdcのほうはpコマンドで表示してもなにも出てこない。 以下のようにしてパーティション設定を行う。

  1. fdisk /dev/sdcを実行
  2. nコマンドで新たに領域を作成
  3. 拡張または基本領域を聞かれるのでpをタイプ
  4. 領域番号を聞かれるので1をタイプ
  5. 最初シリンダ(First cylinder)を聞かれるのでそのままEnter
  6. 終点シリンダまたは+サイズ...を聞かれるのでそのままEnter
  7. wコマンドで書き込み、fdiskを終了
  8. (fdisk /dev/sdcを実行してpコマンドで領域を確認)
# fdisk /dev/sdc 
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。

このディスクのシリンダ数は 1305 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

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

コマンド (m でヘルプ): n[ENTER]
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p[ENTER]
領域番号 (1-4): 1[ENTER]
最初 シリンダ (1-1305, default 1): [ENTER]
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-1305, default 1305): [ENTER]
Using default value 1305

コマンド (m でヘルプ): w[ENTER]
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。

# fdisk /dev/sdc

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

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

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1305    10482381   83  Linux

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

フォーマット

パーティションを設定したらディスクのフォーマットを行う。 一応現在のファイルシステムを確認。

# df -T
Filesystem    Type   1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
              ext3    15518680  14073940    643668  96% /
/dev/sda1     ext3      101086     16749     79118  18% /boot
tmpfs        tmpfs      127812         0    127812   0% /dev/shm

ext3を使用していることが分かるので、追加するsdcもext3を使用する。 ext3でフォーマットするにはmkfsコマンドかmke2fsコマンドを使うとよい。 パラメータには作成されたデバイス/dev/sdc1を指定する。

# mkfs -t ext3 /dev/sdc1
または
# mke2fs -j /dev/sdc1
# mke2fs -j /dev/sdc1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1310720 inodes, 2620595 blocks
131029 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 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

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

マウント

最後にマウントしてディレクトリとしてアクセスできるように設定。

# cd /mnt/
# mkdir work
# mount /dev/sdc1 /mnt/work/
# df -T
Filesystem    Type   1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
              ext3    15518680  14073960    643648  96% /
/dev/sda1     ext3      101086     16749     79118  18% /boot
tmpfs        tmpfs      127812         0    127812   0% /dev/shm
/dev/sdc1     ext3    10317828    154236   9639476   2% /mnt/work

起動時に自動でマウントするように、/etc/fstabに以下の1行を追記。

/dev/sdc1               /mnt/work               ext3    noatime         0 2

順番に [1番目:マウントするブロックデバイス] [2番目:マウントポイント] [3番目:ファイルシステムの種類] [4番目:マウントオプション] [5番目:ファイルシステムをdumpする必要があるかどうか] [6番目:システム起動時にfsckチェックを行うかどうか] らしい。 5番目は不要なので0を指定。 6番目は0(チェックを行わない)、 1(ルートファイルシステムでチェックを行う)、 2(ルートシステム以外でチェックを行う)となっている。

再起動する。

# shutdown -r now

0 コメント: