ONKYO のネットブック C205A3 の SSD に FreeBSD をインストールしてみたのですが、そもそも Windows7 で SSD へのアクセスが異常に遅くなったので OS 入れなおしで FreeBSD に移行したわけで、要因であった SSD はやっぱりハード的にいかれていたみたいで、fsck を掛けると出るわ、出るわ、次から次へと入れたばっかりなのにダメファイルの連続。
なら、C205A3 の SSD を交換したいところですが、このモデルは SSD のユニットが基板にはっ付いていたはずで、普通に HDD を交換するようなわけにはいかない機種です。ぶっちゃけ SSD が死んだらゴミとしか・・・
しかし、USB 端子も SD カード端子も開いており、それぞれからブート可能な作りと BIOS になってます。
幸い手元に Raspberry Pi で遊ぶのに使おうかと手に入れた、TOSHIBA EXCERIA Type 1 のかなり高級な SD カード 16GB があるので、この上に FreeBSD をインストールしてしまえばよさそうです。実際やってみたらちゃんと動きました。
インストールの仕方
今回は既に怪しいながらも動く SSD 上の FreeBSD があるので、そちらの bsdinstall を使ってインストールしました。その場合、準備が必要です。ディストリビューションファイルをネットから持ってくる場合は、1~5 は要りません:
- FreeBSD のインストールに使った USB メモリーを挿してマウント
- 恐らく /dev/da0a1 あたり?それを /mnt にでも mount
- USB メモリーしか挿していなければ /dev/da* で存在し、マウントできるのはその中の *a1 のデバイス
- mkdir /usr/freebsd-dist
- cp /mnt/usr/freebsd-dist/* /usr/freebsd-dist/
- umount /mnt
- USB メモリーを抜いて一応 OS reboot
- SD カードを挿して SSD から OS 起動(多分 /dev/da0 が SD カードのデバイス)
- root でログイン(sudo でも良いですが、説明が長くなるから適宜読み替え)
- bsdinstall
- インストール先のデバイスを SD カードにして、パーティション切りの要領は「ONKYO C205A3…」と同じだが、ディスクのパーティション切りのところで swap のサイズは 0 にする(理由後記)
- SD カードにインストール後リブートで SD カードから立ち上げ
- root でログイン
- /etc/sysctl.conf に以下追加(R9.2 の場合であって他の版だと違うかも sysctl -a して項目は確認):
- vm.swap_enabled=0
- /etc/syslog.conf を編集して、できるだけ要らないログを吐かないようにしておく
もしくは、ログファイルを RAM ディスクでもマウントしてそこに追いやって、適宜(シャットダウン時とか定時とか) /var/log にコピーするように変更する
です。
9 も 13 も同じ理由でやっていますが、SSD もそうですけれど SD カードも NANDフラッシュメモリーなので、あんまり書き込みが頻繁だとあっさり寿命を迎えてしまいます。ですのでまあ、そんなに重くてメモリーを要するようなことをさせる気もないし、1GB も物理メモリーがあればスワップアウトするようなこともほとんど無いはず。ということで仮想メモリーについては実メモリーを使いつぶしたときはあきらめる方針で行きます。
ログはクライアント PC として使う分には、ほとんど要らないし、削るとほんと滅多に吐かなくなるので、私は面倒だしメモリーももったいないから syslog.conf の書き換えで済まします。
あと、この観点で SD カードが TOSHIBA EXCERIA Type 1 っていうのが効いていて、このカードは MLC ではなくて SLC だろうということで、書き込みに対する寿命については数倍長生きを期待できるので、そんなに神経質にならなくてもよいかと考えズボラをしてます。
SD カード上に作れば、Win32DiskImager などで、そのままイメージファイルを取っておけばバックアップにもなるので簡単かな。
何で USB メモリーからインストールしていないかというと、USB メモリーからインストールすると、その際のデバイス構成が
- USB メモリー:/dev/da0
- SD カード:/dev/da1
となってしまうので、インストール後に USB メモリーを引っこ抜いて SD カードでブートすると SD カードが /dev/da0 になって具合が悪かったからです。
これもまじめに設定変えるか、dev を固定にするかすれば叩き直せるでしょうけれど、面倒だったから、既存の SSD 上の FreeBSD でブートして bsdinstall するようにしました。
なぜ USB メモリー上にインストールして運用しないかというと、USB メモリーの方が飛び出ていてバキッ!っとやってしまいそうだったから。丁度よく SD カードもありましたしね。
同機種を新品を分解パーツ在庫あります。
このタイプのSSDは流用が難しいのでそのままです。