読者です 読者をやめる 読者になる 読者になる

pslaboの日記

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

iPad3のSIMロックに関する考察とSIM下駄による解除の試みはSoftbank版iPad3にiPhone用のSIM下駄を履かせてみるにいろいろ書いてます。

ポストした内容のカテゴリー分けがちゃんと出来てないので、過去記事を探したい方はお手数ですが検索で探してみてください。


3000円以下で買えるUSB-C→DisplayPort変換ケーブルを買ってMacbook Pro 2016に使う

MacBook

Macbook Pro 2016 に外部ディスプレイを接続する方法をイロイロ検討した結果、Plugable USB 3.1 Type C (USB-C) - DisplayPort 変換ケーブルという製品を買いました。

自宅の外部ディスプレイでは今まではminiDisplayPort で接続していたけど、このケーブルをつけたら Macbook Pro 2016 でも外部ディスプレイが繋がるようになりました。とても便利です。

まあしかし、自宅とか会社用なら給電機能つきのドッキングステーションのほうが楽かもしれんですね。USB-Cケーブル1本繋ぐだけで電源、ディスプレイ、LAN接続が取れるなら、そのほうがシンプルですからねー。

仮想マシンに Kali Linux をインストールしたり apt するときは、ホストマシンのアンチウィルスをdisableにする

Security Linux

久々に VirtualBox 上で Kali Linux の環境を作り直していたら、どハマりしたのでメモとして残す。

少なくとも、ESET との組み合わせにおいて apt update をかけると、いくつかのパッケージをダウンロード中に ESET がダメなトラフィックとみなしてパッケージのインストールが正常に終わらない。

そうすると apt は何回ものリトライを繰り返してくれるので、処理はすすまないし、ダウンロードサイト側にも大変に迷惑をかけてしまうので、実によろしくない。

そんなわけで、Kali Linux のインストールやアップデートの際はアンチウィルスの通知に気をつけるか、あるいはアンチウィルスは切っておくべきでしょう。

MacbookにインストールしたWindows10でナチュラルスクロールを使う

MacBook Windows

というネタはありふれているのだけど、他のサイトでの記事を見ると、どうにもふわ~っとした内容しか書いていないので、自分なりに整理してみる。

要点

トラックパッドレジストリに下記の設定を書けば良い。

"FlipFlopWheel"=dword:00000001
"FlipFlopHScroll"=dword:00000001

この点だけは、どのサイトを見ても同じ。問題なのは、その設定を書く場所の探し方。

他のサイトで良く出てくる説明

レジストリエディタで FlipFlopWheel を探して 1 に変更する。
FlipFlopHScroll も同様に 1 にする。
FlipFlopWheel や FlipFlopHScroll は複数あるから全部変える。

レジストリを書き換えるのに、これは大雑把すぎると思うんですよねー。

そこで自分なりに真面目に考えてやってみることにする。

先に結論から

自分の環境(Macbook Pro retina 2012 13inch) では、以下の設定を :naturalscroll.reg などのファイルにしておけばよさげ。そうすればファイルをダブルクリックするだけで設定が完了する。

他の機種でもコレで行けるかどうかは知らないので、要注意。

Windows Registry Editor Version 5.00

; Apple Multitouch
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID\VID_05AC&PID_025B&MI_01&Col01\7&3166beef&0&0000\Device Parameters]
"FlipFlopWheel"=dword:00000001
"FlipFlopHScroll"=dword:00000001

; Apple Multitouch mouse
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID\VID_05AC&PID_025B&MI_02\7&1e36a2b1&0&0000\Device Parameters]
"FlipFlopWheel"=dword:00000001
"FlipFlopHScroll"=dword:00000001

設定変更箇所の探し方

まずはデバイスマネージャでマルチタッチトラックパッドを確認する。 f:id:pslabo:20170305131711p:plain

2つ出ている理由は知らんけど、両方ともプロパティの詳細情報から、ハードウェアIDを確認しておく。 f:id:pslabo:20170305131817p:plain

f:id:pslabo:20170305131844p:plain

次に、レジストリエディタを起動して、HKEY_LOCAL_MACHINE を FlipFlopWheel で探してみると、3つ見つかる。

f:id:pslabo:20170305132015p:plain

しかし、先程のハードウェアIDを比べてみると、3つのうち1つは明らかに違う。よって、残りの2つだけを変更すれば良さげであることが想像できる。

