ジャンル不定の日記です。

ファイルの暗号化について勉強した

最近メインストレージの破損が何度か起きているんだが、
手元のデータファイルはバックアップストレージから復元できているが、バックアップストレージも同時に壊れてサルベージもできなかったらマジヤバイ。
特に、自作プログラム群のソースコードが完全消失したら致命傷すぎる。
万が一に備えて、オンラインストレージを使ったバックアップを導入しようかと思ってる。
だが、オンラインストレージに重要ファイルを置くなら暗号化したいね。

というわけで、導入に向けて勉強した。


今はローカルの重要ディレクトリをシェルスクリプトで tar.gz に圧縮して、たまに手動でバックアップストレージにコピーしてるんだが、
オンラインストレージに移す時じゃなくて、tarするときに暗号化しちゃいたいかな。
って感じ。

tarコマンドで圧縮するときは普通、
$ tar czf test.tar.gz dir
ってな感じだが、tarのオプションは、
c = 書庫ファイル作成
z = gzip圧縮
f = 出力ファイル
で、fオプションを指定した場合は続けて出力ファイルを指定して、
最後に書庫に追加するパスを渡す。

というわけだが、tarで書庫を作成する際に f オプションを指定しない場合はリダイレクトやパイプで出力できるみたい。
$ tar czf test.tar.gz dir
と、
$ tar cz dir > test.tar.gz
これは同じ結果になり、リダイレクトで出力先を指定できる。
リダイレクトではなくパイプ出力もできた。
リダイレクトもパイプも無ければ標準出力になりそうだが、バイナリ出力だからだと思うが、それはエラーだった。


tarコマンドでfオプションを指定しなければパイプ出力ができることがわかったので、パイプで暗号化コマンドに渡して暗号ファイルにする。
暗号化は openssl コマンドが簡単そうだったので、それにした。

opensslコマンドは、最初の引数がサブコマンドで、暗号の種類とかを指定する。
いろいろ種類があるが、aes-128-cbc を使うことにした。
$ openssl aes-128-cbc -e -in test.tar.gz -out test.enc -pass pass:0000
こんな感じで -in の test.tar.gz を暗号化して -out の test.enc に出力できる。
-e = 暗号化する
-in = 入力ファイル
-out = 出力ファイル
-pass = 複合用パスワード
パスワードはオプションで直接渡す以外にファイルや標準入力から渡すこともできるので、直接渡す場合は "pass:パスワード" って形式になる。

ファイルを暗号化するのではなく tarコマンド からのリダイレクトを暗号化してファイルにしようと思っているわけだが、
tar cz dir | openssl aes-128-cbc -e -out test.enc -pass pass:0000
こんな感じで、-in オプションを省けばパイプで受け取った標準入力を暗号化するようになる。


test.enc が出来上がるわけだが、
openssl aes-128-cbc -d -in test.enc -out test.tar.gz
今度は暗号化の -e オプションの代わりに、復号の -d オプションを指定すれば複合して -out の test.tar.gz が出来上がる。
-pass オプションを指定することもできると思うが、省略すれば入力を求められる。


こんな感じで、問題なくシェルスクリプトでできそうですね。

SATAの増設コネクタ

サブ機から回してメインで使ってるマザーボードMSI AM1Iだが、SATAが2本しか無いんで、メインストレージとバックアップストレージを繋いで、Blu-rayドライブをケースに装着しているが未接続の状態。
AmazonとかでSATAの増設ボード探しても、PCIe接続のSATA増設カードで安いのでも2,000円程度しちゃうから、その値段ならSATAx4のASRockマザー買っちゃうな・・・

という感じで当面諦めようと思ってたんだが、aitendo見てたら、
http://www.aitendo.com/product/2714
なにこれ安い!300円!
何だが、写真見る限りこれコントローラーとかついてなくて直結だぞwそれで動くのか?
というわけで、ちょっとSATAとかPCIeとか調べたり考えたりしてみた。

Amazonとか楽天とか見ても、こんな安い商品はなく、コントローラーが無いことが写真見てわかるようなものは無かった。
怪しい物が多そうなebay見てみたら、mSATA(miniPCIe)をSATAに変換するようなのが200円程度から売ってた。
で、答え書いてあるサイトが見つからなかったが、
PCIeとかmSATAにはSATAの信号が流れているが、ボードにコントローラーがないわけだからマザーのコントローラーが消費される。
つまり、マザーの端子を全使用していると使えないものだと判断した。


