稼働中のwin7をまるごとVirtualBoxに移行する

稼働中のwindows7をまるごとVirtualBoxに移行できないものかとググってみると、方法があったので、実践してみました。

1.Disk2vhdをダウンロードする。
これは、現在稼働中のOSをvhd形式に変換するツールでMSからDLできました。
http://download.sysinternals.com/files/disk2vhd.zip

2.vhdに変換する
disk2vhd.zipを展開後、exeを実行します。下記の画面が表示されますが、VirtualBoxで利用するため、useVhdxのチェックは外してCreateボタンを押します。

3.MacOS上のVirtualBoxに持ってきて起動してみる。
できたvhdファイルが起動できるか、MacOS上のVirtualBoxに置いて起動してみます。

普通に起動できました!

Apache Cordova環境を作成する

isoのプロトタイプアプリを作成するために、macにcordova環境を作成します。

利用環境は以下の通り
– MacOS Mojave(10.14.5)
– Node.js(10.16.0)
– Xcode(10.2.1)

Node.jsのインストール
ここからNode.jsダウンロードし、インストールします。

Xcodeのインストール
AppStoreから「Xcode」を検索し、インストールします。

Cordovaのインストール
Node.jsのnpmを用いて、Cordovaをインストールします。
「ターミナル」から以下のコマンドを実行します。
$ sudo npm install -g cordova
インストールが完了したら、バージョンを確認してみます。
$ cordova -v
9.0.0 (cordova-lib@9.0.1)

Cordovaプロジェクトの作成
Cordovaのプロジェクトを作成します。
私は/Users/[ユーザー名]/Documents/srcフォルダ内に作成します。
srcフォルダ移動後、以下のコマンドを実行します。
# cordova create ディレクトリー 識別子 アプリ名
$ cordova create SampleCordova com.example.SampleCordova SampleCordova
これでSampleCordovaのプロジェクトを作成しました。

プロジェクトフォルダに移動します。
$ cd SampleCordova

プラットフォームの追加
SampleCordovaで使用するプラットフォーム(iOSやAndroid、WindowsPhoneなど)を追加します。ここではiOSのみを追加します。
$ cordova platform add ios

利用するプラグイン等々を追加します。
$ cordova plugin add cordova-plugin-add-swift-support --save
$ cordova plugin add cordova-plugin-qrscanner
$ cordova plugin add cordova-plugin-inappbrowser
$ cordova plugin add cordova-plugin-dialogs

iOS Simulatorのインストール
実行させるためのSimulatorをインストールします
$ sudo npm install -g ios-sim

プロジェクトのビルド
Simulatorで実行できるようにプロジェクトのビルドをします。
$ cordova build

Simulatorの実行
Simulatorを実行します。
$ cordova emulate ios
Simulatorが起動し、Cordovaのアプリが表示されます。

Xcodeプロジェクト
プラットフォームにiOSを追加するとXcodeのプロジェクトファイルが生成されます。/Users/[ユーザー名]/Documents/src/SampleCordova/platforms/iosのフォルダに格納されているため、Xcodeを用いてビルド、Simulatorの起動等も行えます。

ですが、Xcode10.2.1ではSwift3以前がサポートされていないようで、Cordovaで生成したソースがビルドできません。そのため、プロジェクトフォルダにあるconfig.xmlやXcodeのビルド設定を見直します。
/Users/[ユーザー名]/Documents/src/SampleCordova/config.xml
<platform name=”ios”>記載部分に以下のように追加します。

<platform name="ios">
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
    <preference name="UseLegacySwiftLanguageVersion" value="true" />
    <preference name="UseSwiftLanguageVersion" value="5" />
</platform>

次に、Xcodeのビルド設定を見直します。/Users/[ユーザー名]/Documents/src/SampleCordova/platforms/ios/SampleCordova.xcodeprojをクリックしてXcodeを起動します。そのあと、プロジェクトを選択し、TARGETS -> Build Settings -> Swift Compiler -> Swift Language Version を 4.2に変更します。

あとは、Xcodeからビルドし、エミュレータ実行が可能になります。

iPhoneのバックアップ先をTimeMachineに変更してみる

iMacにiPhoneを繋ぐと、バックアップが実行され、
iMacの/Users/[UserName]/Library/Application Support/MobileSync/Backupに
バックアップが作成されます。HDDの肥やしとなります。これをTimeMachineのHDDに変更します。

ターミナルで
cd /Volumes/Time\ Machineバックアップ
に移動し


sudo mkdir -p MobileSync/Backup
sudo chmod -R 777 MobileSync
cd /Users/[UserName]/Library/Application\ Support/
rm -fr ./MobileSync
ln -s /Volumes/Time\ Machineバックアップ/MobileSync MobileSync

iPhoneをiMacに繋げます。
シンボリックリンク先の方にバックアップが作成されますので、hddの肥やしにはなりません。

めでたしめでたし。

spindumpで俺のMacBookAirがもっていかれる

最近、私が使っているMacBookAirがレインボーカーソルが回らない状態でフリーズを繰り返す。数分立つと戻ってくるのだが、イライラしてしまう。アクティビティモニターで確認すると、メモリープレッシャーが異常なまでに跳ね上がるときにフリーズ!レインボーカーソルになってしまうようだ。グーグル先生に聞いてみると、いろいろと情報をダンプしてくれるspindumpというサービスがネックになっているようで、kill spindump!という記事もあったので、参考にして、spindumpサービスを停止してみた。

(1)System Integrity Protectonを無効にする。

  1. macの電源をoffにした状態で、command+Rを押した状態で電源ポタンを押して起動
  2. リカバリモードで起動したあと、ユーティリティー -> ターミナルを起動
  3. ターミナルでコマンドを打って、SIPを無効にする。
 csrutil disable

(2)spindumpの自動起動を無効にする。

  1. 普通に起動して、ターミナルを起動
  2. ターミナルでコマンドを打って、spindumpを無効にする
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist
sudo mv /System/Library/LaunchDaemons/com.apple.spindump.plist /System/Library/LaunchDaemons/com.apple.spindump.plist.bak
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.tailspind.plist
sudo mv /System/Library/LaunchDaemons/com.apple.tailspind.plist /System/Library/LaunchDaemons/com.apple.tailspind.plist.bak

(3)System Integrity Protectonを有効にする。

  1. macの電源をoffにした状態で、command+Rを押した状態で電源ポタンを押して起動
  2. リカバリモードで起動したあと、ユーティリティー -> ターミナルを起動
  3. ターミナルでコマンドを打って、SIPを有効にする
 csrutil enable

再起動後、快適ではないか!