Howto

ATDEで使用できるディスク容量を大きくする

まっさらなATDEの仮想ディスクには10ギガバイト以上の空き領域がありますが、Debianパッケージを追加したり開発コンポーネントや作業ファイルが増えていくにつれて不足することがあります。実際のハードディスクに余裕があるならば、ATDEのディスク容量を大きくして解決することができます。

動作確認に使用した環境

VMwareVMware Workstation 7.1.5/8.0.1, VMware Player 4.0.1
ATDEv4(atde4-20111228-i386.zip, atde4-20111228-amd64.zip), v3(atde3-20100309.zip)

手順を誤った場合、ATDEが起動できなくなる可能性があります。ご使用中のATDEに適用する場合、必ずバックアップを取ってから作業を行ってください。

作業の前に

標準でATDEに割り当てられているディスクサイズ16ギガバイトを、64ギガバイトに増やすものとして説明します。

ATDEのディスクは、Logical Volume Manager(LVM)というものを使って構築されています。目的は単純ですが、このLVMのために実際の作業はやや面倒です。以下のような流れで手順を追っていきます。

  1. VMwareで割り当てるディスク容量を拡張する
  2. LVMパーティションを作成する
  3. 物理ボリュームを作成する
  4. 物理ボリュームをボリュームグループに登録する
  5. 論理ボリュームに割り当てる物理拡張領域を増やす
  6. ルートファイルシステムの容量を増やす

1. VMwareで割り当てるディスク容量を拡張する

まず、VMwareがATDEに割り当てているディスク容量そのものを拡張します。この手順については、VMware製品のドキュメントに詳しく記されています。

ここでは例として、Workstation ユーザーマニュアルを参照しながらVMware Workstation 7.1.5で作業を行ってみます。

  1. VMware Workstationを起動し、サイドバーからディスク容量を変更するATDEを選択する。
  2. 「状態」を見て、パワーオフになっていることを確認する。(パワーオフされていない場合、ATDEを操作してシャットダウン後、メニューの「VM(M)」→「パワー(P)」から「パワーオフ(O)」してください)
  3. メニューから「VM(M)」から「設定(S)」を開く
  4. 「ハードウェア」タブの「ハードディスク(SCSI)」をクリックする
  5. 右側にある「ユーティリティ(U)」をクリックして「拡張(E)」を選択する
  6. 「ディスク最大サイズ(GB)」に"64.0"を指定する
  7. 「拡張(E)」ボタンをクリックする
  8. ディスク容量の拡張処理が完了を待ち「OK」ボタンをクリックする

2. LVMパーティションを作成する

ここからはATDE上からの操作になります。ATDEを起動してログインし、ターミナルを開いてください。

ディスク容量が拡張されていることを確認します。

[ATDE ~]$ sudo fdisk -l /dev/sda

Disk /dev/sda: 68.7 GB, 68719476736 bytes
255 heads, 63 sectors/track, 8354 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009d632

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        2089    16525313    5  Extended
/dev/sda5              32        2089    16525312   8e  Linux LVM

「/dev/sda」のサイズが68.7GB[1]として認識されています。ここで、「Linux LVM」として表示されている「/dev/sda5」が、現在ATDEで使用中のパーティションです。

[1]VMwareで設定した64.0GBとの差は、補助単位計算である1キロを1024とするか1000とするかの違いです。

増えた分の容量すべてを使ったパーティション「/dev/sda3」を、パーティションタイプを0x8e (Linux LVM)として作成します。

[ATDE ~]$ sudo fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (2089-8354, default 2089):
Using default value 2089
Last cylinder, +cylinders or +size{K,M,G} (2089-8354, default 8354):
Using default value 8354

Command (m for help): t
Partition number (1-5): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

再びディスク状態を確認してみます。

[ATDE ~]$ sudo fdisk -l /dev/sda

Disk /dev/sda: 68.7 GB, 68719476736 bytes
255 heads, 63 sectors/track, 8354 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009d632

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        2089    16525313    5  Extended
/dev/sda3            2089        8354    50327313   8e  Linux LVM
/dev/sda5              32        2089    16525312   8e  Linux LVM

新たにLVMパーティション「/dev/sda3」が追加されています。

しかし、この時点ではまだOSに新パーティションが認識されていません。状態を反映するために、一旦ATDEを再起動します。

3. 物理ボリュームを作成する

作成したLVMパーティション「/dev/sda3」内に、物理ボリュームを作成します。

[ATDE ~]$ sudo pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

物理ボリュームの状態を表示します。初めからあった「/dev/sda5」に加え、新たに「/dev/sda3」に物理ボリュームが作られたことが確認できます。

[ATDE ~]$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               atde4
  PV Size               15.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4034
  Free PE               0
  Allocated PE          4034
  PV UUID               D3nytk-NhpO-g3qX-PWwz-5aFa-W6YV-2AM9eA
   
  "/dev/sda3" is a new physical volume of "48.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               48.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               bbscfR-G4B5-wvsg-jpEo-cvjR-NqLz-NvchRp

4. 物理ボリュームをボリュームグループに登録する

初めからあった「/dev/sda5」の物理ボリュームを表示します。

[ATDE ~]$ sudo pvdisplay /dev/sda5
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               atde4
  PV Size               15.76 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4034
  Free PE               0
  Allocated PE          4034
  PV UUID               D3nytk-NhpO-g3qX-PWwz-5aFa-W6YV-2AM9eA

「VG Name」がボリュームグループ名です。先ほど新たに「/dev/sda3」に作成した物理ボリュームを、同じボリュームグループ「atde4」に登録します。

[ATDE ~]$ sudo vgextend atde4 /dev/sda3
  Volume group "atde4" successfully extended

「/dev/sda3」の物理ボリュームを表示して、「VG Name」が「atde4」になったことを確認します。

[ATDE ~]$ sudo pvdisplay /dev/sda3
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               atde4
  PV Size               48.00 GiB / not usable 3.77 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              12286
  Free PE               12286
  Allocated PE          0
  PV UUID               bbscfR-G4B5-wvsg-jpEo-cvjR-NqLz-NvchRp

5. 論理ボリュームに割り当てる物理拡張領域を増やす

現在の論理ボリュームの状態を表示します。

[ATDE ~]$ sudo lvscan
  ACTIVE            '/dev/atde4/root' [15.07 GiB] inherit
  ACTIVE            '/dev/atde4/swap_1' [708.00 MiB] inherit

「ACTIVE '/dev/atde4/root'」と表示された15.07ギガバイト分が、今までルートファイルシステムが使用していたディスクサイズです。

現在のボリュームグループを表示します。

[ATDE ~]$ sudo vgdisplay
  --- Volume group ---
  VG Name               atde4
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               63.75 GiB
  PE Size               4.00 MiB
  Total PE              16320
  Alloc PE / Size       4034 / 15.76 GiB
  Free  PE / Size       12286 / 47.99 GiB
  VG UUID               DCEly0-CQaj-Xo4Q-VmuD-tf4A-AEZC-CkRJ0S

下の方に「Free PE / Size」として表示された47.99ギガバイトが、先ほどまでの手順で追加したディスクサイズになります。この追加分すべてを、「/dev/atde4/root」に割り当てます。

[ATDE ~]$ sudo lvresize -L +47.99G /dev/atde4/root 
  Rounding up size to full physical extent 47.99 GiB
  Extending logical volume root to 63.06 GiB
  Logical volume root successfully resized

再び論理ボリュームの状態を表示します。

[ATDE ~]$ sudo lvscan
  ACTIVE            '/dev/atde4/root' [63.06 GiB] inherit
  ACTIVE            '/dev/atde4/swap_1' [708.00 MiB] inherit

「ACTIVE '/dev/atde4/root'」への割り当てが、63.06ギガバイトに増えたことがわかります。

6. ルートファイルシステムの容量を増やす

最後に、LVMで追加したディスク増量分を使って、ルートファイルシステムの容量を増やします。resize2fsコマンドを実行するだけで、新たなディスク容量に合わせて自動的にサイズ変更されます。

[ATDE ~]$ sudo resize2fs /dev/atde4/root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/atde4/root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 4
Performing an on-line resize of /dev/atde4/root to 16530432 (4k) blocks.
The filesystem on /dev/atde4/root is now 16530432 blocks long.

dfコマンドを実行してみると、ルートファイルシステムの容量が増えたことが確認できます。

[ATDE ~]$ df -hl
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/atde4-root 63G  2.4G   57G   4% /
tmpfs                1007M     0 1007M   0% /lib/init/rw
udev                 1002M  124K 1002M   1% /dev
tmpfs                1007M  4.0K 1007M   1% /dev/shm
/dev/sda1             236M   20M  204M   9% /boot