経緯
内蔵HDDにたかだか5MBのqgsファイルを保存するだけで30分くらいかかって泣きそうだったのでHDDを乗換えてから問題追求することにした.
運良くバックアップ用につないでいたLUKSで暗号化済の外付けHDDがまぁまぁ早かったので,とりあえずそっちにデータを写してマウントポイントを変え暫定対処しようとした.
前提
内蔵HDD /dev/sdb
外付けHDD /dev/sdc
外付けHDDはパーティションを切る前にHDD丸ごとLUKSで暗号化済
方法
こちらを参考にしたっつーか,ほぼそのまま → (Linux)LUKSでファイルシステムを暗号化してみた : 3流プログラマのメモ書き
-
mkfs
暗号化セットアップはできていたので,ファイルを消す(フォーマット)ところから.
試しに mkfs.ext4dev やってみたら,マウントする時に ext4dev なんてFSは知らネーヨ!って怒られたので,ext4 で.sudo cryptsetup luksOpen /dev/sdc csdc sudo mkfs.ext4 /dev/mapper/csdc sudo cryptsetup luksClose csdc
-
luksAddKey
キーファイルを作ってluksに登録.参考サイトに従い/boot
にキーを配置
ちなみに,無限にキーを登録できると思ってたけど上限数(0から7の8個だった)があるようだ.sudo dd if=/dev/urandom of=/boot/luks.key bs=1 count=1024 sudo cryptsetup luksAddKey /dev/sdc /boot/luks.key sudo cryptsetup luksDump /dev/sdc
マウントするデバイスをUUIDで指定したいので調べる.
LUKS header information for /dev/sdc Version: 1 Cipher name: aes Cipher mode: xts-plain64 Hash spec: sha1 Payload offset: 4096 MK bits: 256 (中略) UUID: b7223f8d-1a2c-4006-b289-35d62f88abf1 <--- これがUUID (略)
テストはこんな感じで
sudo cryptsetup luksOpen /dev/disk/by-uuid/b7223f8d-1a2c-4006-b289-35d62f88abf1 csdc --key-file /boot/luks.key sudo mount /dev/mapper/csdc /mnt
-
crypttabの設定
fstabと同じようにUUID指定でも書けた.csdc UUID=b7223f8d-1a2c-4006-b289-35d62f88abf1 /boot/luks.key luks,timeout=5
-
マウント設定
参考サイトの知見に従いrc.local
で設定する.mount /dev/mapper/csdc /mnt
原因調査
実は上の工程の途中でfstab
を覗いた時に目星はついていた.
何故つけたかは覚えてないけど,マウントオプションのsync
が内蔵HDDについていた.
なので,外してベンチマークを取ってみると当たりだった.
ベンチマークの取り方だけメモっておく.
sudo hdparm -tT /dev/sdb1
これは,外した後の値.うん,別に遅くないね.
/dev/sdb:
Timing cached reads: 34264 MB in 2.00 seconds = 17156.06 MB/sec
Timing buffered disk reads: 620 MB in 3.00 seconds = 206.35 MB/sec