この2つに対する変更情報だけを抽出したのが前述の reg ファイルである。

Chrome リモートデスクトップでカーテンモードを使う

Google Chrome拡張機能である Chrome remote desktop は遠隔地の機材を簡単に操作できるので非常に便利なのです。しかしデフォルトの動作モードでは、操作されている機器の画面をそのまま操作する側に見せています。

つまり、遠隔から操作しているときに、操作対象機器の目の前にいる方には、その操作内容が丸見えになるわけです。

この仕様はだれかがログイン中の画面を一時的に共有する場合はアリですが、そうでない場合はセキュリティ上の問題を引きおこす可能性があります。

そのような場合には「カーテンモード」を有効とすると良いそうです。カーテンモードでは「操作される側」のPCはロック画面となりますから操作中の内容を誰かに見られる心配はありません。

カーテンモードの設定は Google のサポートページの内容によると次の通りです。

Windows

レジストリに以下の設定を行う。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"RemoteAccessHostRequireCurtain"=dword:00000001

; Windows10 の場合は下記の値もセットする
;
;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
;"SecurityLayer"=dword:00000001
|reg<


また併せて以下の設定を行う。
>||
[コントロール パネル\システムとセキュリティ\システム] > [リモートの設定] > [リモート デスクトップを実行しているコンピュータからの接続を許可する(セキュリティのレベルは低くなります)] を選択し、パソコンで RDP 接続を有効にします。

なるほどねー、これはつまり Chrome remote desktop のサーバ、クライアント側の通信に加えて、Remote Desktop 接続を行うわけですね。確かに Remote Desktop 接続はそもそもカーテンモードなわけだから、その仕組みに乗っかればよい、と。


なお、設定完了したらリブートが必要です。

macOS

~/Library/Preferences/com.google.Chrome.plist 内の RemoteAccessHostRequireCurtain を yes にするそうです。

自分のところでは mac では試していないので、実際の挙動はよくわからん。

MacBook Pro Retina 2012 を macOS Sierra, Windows10, Ubuntu 16.04 LTS のトリプルブートにする(ネタ集めとサマリ)

MacOSX Windows Ubuntu

トリプルブート環境の作成に至った経緯

とある処理を macOS, Windows, Linux で動かした場合の性能を比べてみたくなったのだけど、この3つを同一ハードウェア上で動かせるのは Mac だけ。

そこで mac で環境を作ってみることにしたのです。


とりあえずはネタ集めから。

全体的な話

ほとんどズバリな感じの情報は下記の2つ。ただしこれは4年前の記事なので macOS のバージョンが古いことに注意が必要。
runtl.com
www.lifehacker.jp

Ubuntuに関する話はこちらの記事が参考になります。なお、WiFiドライバのインストールはUSB-LANアダプタがあれば "apt-get install bcmwl-kernel-source" で OK。無ければメディアやリポジトリからダウンロードして入れる。
ottan.xyz

macOSの環境調整に関する話

各種作業用にmacOSのインストールUSBメモリを作っておくと重宝するかも? 自分の場合は command + R や option + command + R の待ち時間が嫌だったので予め作っておいた。
support.apple.com

rEFind を Sierra に導入する話はココに出ているように csrutil disable する必要がある。導入が済んだら csrutil enable を忘れずに。
qiita.com

macOSをキレイに入れ直すには、command + R や option + command + R でいける。
support.apple.com

Windows10 のインストールに関する話

Windodws10のインストールUSBメモリマイクロソフトのサイトで公開されているメディア作成ツールでいける
Windows 10 のダウンロード

なお、Windows10 がインストールできない場合は十中八九、誤ったMBRが作られていることが原因なので、この場合は以下のような操作で MBR を消して GPT だけでパーティションが認識されるようにすればよい。

macのHDDに間違ってMBRを作ってしまった場合は、gdisk で消せる。
note.chiebukuro.yahoo.co.jp

あるいは gdisk を使わない場合は dd でも消せるかも?
blog.goo.ne.jp

Ubuntu のインストールUSBメモリを作る話

UbuntuのインストールUSBメモリ作成にはコレが使えたけど、これはWindows用やな。
Rufus - Create bootable USB drives the easy way


気が向いたらスクリーンショット付きで記事を書き起こしてもよいのだけど、このやり直しは結構時間かかるので、今のところやる気が出ない。

仮想マシン用に Windows10 を調達する

