kazeno memo

メモとか

OpenBSDを暗号化したディスクへインストール

OpenBSD6.3インストール時にルートディスクをフル暗号化する。
今回はパスフレーズを指定するのではなく、キーディスクを作成します。
キーディスクを接続しておくと、OpenBSD起動時にパスフレーズを入力する必要が無くなります。

参考
https://www.openbsd.org/faq/faq14.html#softraidFDE
tildedennis: Full Disk Encryption with Key Disk on OpenBSD

基本的にはopenbsd.orgのfaqを見てください。

1. 起動後 Shell を選択

2. keydisk用のデバイスノードを追加する

cd /dev
sh ./MAKEDEV sd1

SCSIディスクではない場合は、MAKEDEV(8) - OpenBSD manual pagesを参照してください。
私の環境では「MAKEDEV sd1」でデバイスノードを作成できなかったので、「MAKEDEV all」(すべてのデバイスノードを作成)としました。

3. ディスクをMBRでフォーマット

fdisk -iy sd0 //メインディスク
fdisk -iy sd1 //キーディスク

3.1 ディスクをGPTでフォーマット

fdisk -iy -g -b 960 sd0
fdisk -iy -g -b 960 sd1

4. パーティションレイアウト

disklabel -E sd0
disklabel -E sd1

Label editor (enter '?' for help at any prompt)
>z //パーティション全削除(必要な場合)
>a a //パーティション作成
offset: [64] //空白
size: [39825135] * //"*"を入力
FS type: [4.2BSD] RAID //"RAID"を入力
> w //変更をディスクに書き込み
> q //終了
No label changes.

5. ディスクの暗号化

bioctl -c C -k sd1a -l sd0a softraid0
//sd1aはキーディスク sd0aはルートディスク

インストール時は "Which one is the root disk?" とインストール先を聞かれるので"sd2"を指定しましょう。




接続されているデバイスを表示する

sysctl hw.disknames

キーディスク バックアップとレストア

dd bs=8192 skip=1 if=/dev/rsd1a of=backup-keydisk.img //バックアップ
dd bs=8192 seek=1 if=backup-keydisk.img of=/dev/rsd1a //レストア

GRUB2をUSBへインストールしたい

Linuxをインストールした時の「/boot/grub/」にあるファイルを、任意のパーティションディレクトリへインストールしていきます。

準備

まず、USBのパーティションを作成しましょう。これは適当に行ってください。
ファイルシステムFAT32でもEXT4でも、容量は最低50MBあれば十分です。多分。
今回はISOファイルからのブートを行いたいので、4GB丸々EXT4でフォーマットしました。

また、Grub2のパッケージを導入していない場合は導入しておきましょう。

sudo apt install grub2

インストール

以下のコマンドを実行すればOK。デバイス名は適宜読み替えてください。

$ sudo mkdir -p /mnt/usb
$ sudo mount /dev/sda1 /mnt/usb
$ sudo grub-install --target=i386-pc --debug --boot-directory=/mnt/usb/boot /dev/sda
$ sudo grub-mkconfig -o /mnt/usb/boot/grub/grub.cfg

それぞれ

  • マウント用のディレクトリ作成
  • sda1をマウント
  • MBR用Grub2のファイルを/mnt/usb/bootへインストールし、/dev/sdaのMBRGrubの物へ書き換える
  • Grub2の設定ファイルを/mnt/usb/boot/grub/grub.cfgに作成。


終わり。

grub.cfgは直接編集しないほうがいいって事になっていますが、正しい書式で編集すれば特に問題は起こりません。多分。

どうでもいいけど、設定ファイルの編集方法は、GrubLegacy・Grub4Dosの方がやりやすい。

参照
GRUB - ArchWiki

GRUB2でOpenBSDのインストールイメージを起動する

https://www.openbsd.org/faq/faq4.html#Download
ここからインストールイメージ(installXX.iso)を入手。XXはバージョン。

適当なディレクトリへ置く。
今回は、/iso/installXX.isoへ置いた。

GRUBの編集はgrub-customizerを使っていく。
上部のメニュー 編集>New でエントリーエディターが開く。

Name: をBSDInstallなどとする。
タイプ: はその他を選択する。
Boot sequenceには以下を入力する。

	set root='(hd0,1)'
	search --no-floppy --fs-uuid --set=root UUID
	loopback loop /iso/installXX.iso
	kopenbsd (loop)/X.X/amd64/bsd.rd