あと、AM1IはminiPCIe搭載だけど、mSATAとminiPCIeの違いがよくわからなかったのだが、
端子は同じで、ハーフサイズとフルサイズが存在し、AM1Iはハーフサイズらしい。
で、mSATAと称しているものは端子用にSATAコントローラーが用意されているが、AM1IはminiPCIeと言っているからコントローラーはない、
ってことだと判断した。
せっかくminiPCIeがあるから有効活用したいし、SATA増設もPCIeを消費せずにminiPCIeでできれば良いが、
ebayで200円で売ってるようなコントローラー無しのは利用できないが、PCIe用と同じでコントローラー搭載のものなら使えると判断した。


PCIe用のSATA増設カードで、写真を見てコントローラー搭載とわかるものがebayでは800円程度からいっぱい売ってた。
そのくらいなら許容範囲かな・・・
と思うのだが、このくらいの値段でminiPCIeのもの売ってないかな・・・

Chromeの起動時ウインドウサイズ

ブラウザゲームをマクロプレイしてて、座標ズレが発生して気づいたが、Google Chromeは起動時に勝手にウインドウサイズが変わるぽい。
ブラウザはいつも最大化してるし、マクロで座標使うから1pxでもズレちゃ困るのだが、
通常のアプリはウインドウマネージャに従い前回最大化だったら最大化になるが、Chromeは最大化起動のように見えて実は違った。
最大化だとタイトルバーが消えるようで、タイトルバー分高さがズレてた。
糞仕様過ぎた。


調べたが、Chromeのウインドウ位置記憶を無効化してウインドウマネージャに従わせる方法は見つからず、仕方ないのでランチャーの起動オプションに --start-maximized をつけて最大化起動するようにした。
ランチャーから起動するとは限らないし、そもそも起動じゃなく再ログインの時の挙動が怪しいが、そもそも再ログイン時は何故かChromeのウインドウは消えちゃうぽい。
まあ、いいやこれで。

VirtualboxとFlashのハードウェアアクセラレーション

ハードの故障の修理過程でサブ機のOS消して、かんぱに☆ガールズのマクロプレイやってなかったが、
だいぶ落ち着いたんで、メイン機上に仮想のArch環境作ってまたやることにした。

のだが、やっぱ前のメイン機の方が性能上だったのか、VM上のゲームが遅い。
Virtualboxでフレームスキップとかできないのかなー。
とか考えて設定項目見たり調べたりしたけど、無さそう。
なんだが、
ゲーム画面右クリックしてFlashの設定画面出したら、「ハードウェアアクセラレーション」の項目があって初期状態でチェック入ってた。
試しにこれ外してみたんだが、カクカクではあるんだが速くなった。
Virtualbox上のFlashじゃハードウェアアクセラレーション無効にした方が良さそう。


ちなみに、普段ブラウザはFirefoxだが、
容量節約で、今までFirefoxとChromeのBeta版のテストに使ってたUbuntuを消して、新しく用意したArch仮想環境で行うことにするつもりなんだが、
Firefoxで標準のFlashだとバージョン古いし、FreshplayerpluginでChromiumの最新Flash使うのも挙動怪しい感じがするんで、
ChromeのBetaでかんぱに☆ガールズやってる。

セリアの100円マウスパッド

サンワサプライのブルーLEDマウス(MA-NANOH11)に変えて、
元々使ってたクッション付きのマウスパッドが全く反応しなくて、テーブルもウレタンで反応しないし、柄付きのマウスパッドを使っていたのだが、
場所によって反応しないようで苛つくことがあった。
前に使ってたロジクールM525に戻してみたんだが、サンワサプライの方がしっくりくる。

というわけで、セリアでマウスパッド買ってきた。
いつもUSB機器売り場チェックしていて、マウスパッドおいてるならその辺だろうと思ってたが見たことなかったのだが、下の方に複数種類あった。
うさぎ形状のと、柄付きが2種類、黒無柄が1,クッション付きが黒青2種、売ってた。
ブルーLEDのマウスがかなりマウスパッドを選ぶようなので、クッション青と黒無柄の2種を購入してきたのだが、
青クッションのマウスパッドで良い感じで反応した。
最初に試した青のほうで良い感じだったので黒の方は試してない。


あと、DVD-Rとかメディアが底付きそうなんだが、セリアで売ってるのね。
でも、2,3枚で100円って高くねえか?w
まあ、最近はDVD使わないでもUSBメモリで済むことが多いと思うんで、あまりストックしないで必要になった時に近所のセリアでってのもありかな。
だが、書き込み失敗が結構ありえるから2,3枚だと連続失敗が怖いな。

ここ数回、セリア行った時にライターオイル買おうと思ってるんだが、今日も売ってなかった・・・

フロントUSBのケーブル長が足りない

