VirtualBoxに物理HDDを丸ごと1台割り当てる

BootCampパーティションだけをVMにアタッチしている例は見かけるが、BootCampパーティションのあるHDDを丸ごとアタッチしている例がなかったのでメモ。

$ sudo diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
$ sudo vboxmanage internalcommands createrawvmdk -filename ./BootCampHDD.vmdk -rawdisk /dev/disk2
RAW host disk access VMDK file ./BootCampHDD.vmdk created successfully.
$ sudo chown username BootCampHDD.vmdk

/dev/disk2の箇所は環境に合わせて適宜読み替えてくだしあ。

後は作ったvmdkをVMに割り当てればおk。

VM起動時はBootCampパーティション単体の場合と同じく、ドライブをアウンマウント&パーミッションを変更する。VM起動中にMacをスリープ&復帰させると、問答無用でドライブがMac側にマウントされてしまうのはどうにかしたいところ(確かVMware FusionのBootCamp起動ではスリープにしても問題がなかった)。Disk Arbitration Frameworkを使えば実現出来そうな気がするので、ちょいと調査中。

HFS+の透過圧縮でディスク容量を節約してみる

Mac Proのストレージを、1TBのHDDから240GB(120GBx2のRAID-0)のSSDに替えたところ、容量カツカツでわろえない。残容量の不安も然る事ながら、ウェアレベリングの観点からも、空きが少ないのはハード的にも精神的にもよろしくない。

溜まりに溜まったゴミデータの整理や、塩漬けデータをNASに移したりして容量確保に勉めたが、自ずと限界はある。「こんな時ZFSなら透過圧縮で容量稼げるのにな…」と愚痴を言ってみたところで、Snow Leopard以降HFS+にも透過圧縮が付いた事を思い出した。

善は急げと、試しに/Developerを圧縮してみた。

$ cd /
$ sudo ditto --hfsCompression Developer DeveloperC
$ afsctool -v /DeveloperC
/DeveloperC:
Number of HFS+ compressed files: 155245
Total number of files: 181386
Total number of folders: 30417
Total number of items (number of files + number of folders): 211803
Folder size (uncompressed; reported size by Mac OS 10.6+ Finder): 5566353923 bytes / 5.98 GB (gigabytes) / 5.57 GiB (gibibytes)
Folder size (compressed - decmpfs xattr; reported size by Mac OS 10.0-10.5 Finder): 2354926231 bytes / 2.53 GB (gigabytes) / 2.35 GiB (gibibytes)
Folder size (compressed): 2551670089 bytes / 2.72 GB (gigabytes) / 2.54 GiB (gibibytes)
Compression savings: 54.2%
Approximate total folder size (files + file overhead + folder overhead): 2822868266 bytes / 2.82 GB (gigabytes) / 2.63 GiB (gibibytes)

5.57GiBが2.54GiBへ・・・これは素晴らしい!同様にXcode 4は3.43GiB→1.78GiB、ドキュメント(~/Library/Developer/Shared/Documentation)は5.02GiB→2.69GiBを達成。