※赤文字部分は各自の環境に合わせてください。UUIDはDisksとかGpartedとかで見れます。
※緑文字部分はインストールイメージへのフルパスです。
※青文字部分はバージョンによって異なる。isoの中身をみてbsd.rdのフルパスを入力。

終わったらOK、左上のSaveを押して編集完了。
grub-customizerは閉じてしまって再起動しましょう。

エントリにBSDInstallなどと表示されるので、それを選択するとOpenBSDのロードが始まります。


直接エントリを追加する場合
以下を追加すれば良いです。

menuentry "BSDInstall"{
	set root='(hd0,1)'
	search --no-floppy --fs-uuid --set=root UUID
	loopback loop /iso/bsd.iso
	kopenbsd (loop)/X.X/amd64/bsd.rd
}

SSD/HDDをSecureEraseする

SSDとHDDをフォーマットする必要があったのでSecureEraseを使ってみた。

SecureEraseとは

SSD/HDDに内蔵されている機能を使ってフォーマットする方法。
注意として途中で電源が落ちたりすると、最悪使えなくなります。
今回は何事もなく成功しました。

こちらのブログで詳しく解説されています。
一方、ふうえんさんちでは… Secure Eraseとは

LinuxでSecureErase

今回はUbuntuでhdparmコマンドを使いSecureEraseを行います。

# hdparm -I /dev/sdX

-Iオプションで指定したデバイスの状態を確認することができます。

                 supported
       not     enabled
       not     locked
       not     frozen
       not     expired: security count
                 supported: enhanced erase
       3min for SECURITY ERASE UNIT. 3min for ENHANCED SECURITY ERASE UNIT.

出力の終わりの方で上記のような情報が出てきます。
注目すべきなのは「supported」と「frozen」

supportedはSecureEraseに対応しているか(notと表示されていると対応していない)
frozenはデバイスがフローズン状態か(notと表示されていないとSecureEraseが行えない)

frozenが有効な場合、一旦サスペンドを行い復帰させることで無効になりました。

また、一番最後はSecureEraseが完了するまでの予想時間です。SSDの場合数分、HDDの場合3時間程と表示されます。

# hdparm --user-master u --security-set-pass パスワード /dev/sdX

上記のコマンドでデバイスにパスワードを設定します。
「パスワード」の部分を「pass」などと適当に設定してください。

このパスワードはhdparmでSecureEraseを行う為に必要なもので、SecureEraseが完了すると自動的に解除されるようです。

パスワードをセットしたらもう一度デバイスの状態を確認しましょう。
not enabled
と表示されていた部分が
enabled
となっていれば正常にパスワードが設定されており、SecureEraseの実行が可能です。

# hdparm --user-master u --security-erase パスワード /dev/sdX

このコマンドで実際にSecureEraseが実行されます。
また、timeコマンドを使えば終了時に経過時間が表示されます。

hdparmが終了したらもう一度デバイスの状態を確認しましょう。
not enabled
と表示されていたら完了です。

完了後Disksを見てみるとパーティションが残っていましたが、再起動することで正常に表示されました。


速度は変わったのか

SecureEraseを行うとSSDが早くなるといった記事が多かったので、自分でも検証してみました。

SecureErase前
SSD/HDD

SecureErase前(SSD/HDD)

SecureErase後
SSD/HDD

SecureErase後(SSD/HDD)

Read Write共に早くなっているようです。

PowerShellでインストール済みソフトの一覧を取得、CSV出力

PCを移行する際、インストール済みソフトウェアをメモしようと思ったのですが、やっぱり一つずつコピーするのは大変なので、PowerShellを使って一覧を取得してみる。

環境はWindows7 64bit

mtgpowershell.blogspot.jp

こちらのブログを参考に、レジストリから一覧を取得する。

$path = "\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$wow = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
$patharray = ("HKLM:" + $path),("HKCU:" + $path)
if(Test-Path $wow){$patharray += $wow}

上記では、レジストリのパスを設定している。

Get-ChildItem -Path $patharray |
    %{Get-ItemProperty $_.PsPath} |
    ?{$_.systemcomponent -ne 1 -and $_.parentkeyname -eq $null} |
    sort displayname |
    select DisplayName,Publisher,DisplayVersion

上記は、レジストリから一覧を取得している。
三行目では一覧からシステムコンポーネントを除外している。
五行目のselectでは、「プログラムと機能」の「名前」「発行元」「バージョン」がそれぞれ表示される。