メインPCのストレージをサブ機に使ってたSSDに変えたついでに、
ストレージがなくてサブ機使えなくなるし、サブ機の方が世代が新しかったからマザーも交換しちゃったのだが、
Mini-ITXのマザーでフルサイズATX対応のケースで、フロントUSBのケーブル長が足りない・・・

という問題があったのだが、AINEXのケーブル高い・・・

しかも、内部の延長ケーブルで50cmは過剰だよね。

USBの内部ピンヘッダは普通の2.54mmピッチだが、2.54ピッチのオス-メス ケーブルがあればUSB専用じゃなくてもいいよね。
というわけでゴミあさって探したのだが、見つからなかった。

当面フロントUSBは諦めようかとも思ったが、
普通の1ピンの2.54ピッチ オス-メス ケーブルで探したら、40個送料込み216円で売ってた。

これ買った。
1ピンならUSB以外の延長にも使えるし、こういうの買ったほうが良いね。


あと、マザーはMSI AM1Iなのだが、SATAが2個しか無いのが困る。

買った時も安かったが、マジ安いねこのマザー。
SATAが2個しか無いのはCPUの仕様だからなのだが、

ASRockのAM1マザーはSATAx2。AM1マザーはみんな安いね。

たぶんMiniPCIeがあるからMSIにしたんだと思うが、ASRockにしておくんだった。
サブ機用途ならSATAx2でも良かったんだが、メイン機で使うとなると光学ドライブとバックアップストレージ(リムーバブル)で3個はないと困る。
購入時はMiniPCIeにSSD挿せればとも思ってたが、今のSSDはM.2とかいう規格なんだよね。
MiniPCIe用のSATAボードも探したが、マザーよりも高いような論外な価格。

AMD KabiniならマザーとCPUで1万円程度で買えるが、メインPC用でも十分な性能。
ゲームもそこそこなら動けると思う。


あと、前のマザーはデジデジのデュアルディスプレイができなかったのだが、サブ機と交換したAM1マザーはデジデジアナのトリプルまで行ける。
というわけでトリプルにしてみようかと思ったんだが、画面サイズがでかくなりすぎて3つ目は使用不可だったw
デジデジのデュアルはできた。

サウンドカードの優先順位

256GBのSSDと1TBのHDDが壊れて臨時に320GBのHDD使ってたが、元々壊れて使わなくなったものだし音がしてやばそう。
というわけで、ちょっと容量きついが、サブ機に使ってた128GBのSSDをメイン機に使うことにした。

ついでにマザーもサブ機で使ってたMSI AM1Iの方が新しいからマザーも変えちゃおう。
ということにしたのだが、このマザー、サウンドがデフォルトでHDMIになっちゃうんだよね。

しかも、
$ cat /proc/asound/modules
 0 snd_hda_intel
 1 snd_hda_intel
サウンドカード名が同じ。
どうやって優先順位変えるの??

今までは~/.asoundrc で2番目のデバイスをデフォルトに変えて使ってたのだが、
大抵のアプリはそれで良いのだが、Javaアプリなんかはデフォルトのデバイスでなくて1番目のデバイスを使っちゃうようなので問題ある。

ということで調べたのだが、
/etc/modprobe.d/alsa-base.conf
options snd_hda_intel index=1
デバイス名が同じでも、これでいいみたい。
これ設定したらアナログ出力が1番目になってJavaアプリでも音が出た。

Linuxでロジクールの無線機器をペアリング

突然ロジクールの無線キーボード(K360)が反応しなくなった。
電池切れかな?と思ったのだが、充電済みのはずの電池に入れ替えても反応無し・・・

通信機差し替えたりしても反応無くて、別のレシーバーに変えて試してみようと考えたが、
今までは購入後にWindowsでペアリングしてたが、Linuxでペアリングしてみることにした。


ロジクールの無線機器用のユーティリティがLinuxにもあるぽいことは知ってたが、Arch Wikiによると、
pairing_tool
solaar
ltunify
の3つもあるらしい。
3つともAUR。

Wiki見た感じだと、
pairing_tool はわかりにくい感じ。
solaar はCUIコマンドもあるが、GUIツール。
ltunify はCUIコマンドでわかりやすい感じ。

滅多に使うもんじゃないし、GUI無しのほうが良いね。
というわけで、 ltunify を使ってみた。


# ltunify list
listでレシーバーに登録済みの機器一覧が表示される。
Arch Wikiだとプロンプトが$になってるが、sudoしないと権限ない言われた。

# ltunify unpair mouse
unpairで登録解除。
listで確認できるidxで指定もできるが、mouse,keyboard等の機器名でも解除できる。

# ltunify pair
pairでしばらくの間待受になるので、機器の電源をOFFにしてONするとペアリングされる。


