Hatena::ブログ(Diary)

mikage014の日記 このページをアンテナに追加 RSSフィード

2014年01月19日

VirtualBoxで4TBの仮想ディスクを作る

GUIでは仮想ディスクのサイズは2TBまでしか指定できませんが、CUIだと2TB以上のサイズを指定することができます。VBoxManage createhdコマンドで仮想ディスクを作ります。

ホストOS、ゲストOSとも2TB以上のディスクが認識できるOSであることが前提です。

C:\Windows\System32> D:\Package\VirtualBox\VBoxManage createhd
Usage:

VBoxManage createhd         --filename <filename>
                            [--size <megabytes>|--sizebyte <bytes>]
                            [--diffparent <uuid>|<filename>
                            [--format VDI|VMDK|VHD] (default: VDI)
                            [--variant Standard,Fixed,Split2G,Stream,ESX]

早速4TBのHDDに仮想ディスクを作ってみました。

サイズはMB指定で、あまりぴったりにするとエラーがでて作れなかったので15GB程余裕を持たせました。

4000340336640 / 1024 / 1024 = 3815021.8359375 → 3800000

(エラー)
C:\Windows\System32>D:\Package\VirtualBox\VBoxManage createhd --filename M:\nas_
4TB_140119.vdi --size 3815021 --format VDI --variant Fixed
0%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage.exe: error: Failed to create hard disk
VBoxManage.exe: error: Could not create the medium storage unit 'M:\nas_4TB_1401
19.vdi'.
VBoxManage.exe: error: VDI: disk would overflow creating image 'M:\nas_4TB_14011
9.vdi' (VERR_DISK_FULL)
VBoxManage.exe: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component M
edium, interface IMedium
VBoxManage.exe: error: Context: "int __cdecl handleCreateHardDisk(struct Handler
Arg *)" at line 391 of file VBoxManageDisk.cpp

(OK)
C:\Windows\System32>D:\Package\VirtualBox\VBoxManage createhd --filename M:\nas_
4TB_140119.vdi --size 3800000 --format VDI --variant Fixed
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: f1b738f9-d6c9-41cd-abf5-f8b206a87634

--variant Fixed を指定して固定サイズにしたので4TBの仮想ディスクを作り終わるまで一晩かかりました。

平均100MB/sで書き込めたとして、10時間くらい見ておけば良いかと思います。


参考サイト

virtualbox.org • View topic - Disk image greater than 2TB

Over2TB - wiki@nothing

2014年01月06日

CakePHP2のHtmlHelperでcssを読み込むときにメディアタイプを指定する

普通にstyle.cssを読み込む場合はHtmlHelperでこのように書くとlinkタグに展開されます。

<?php echo $this->Html->css('style'); ?>
<link rel="stylesheet" type="text/css" href="/cakephp2/css/style.css" />

メディアタイプを指定する場合は第3引数にarrayでメディアタイプを指定します。

第2引数は rel 属性の値になります。

<?php echo $this->Html->css('print', 'stylesheet', array('media' => 'print')); ?>
<link rel="stylesheet" type="text/css" href="/cakephp2/css/print.css" media="print" />

参考サイト

HtmlHelper — CakePHP Cookbook 2.x ドキュメント

2013年07月04日

PHP5.3以上のときだけDebugKitを読み込む

DebugKitのmasterブランチは2013年7月時点で

となっています。

PHP5.2系で動かすとこんなエラーが出ます。

Parse error: syntax error, unexpected T_FUNCTION in APP/plugins/DebugKit/Controller/Component/ToolbarComponent.php on line 174

ToolbarComponent.php でPHP5.3以降で追加された無名関数が使われているのでPHP5.2以下ではエラーになります。

<?php
    ...
    public function implementedEvents() {
        $before = function ($name) {
            return function () use ($name) {
                DebugTimer::start($name, __d('debug_kit', $name));
            };
        };
        $after = function ($name) {
            return function () use ($name) {
                DebugTimer::stop($name);
            };
        };

そこでPHP5.3以上のときだけDebugKitを読み込むようにしてみました。

<?php
class AppController extends Controller {
    public $components = array('DebugKit.Toolbar');
    ...

としていたのを

<?php
class AppController extends Controller {
    public $components = array();
    
    public function __construct($request = null, $response = null) {
        parent::__construct($request, $response);
        
        if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
            $this->components['DebugKit.Toolbar'] = array();
        }
    }

これでPHP5.2以下の環境にデプロイしてもエラーは出なくなります。

2013年06月21日

NEC VL-550WGのLANドライバ

NECドライバダウンロード一覧に載っていなかったのでボードを眺めてBroadcomチップを見つけて、Broadcomのドライバを入れてみたらビンゴ。

OEMマザーはネットに情報が無くて不便ですわね。

2013年06月04日

HP ProLiant ML110 G7のBIOSで日付・時刻が変更できないときの対処

はじめはBIOSで日付・時刻の変更ができていた気がするのだけどOS入れたりドライバ入れたりしてるうちにBIOSの時刻がUTCっぽい時刻から変更できなくなってしまった。

OSで時刻変更するとRTCにも書き込んでくれるらしいけどこれもダメ。

ということでさらに調べを進めるとどうもiLOにタイムゾーンの設定があるらしい。

マニュアルでタイムサーバとタイムゾーン「Asia/Tokyo」を設定してiLOをリセット(同画面の右下のResetボタン)した後サーバー再起動すると、BIOSOSともめでたくGMT+9の時刻になりました。

f:id:mikage014:20130604175650p:image

その後DHCPに戻してもOKでした。

WindowsのRubyで全てのgemをアンインストールする方法

コマンドプロンプトに以下のコマンドを貼り付けると全てのgemアンインストールできます

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.empty? }"

RubyInstaller(Ruby 1.9.3-p429) でインストールした場合は初期状態で以下のgemが入っているので、一からやり直したいときはRubyごと再インストールした方がいいかもしれないです

C:\>gem list

*** LOCAL GEMS ***

bigdecimal (1.1.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)

参考サイト

How to uninstall all ruby gems on windows?

http://stackoverflow.com/questions/6373160/how-to-uninstall-all-ruby-gems-on-windows