仮想マシンのイメージを圧縮したら激ウマじゃね!!??と思い、14.21GiBの.vmwarevmを圧縮してみたら13.18GiBにしかならんかった(´・ω・`)

注意点は、圧縮以後に追加されたファイルには自動で圧縮が掛からない(その都度手動で圧縮しないといけない)のと、manを見ると一応「システムファイルのインストールやバックアップ用途のみを想定」となっている事。リアルタイムで圧縮が掛からないのは、そういう前提があるからなのかな?まぁ、殆ど変化することのないアプリの圧縮には十分っすね。どうしてもリアルタイム圧縮が欲しいなら、Clustersというアプリがある。有料だけど。

Mountain LionにXcode 3をインストール

OS再インストールに伴い再びML上にXcode 3を入れる機会が巡ってきた。

やはりカーネルパニックで強制シャットダウンは気持ちのいいものではないので、調べてみたらKPを回避してインストールする方法を見つけた。素敵過ぎる。

  1. Xcode 3.2.6のDMGをマウントし、中身を丸ごとターミナル経由でコピーする(Finderだと不可視項目をコピー出来ない)。
    cp -R /Volumes/Xcode\ and\ iOS\ SDK/ ~/Desktop/Xcode

  2. インストールスクリプトを編集し、カーネルパニックの原因となるパッケージをインストールされないようにする。

    ~/Desktop/Xcode/Xcode and iOS SDK.mpkg/Contents/iPhoneSDKSL.dist
    【145行目付近】
    function isDevToolsCompatible()
    {
        if ( system.env.COMMAND_LINE_INSTALL == 1 ) { return true; }
        if( system.compareVersions(my.target.systemVersion.ProductVersion, '10.6.6')  >= 0 && system.compareVersions(my.target.systemVersion.ProductVersion, '10.7') < 0 ) {
            return true;
        }
        return false;
    }
    ↓
    function isDevToolsCompatible()
    {
        return true;
    }
     
    --------
    【182行目を削除】
    <line choice="XcodeExtrasHIDDEN"/>
    ↓
    (削除)
     
    --------
    【425〜433行目を削除】
    <choice
            id="XcodeExtrasHIDDEN"
    	customLocation = '/'
            customLocationAllowAlternateVolumes = 'YES'
            start_visible='false'
    >
            <pkg-ref id="com.apple.pkg.Xcode_MacOSX10.6_Extras"/>
    </choice>
     
    ↓
    (削除)
     
    --------
    【528〜529行目を削除】
    <pkg-ref id="com.apple.pkg.Xcode_MacOSX10.6_Extras" auth='root'>file:../Packages/Xcode_MacOSX10.6_Extras.pkg</pkg-ref>
     
    ↓
    (削除)
     
    --------
    【650行目を削除】
    <pkg-ref id='com.apple.pkg.Xcode_MacOSX10.6_Extras' installKBytes='14742'/>
    ↓
    (削除)

  3. コピーしたXcode and iOS SDK.mpkgを実行する。「“Xcode and iOS SDK”を開くには、インストーラを終了してから再度開く必要があります。」と出るので、そのまま[OK]を押す。インストーラを32ビット版で開き直してるらしい。
  4. 「証明書切れ〜」と言われるが、気にせず[続ける]押下。インストールパッケージの選択画面まで進める。
  5. インストールパッケージの選択でSystem Toolsのチェックを外す。さもないとCHUDのカーネル拡張が悪さをしてカーネルパニックになる。UNIX Developmentを選んだ場合、後ほど対応が必要。iOS SDKは古過ぎて開発には使えないので入れる必要もないだろう。その他のオプションはご自由に。
  6. 途中で「iTunesを終了せよ」的なダイアログが出てきた場合、iTunesを終了すると共にアクティビティモニタから「iTunes Helper」も終了させる。
  7. /Developer/usr/bin の中の壊れているシンボリックリンクを修正。……といっても、それらしきものは見つからなかったのでスルー。
  8. インストールオプションでUNIX Developmentを選択し、かつXcode 4のCommand Line Toolsを既にインストールしていた場合、Command Line Toolsを再インストールする。UNIX Developmentで置き換わってしまったため。
  9. インストールが終わったら、/Developer/PlatformsにMacOSX.platformディレクトリだけが存在している事を確認。他のplatformがあったらtmpディレクトリを作りその中に移動する。さもないとInterface Builderが起動しない。
  10. インストール完了!

OS X v10.8にXcode 3.2.6を強制インストールしようとすると、途中で突然Macがブラックアウトし再起動中に再び落ちるという、お顔真っ青ループに陥る。

Xcode 3に含まれるカーネル拡張が悪さをしてるので、当該kextを削除してやればおkという訳で、作業の覚書。といってもここの手順に従うだけ。

先述したが、インストール中に問答無用で落ちるので、他のアプリなどが動いていない状態で実行した方が良い。あと自己責任で。消してるkextから想像するに、プロファイラ系のツールが使えなくなるかもしれない(激しく未確認→やはりプロファイラが使えなくなっていた)。

  1. 復旧スクリプトを準備する
    fsck -fy
    mount -uw /
    rm -rf /System/Library/Extensions/AppleProfileFamily.kext
    rm -rf /System/Library/Extensions/CHUD*.kext

    (2013-04-03追記) スクリプトファイルを作ったら chmod +x /path/to/repair-script で実行属性を付ける。

  2. Xcode 3のDMGをマウントし、ターミナルを開いてインストーラを起動する

    cd "/Volumes/Xcode and iOS SDK"
    COMMAND_LINE_INSTALL=1 open "Xcode and iOS SDK.mpkg"

  3. iOS SDKは除いてXcodeをインストールする。さもないとInterface Builderが使えなくなる。
  4. インストール終盤でカーネルパニックで落ちるが、気持ちを落ち着かせながら電源断。
  5. シングルユーザーモードでブート(⌘+Sを押しながら起動)し、準備してある復旧スクリプトを実行&再起動。スクリプトを使わずに手打ちでも当然おk

    /path/to/repair-script
    reboot

以上で、無事Macが立ち上がるようになり、Xcode 3も使えるようになる。あぼーんしてたらごめんなさい。

どうでもいいけど、Xcode 4って使いづらくないっすか。どーも1ウィンドウに全てを押しこむインタフェースは好きじゃない。

デバッガが使いにくくて死にそう。“3が付く”某ゲーム機のデバッガを彷彿とさせる使いにくさ。

BootCampのWindowsがCACHE_MANAGERで落ちる問題の対処方法

BootCampドライバをインストール後、WindowsがCACHE_MANAGERなんたらでブルースクリーンになるのは、HFSを読み込むためのドライバのせい。 ストレージにMacのソフトウェアRAIDパーティションがあると、この問題が発生する。

AppleHFS.sysAppleMNT.sysを適当にリネームしてもいいが、ソフトウェアRAIDパーティションのあるドライブをデバイスマネージャで無効化するのが、手っ取り早くておすすめ。ドライバ無効化と違い、当然他のHFSボリュームは活かせるしね。

↑では既に無効になっている状態。

ドライバ導入済みで、起動→ハング→再起動→ハングの無限ループに陥ってるなら、セーフモードで無効化すべし。

サーバのESXi化が泥沼化 完結編

なんかもう書くのも面倒になってきた。

H77のSATAをデバイスパススルーするとPSoDでESXiごと死ぬのは、ESXi 5.1のバグの模様(Esxi 5.1 pci passthrough broken)。ESXi 5.0 Update 1を入れ直して、諸々設定し直したら何の問題も無くパススルー出来た。

結論。5.1はカス。

5.1にしたら今まで出来てたパススルーが出来なくなった報告が随所で上がってるので、PCIパススルーを使いたい人は5.0U1に留まるのが吉。

5.1のvSphere Clientはバギーだし(日本語ロケールだとデータストア作成出来ないとかアホかと)、仮想マシンバージョン9のVMはWeb Clientからじゃないと作れないとか、Web Clientは有償版(vCenter Server?)でしか使えないとか。

結論。5.1はカス。

いや、まぁ、無償で使わせて貰ってるので文句言える立場にはないが……。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo