2011年05月11日

ESXi4.1でUSBインストールの余り領域を使う

VMware ESXiをUSBメモリにインストールする際には2GBもあればいいのですが、そのぐらいのサイズのUSBメモリは最近は入手がしにくく、結局4GBや8GBのUSBメモリを使うハメになります。

しかし、実際に使われる領域は1GB程度なのでそれ以外のUSBメモリの領域は空き領域として無駄になります。

まぁ、ここでVMFS3とかでフォーマット出来ればいいのですが、少なくてもESXi 4.1 Update1ではUSBメモリの空き領域をVMFSでフォーマットすることは出来ません。

(vSphireClientから見えないのはもちろん、sshからmkfstoolsで-C vmfs3してもvmkernel is not loaded or call not implemented. とか言うエラーで失敗します。)

じゃぁ、他のPCで空き領域にパーテーションを作成→フォーマットしてそれをmountコマンドで認識させようとしても、今度は「No such device」というエラーで失敗します。
(ちなみに、/homeの下などでは、上記のエラー以前にNo such file or directory.等と言われます。)

これは、ESXiが下記のコメントのように一部のフォーマットにしか対応していないためです。

「FATならOKなのね」と普通にFATでフォーマットしてもこれまた認識しません。

なぜなら、ESXiで認識出来るのはFAT16(最大1パーティーション4GBまで)なので、自分でフォーマットする場合にFAT16になるように意識しないとダメになります。

また、ESXiをUSBメモリにインストールをするとかなり変なパーテーショニングをされてしまうため、Windowsからパーテーションの操作をすると設定がおかしくなります。(と言うかなりました(^^;)

なので、Windows PCしかない人はUbuntuのライブCD等でLinuxを起動してから作業を行ってください。
(ESXiのbusybox環境にはfdiskはありますがmkfsコマンド自体が無いのでこの作業には必ずLinuxが必要です)

まず、利用中の場合にはUSBメモリのバックアップを忘れずに!!

準備が出来たらLinuxのコンソールでrootに昇格してfdiskコマンドを実行し「p」で現状を確認してください。
(fdiskコマンドに渡すデバイスPATHはLinux起動中にUSBメモリを抜き差しすればdmesg | tailsdXと表示されるので確認できるかと思います)

私が試したところではESXiのUSBメモリイメージは基本パーテーション4つのうち1と4が利用済みで、4が1GB程度のサイズで作成された拡張パーティーション領域になっていました。

そのため、「n」→「p」→「2」「n」→「p」→「3」で残り2つの基本パーテーションにを作成しました。

なお、8GB以上のUSBメモリの場合にはサイズは必ず4GB以下になるようにEndは+4000mで指定してください。
(私は8GBのメモリなので4GBと3GBぐらいの領域で作成しました。)

次にvfatでフォーマットするので「t」→「2」→「6」「t」→「3」→「6」でパーティションタイプをvfat用に切り換えてください。

念のため「p」でパーテーションが希望通りになっていることを確認してから「w」でUSBメモリに反映を行ってください。

次に、mkfs.vfatコマンドで以下のように指定してFAT16でフォーマットしてください。

mkfs.vfat -F 16 デバイスPATH

後はUSBメモリを取り外して完了です。

うまく行けば、電源を入れただけで下記のように勝手にマウントされるようです。

~ # df -k
Filesystem 1k-blocks Used Available Use% Mounted on
visorfs 1341296 267600 1073696 20% /
vfat 3895360 0 3895360 0% /vmfs/volumes/mpx.vmhba32:C0:T0:L0:3
vfat 3027840 0 3027840 0% /vmfs/volumes/mpx.vmhba32:C0:T0:L0:4

まぁ、FAT16では最大ファイルサイズが2GBなのでDVDのISOイメージも入らないことが多いですし、USBメモリなので、アクセス速度も遅いですが、ログのバックアップ程度には利用できるかと思います。

Posted by Takuchan at 2011年05月11日 00:20 | トラックバック(0)