使い方は簡単ですね。


キーボード反応無くなって試しに使った別のレシーバーでも最初ltunifyでペアリングできず、マウスをやってみたらできた。
で、キーボードの電池を他のに変えたらキーボードもペアリングできた。
キーボードのに入れた充電済みのはずだった電池2個を充電器に入れたら、点灯するはずのLEDが片方点滅した。
電池ぶっ壊れてたぽい。

64bit版のWindows 10をクリーンインストールした

32bitのWindows 7からアップグレードしたWindows 10だが、Windows 10では同じライセンスで64bitも選べるとのことなので64にしたかったので調べてみた。
どうも、一度Windows 10にアップグレードしたらMicrosoftにハード情報が登録されて、同じハードでクリーンインストールするとプロダクトキー無しで認証できるとか。

本当かよ・・・
って感じだが、無理だった時に復元できるように仮想HDDを複製しておいて試してみた。

今回は64bitのインストールでメディアからのブートだが、
元のWindowsが32bitで仮想マシンが作成してあるので、Virtualboxの[一般]設定から64bitに変えないとブートできない。

64bitに変えて仮想マシン起動直後にF12押してCDブートするとインストーラーが起動したが、日本語版のISOなのになんか英語出てきて[Yes][No]の選択項目が。
インストールは[No]の方を押すと始まる。

インストール中にプロダクトキーの入力画面が出るが、下の方に省略用のボタンがあったので省略した。
今回は2D・3Dアクセラレーション有効なままインストールしたが問題なく、すんなりインストールできた。

[設定]からプロダクトキーの変更画面にいって確認したが、認証済みだった。
本当にキー無しで認証されるらしい。
インストールの時に、消すWindowsからキー抜いてるのかな?

Windows10のアップグレードした

昨日Windows 10のアップグレード通知がきて、"VirtualBox Graphics Adapter "がダメと言われてアップグレードを断念したVirtualbox上のWindows 7だが、
実機の方もアップグレードを試みる可能性があるし、その場合は日を空けたほうが良いと思うんで、ISOからのアップグレードをやることにした。

ISOファイルは、「windows10 iso」でググッて出てきたMicrosoftのページからダウンロードした。
Windows 10は32bit版と64bit版の好きな方を選べるらしいのだが、32bitの7からのアップグレードだと64bitのISOは無理じゃないかと思うので両方ダウンした。
案の定、64bitのISOはエラーで実行できなかった。

Virtualboxの仮想光学ドライブにISOファイルを選択し、Windows上でドライブを自動実行するとsetup.exeが実行されてインストーラーが起動した。
アップグレード通知の時と同じで"VirtualBox Graphics Adapter "がダメと言われるのだが、[確認]を押したらそのままインストールが続行された。


エラーその1
初回再起動の際、"0xC1900101 - 0x20017"というエラーが表示されてインストールが中断した。
ハードウェア構成の問題のようなので"VirtualBox Graphics Adapter "が原因と推測した。
Enter押したらインストール終了して元のWindows7に戻った。
とりあえずググったら、「Virtualboxの3Dアクセラレーションを切れ」とかそんな感じの英語ページに遭遇。
ダメ元で、Virtualboxの設定で3Dと2Dのアクセラレーションを切ってみた。


エラーその2
上記のエラー1でアクセラレーションを切った後、また初回再起動でエラーとなった。
のだが、よく見ると前回とエラー内容が違う。今回は"0xc0000260"。プロセッサーの物理アドレス拡張機能がどうとか・・・
またエラー番号でググったら、「システム>プロセッサー>PAE/NXを有効化」とのこと。
チェック入ってなかったので入れた。


エラーその3
PAE/NXを有効化したらエラー2を突破出来てインストールが進んだ。
のだが、「Windowsをアップグレードしています   99%」で止まった・・・
動かないので強制終了してから起動したら、無限自動再起動に・・・
今回はエラー番号がないのでググっても同じ状況に対する解決法は見つからなかったが、「Windowsアップデートをしたら無限再起動に陥った。」とか出てきた。
インストールの最初に、「更新プログラムをダウンロードする(推薦)」みたいのがあったが、試しにこれを選択しないで更新をダウンロードせずにインストールしてみることにした。
無限再起動でWindows7へ戻らなかったので、インストール直後にバックアップしてあった仮想HDDでやり直した。
今度は99%で止まるようなこともなくインストールが完了した。





インストール後は画面サイズがVirtualboxのウインドウサイズにフィットしない状況だったが、
3D・2Dのアクセラレーションは有効に戻してGuest Additionsを再インストールしたらフィットするようになった。

あと、できれば64bitでインストールし直したい。