Windows

掲題の通りなのですが、仮想マシン用にWindows10を1ライセンスほど追加調達することにしました。

MSDNに入っていればライセンスの範囲内で入れ放題なのですが、今は加入していないのでそういうわけにも行かぬ。

そこで選択肢をイロイロ考えてみることにしました。

思いつく選択肢は主に3つ。

  1. 店頭や通販で販売されているもの(パッケージとかDSPとか)を買う
  2. メディアで普通にインストールしたのち、Microsoft Store で買う
  3. Microsoft以外でダウンロード販売しているサイトで買う

店頭販売なら多分海賊版をつかむ可能性は少ないけれど、通販は怪しいんですよねー。特に Amazon のように同じ商品に対して直販とマーケットプレイスが混在する場合が危ない。だから通販は避ける方向で。

また、Microsoft Store の販売分は案外高い。そこで調べてみると、Amazonダウンロード販売がありました。

調達先 Windows10 Home Windows10 Pro
Microsoft Store 19,008 27,864
Amazonオンラインコード版 16,129 23,552

Microsoft Store の価格に比べて3千円~4千円ほど安い。この価格差は大きいですねえー。というわけで、こちらが Amazon のオンラインコード版の販売ページへのリンク。

しかしそれにしても素の Windows10 を単体で調達すると、案外お高い。Windows10 Pro単体の価格にもうちょっと足せば、こういうたぐいのWindows10 Home搭載 2in1 タブレットが買えてしまうというのはいかがなものか。

RAD Studio/Delphi/C++Builderをインストールするときは、仮想マシン上にインストールした上で、一度アンインストールした状態でスナップショットをとっておくのがおススメ

RAD Studio Delphi C++Builder

RADStudio/Delphi/C++Builderのインストールにはアクティベーションの回数に上限があります。インストールとアンインストールを繰り返すと上限に達してしまいます。

このような場合はサポート窓口に連絡して回数のリセットをかけてもらうことになります。しかしサポート窓口は平日日中の対応なので、サポート時間外に上限に達してしまうと何も出来なくなってしまいます。サンデープログラマーが年末年始やゴールデンウィークなどの長期休暇中にこれに出くわすと時間を大幅にロスします。

しかし「仮想マシン上でOSをクリーンインストールしたのち、その環境にRAD Studio/Delphi/C++Builderを最小構成でインストールしてからアンインストールして、その状態をスナップショットにとっておく」と、再インストールしてもインストール回数が加算されないようなので、再インストールを安心して行うことができます。

このようなことが行える理由ですが、実は「RAD Studio/Delphi/C++Builderをアンインストールしても、アクティベートしたライセンス情報はPC内に残っている」ようなのです。だから再インストール時には既存のアクティベーション済みの情報が再利用されるので、アクティベーションサーバ側で管理しているアクティベーション回数が加算されないようです。


これにより以下のような運用が可能となるかと思います。

・万が一、環境が壊れたらスナップショットを戻して再インストールしなおせばよい。
・10.1から10.1.1や10.1.2へのアップデートはアンインストールした上での再インストールが必要だけど、その場合もアンインストールはスナップショットに戻すだけで済み、なおかつそこからの再インストールでもアクティベーション回数が加算されない。
・元のスナップショットからの枝分かれとして、そのライセンスでインストール可能な複数バージョンを混在させることも可能。ただし1つのインスタンスのスナップショットなので同時起動はできない。


なお、この運用には欠点もあります。

仮想マシン用のWindows ライセンスが必要
・スナップショットは仮想マシンのディスクIOの性能を損なう場合がある
・OSの大規模なアップデートがあるとスナップショットからの差分の増大も大きく育つのでストレージが大きく消費される。

しかし、このようなデメリットを差し置いてもライセンスアクティベーション済みの状態でスナップショットを取っておくことはメリットの方が大きいのではと思います。

ます、仮想化するならWindows ライセンスは必須なので、この費用は止むを得ないかと。ただしマルチプラットフォーム向け開発の場合は macOS 上の仮想マシンWindows + RAD Studio をインストールするのが定石ですから、この場合は必要な条件は揃っていますね。

ディスクIOについては、SSD利用とすることで緩和できます。

OSの大規模アップデートについては、これは止むを得ないものと思って諦めるか、元のスナップショットをアップデートした上で、枝分かれのスナップショットも作り直すかのいずれかです。