Export-Csv -path .\List.csv -Encoding Default -NoTypeInformation

最後にExport-Csvを使い、リストをList.csvとして出力。
エンコードSJISにしたい場合はDefault、他にもUTF8等指定できます。


ということで、以下のコマンドをPowerShellに貼り付けるとCSVファイルが出力される。

$path = "\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$wow = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
$patharray = ("HKLM:" + $path),("HKCU:" + $path)
if(Test-Path $wow){$patharray += $wow}

Get-ChildItem -Path $patharray |
    %{Get-ItemProperty $_.PsPath} |
    ?{$_.systemcomponent -ne 1 -and $_.parentkeyname -eq $null} |
    sort displayname |
    select DisplayName,Publisher,DisplayVersion |
    Export-Csv -path .\List.csv -Encoding Default -NoTypeInformation

ちなみに、いくつか重複している項目があったので注意。

参考
PowerShell: ◆インストールされているソフトウエアの一覧を取得(64ビットOS対応版)
PowerShell: ◆インストールされているソフトウエアの一覧を取得
PowerShellのExport-CsvコマンドレットでCSVファイルを出力する | MSeeeeN
PowerShell/インストール済アプリケーション一覧を取得する - Windowsと暮らす

memo - ETS2で自動運転や学習ができるらしい

半年くらい前、「韓国の学生が立ち上げたベンチャー企業がETS2を使って自動運転AIの学習をしている」という記事を見た。

最近思い出して調べてみると、GithubにETS2用のプロジェクトがありました。
手軽に自動運転技術を楽しめるって良い時代ですね。

github.com

ちなみに、ゲームを使った自動運転AIの学習としては、GTA Vを使ったモノもあるみたい。

gigazine.net

両方のゲーム持っているので試してみよう。

Cookieを使いPiwik(Matomo)から自分のビジットを除外する

Piwik(Matomo)に自分自身のアクセスが表示されてしまって困っていた。
IP指定で除外する方法があるけど、固定IPではないのでいちいち登録し直すのは面倒臭い。
もっと簡単な方法が無いかと探していると、Cookieを使って除外する方法があるらしい。

Pwikの管理画面へアクセスし、右上のセッティングマークをクリック。
左側のメニューで「個人用 - 設定」の一番下にある「自分自身のビジットを除外( Cookie 使用 )」から有効に出来た。

ThinkPad T510でTurbo Boost

Turbo Boostというのは、CPUのクロックを自動で上げてくれる機能のこと。(たぶん)
私の使っているThinkPad T510でもTurbo Boost機能を使えたので設定方法を書いてく。

ちなみに、CPUはi7 620Mというやつ。
通常2.66 GHzなのがTurbo Boostを使うことによって最大で3.33 GHzまで出る。
BIOSのバージョンは1.52

ここからはBIOSの設定をすることになるので注意しましょう。意図しない動作となっても自己責任です。

  1. PCを起動し、ThinkPadのロゴが表示されているタイミングでF1を連打する。(左下の文字が変わるはず)
  2. BIOSの画面に入るのでConfig→Powerを選択
  3. Intel (R) SpeedStep technologyの右側[Disabled]を選択しEnterキーを押して[Enabled]にする。(すでにEnabledになっているならそのままで)
  4. 一つ下のScheme for ACを[Maximum Perfor]にする。(バッテリー駆動時にもTurbo Boostを有効にしたいならBatteryの方も[Maximum Perfor]にすればいいと思う)
  5. F10キーで保存&終了して、OSを起動

これでTurbo Boostが有効になっているはず。

CPUに負荷をかけながらCPU-Zで確認すると、
Core Speed : 3324.50Mhz
といい感じでスピードが出ていた。

Piwik(Matomo)のBasic認証とか

Piwikが入ってるディレクトリ全体にBasic認証をかけたら、トラッキングが上手くいかない。
と思ったら、Matomoユーザー会のページに書いてあった。

例えば、すべてのファイルへのアクセスを、あなたの IP のみに制限したり、piwik.php と piwik.js(この 2 ファイルのみトラッキングに必要です。) への外部アクセスのみ許可することができます。

セキュリティのための Matomo(Piwik) 設定方法 | Matomoユーザー会

なのでhtaccessに以下を追加

<Files ~ "^piwik\.(js|php)|robots\.txt$">
Allow from all
Satisfy any
</Files>

これで、Basic認証をかけていてもpiwik.js/piwik.php/robots.txtにアクセスすることが出来る様になる。