ThinkPad e440 * Manjaro Linux KDE, Fcitx Mozc Neologd UT, Padre

ThinkPad e440にManjaro Linux KDE 15.12 (x86_64)をインストール

これまでPCLinuxOSで運用してきたThinkPad e440だが、どうしても不安定(KWinがフリーズして再起動することが多い、バッテリーモニターが機能しない、など)なのが気になってManjaro Linuxにしてみた。

私のThinkPad e440はCeleron 2950Mに4GB RAMの貧弱仕様、ピクセル数もWXGAにすぎない。RAMに関しては8GBに拡張してある。これによってようやくまともに動くようになった(その前は遅くて仕方がなかった)。ハードディスクも拡張済みだ。

このRAM拡張のおかげで、以前はまともに動かなかったKDE Plasma Workspaceが動くのだが、それでもかなり重い。それでもKDEが好きなのと、特にシステムを細かく設定し、好みのアプリケーションを使い分けてデータを扱いやすいように保存する…という意図がなければ、ひと揃い便利なものがあるKDEは非常に重宝するのだ。

最新のLXQtもあったが、今回もKDE。これでうちは4台がManjaroに。とうとう残るManjaroじゃないやつはIPFire, linuxbeanだけになってしまった。

e440はWindows 7が入っており(Windows 10にしたものの、結局Sonarがちゃんと動かないので戻してある)、デュアルブートなのがここまでのハードルになっている。

Manjaro Linux KDE 15.12時点ではインストーラは、Thusについては手動パーティショニングについてLUKSは使えるが、LVMは扱えない。また、GrubはMBRのみ。CalamareはLVM及びPBRをサポートするが、LUKSをサポートしない。

今回はLUKS優先でThusでインストールした。レガシーブートなので(Windows 7モデルを選択するとレガシーブートで、Windows 8モデルを選択するとUEFIで来る)問題が起きにくいというのはある。

Wi-Fiの問題

e440に入っているWi-FiモジュールはLinuxでうまく駆動しない。ある程度通信すると止まるのだ。

Manjaroだとほぼ直ちに止まる。PCLinuxOSだと通信量が少なければなかなか見立たない。openSUSEではストールしたのを見たことがない。

これがPCLinuxOSを選択する大きな理由だったのだが、結局止まるのであれば、あまり意味がなかった。

これを受けて、Wi-Fiはドングルを使うと割り切ってManjaroを導入することにした。

とはいえもしかしたらなんらかの改善方法があるのかもしれない。

以前にはブログでもその問題をみかけることができるが、バージョンが限定されている。
Ubuntuでfixが入っただけかもしれないので、特定のカーネルの問題ではないのかもしれない。

また、Dedoimedoでもこの問題について言及されている。こちらでは/etc/modprobe.d/rtl8723be.confとして

options rtl8723be fwlps=N ips=N

を記載することを勧めている。

これを受けて試してみたのが、まずkernel headerをインストールした上で、AURからrtl8723bs-dkms-gitをインストール。

そしてdkmsを有効にする

# systemctl enable dkms

そしてインストール

# dkms install rtl8723bs/2

これで再起動したところ、3.7GBのファイルのダウンロードに成功した。

ただし、時々不安定になるので、切断・再接続をする必要がある時もあるかもしれない。それでも十分実用になる。yaourt

Plasma5

sniproxy不要になったPlasma5だが、いくつかのアプリケーション(Mono関連, Cloud.ru, Skype, Wineなど)が結局systrayに入らない。
必要であればtrayerを併用するべき。

非常にアピアランスは良いし(Plasma 4のリッチUIも良いと思うのだけれども、フラットUIになったのに見やすく、美しくなった。元々タブレットやネットブックに向けて作られたフラットUIは、あまり画面解像度もないラップトップには適しているということだろう。非常に見やすい。

全体に優れている。完璧ではないけれども優れている。
ManjaroをXFceからインストールするとKMailが動かなかったり、Akonadiでエラーが出たりするが、そうした問題はさすがに改善されている。

Kate, Kwriteは、通常のXFceから入れるものとはちょっと違う。違うのだが、PCLinuxOSではRubyの特異クラスをちゃんと理解したように思うのだが、こちらはダメだ。残念。

Manjaro Setting Managerが含まれないため困惑するが、こちらはkcmに統合されている。

バッテリーモニターは適切に動作する。パワーマネジメントもPlasma 5.3で無事追加されている。

パワーマネジメントでバッテリー駆動時の設定を行うためにはバッテリーを取り付けておかなくてはならない。

e440においてのみ発生する現象だが、Super+Shift+→が動作しない。
quicktileにその設定が使えないのが少々痛い。この問題はThinkPad e440上のKDEで常に発生する。

動作速度は良いが起動・終了は非常に遅い。安定性はPCLinuxOSのKDE4よりも安定している。
アイコンの通知表示が優れている。ただし、systrayに関しては自然に階層化されるCinnamonのほうが優れている。

クイックランチ的に置かれているアイコンはパネル上のウィジットである。Firefoxが邪魔なのだが、これを削除するにはパネル編集モードから削除する。

ウィジットはまだ少なめだ。リサイズ方法は、余白部分を左ボタンダウンを続けてメニューを表示する、というあまり直感的ではない方式。タッチインターフェイスを意識したのか。しかしそれは右クリック相当じゃないのか。

Kde Applications

KDEには膨大な、様々な、そして有用なアプリケーションがあることがおおきなアドバンテージだが、Manjaro KDEはその収録量が少ない。Konquerorすら入っていない。

(とはいえ、近年はKonquerorは入れない傾向があるため、それほどめずらしくはないのだけれど)

kde-applicationsグループにまとめられているので、

$ yaourt -S kde-applications

でしっかりと入る。

テーマ

ManjaroにはMaiaテーマが採用されている。

緑を用いたなかなかに美しいテーマで、Manjaro色が良いと思うかどうかという問題はあるが、ひと揃いあって統一感は良い。breezeよりも良いので、統一感をもたせにくい他のテーマを採用するのが難しい。

Maiaアイコンテーマの再起動、シャットダウンなどのアイコンは非常に好きで、アイコン自体は個人的にはcompassのほうが好きなのだが、結局Maiaのまま。壁紙もMaiaなのでフルMaia。

ちょっとこれはなんとかしたい。ウィンドウデコ
レーションはMaiaではなくbreezeなのだが、これは変更した。また、壁紙も変更した。

Plymouthはなぜか他と同じmanjaro-extra-elegantではなく、manjaro-elegantが採用されている。私はmanjaro-redefined-bsplashを採用した。

アクティビティ

使い方に困る人の多いアクティビティで、私もご多分に漏れずではあるが、e440においては追加したアクティビティがひとつある。

これはプレゼンテーション用で、パワーマネジメントをACと同じにしてある。
なお、ACではDim screenやスクリーンのオフなどは切ってあり、ブライトネス設定がない。

Fcitx Mozc Neologd UT

つい先日libkkcの話をしたばかりではあるが、やはり入力効率はMozcのほうが良い。しかし、MozcではATOKに及ばないのは当然としても、WindowsのGoogle日本語入力との差が激しい。

PCLinuxOSにおいてTomcatさんの仕事で非常に大きなアドバンテージとなっていたNeologd UTがAURにも来ていたる

これは、UTUMIさんがUTに代えた新たな仕事として作ったもののようだ。UTの35万語から85万語に大幅増となっている(半数は地名とのことだが)ので入力効率が大幅に向上しているのだ。
確かに出てくる文字が違う。UTだとAndroidのGoogle日本語入力と非常に似た変換候補という印象なのだが、こちらは違う。

ニコニコ大百科が使えなくなるので一部変換できなくなる言葉も出てくるだろう。もしかしたらニコ厨諸兄にあってはMozc UTでnicodicを有効にしたほうがいいのかもしない。

あとは、mecab-ipadic-NEologdがどれだけのものに今後なっていくか次第か。

とりあえず使ってみた感触では従来のMozc-UTよりも良いと思う。
ただし、サイズ自体もかなり大きいので、ディスク消費量が問題になる場合には不適。また非常にメモリ消費に対して厳しい場合も同様。

その意味ではuim-anthyが使えるPCLinuxOSは有利。Whizもいいのかもしれない。
とにかくパワフルで効率的な変換をしたい人にとっては、Linuxでは現状の最有力。Wimeを使うという手段もあるのかもしれないが。

Padre

AURのPadreがPerl::Devel::DumpvcarとPerl::POD::Abstractがビルドにこけるためインストールできない。prove -lrprove -rにビルドを通すため変更したとあるが、prove -lrに戻さないと通らないので注意。

さらに、perl-wx-scintillaに関しては、OUT OF DATEが立っていてビルドできない。
そのため、perl-padreのPKGBUILDを編集してperl-wx-scintilla-devに変更することはできるが、いずれにせよこれが原因でビルドできない。

なお、cpanでインストールしようとするとシステムがフリーズする。要注意。

ThinkPad e440 * Linuxの長い戦い

何を導入する?

e440の構成は以前はWindows 7とPCLinuxOSのデュアルブートだった。
その前はSabayon Linuxで、結構安定していたのだが、使いにくい部分があり、PCLinuxOSとなった。

これが潰されたのは、Windows 7の書き戻しのためだ。

その後、時間がなかったため放置され、今回再編成に伴ってWindows 7はそのまま修正することが決まったため、Linuxを導入することになった。

ところが、これが辛い道のりだった。

望ましい構成は

  • sda1 Windows booy
  • sda2 Windows System
  • sda3 /boot
  • sda4 Extended
  • sda5 truecrypt
  • sda6 LUKS LVM PV

というものなのだが、このためには

  1. /bootにPBRとしてGrubを導入できる
  2. 手動パーティショニングができる
  3. LUKS上にLVM PVが作成できる

という条件を満たす必要がある。
ところが、個々には一般的なことであるにもかかわらず、要件を満たすインストーラがない

  • Manjaro Thus : PBRインストール、LVMに対応しない。crypt swapでエラーとなる
  • Manjaro Calamares : LUKSに対応しない
  • Manjaro CLI Installer : UUIDで設定するが見つけられずエラーになる
  • Linux Mint : LVMに対応しない。複数のcryptデバイスを設定できない
  • openSUSE : PBRへのGrubインストールを無視する、エラー多数でうまく動作しない

困り果ててしまった。
途中、諦めてPCLinuxに戻ったりもしたのだが、AddLocaleが正常に動作せず、ほかを試し、結局3日ほどかかった。

この要件、自動インストールであればちゃんと動作するのだが、手動だとなかなか動かない。
インストーラの品質は難しいところなのか。

ちなみに、Manjaro 0.8.13においては、WiFiが接続はできるが、通信しているとストールしてしまうという問題も発生した。

セットアップ

結局うまくいったのはPCLinuxOSだった。(Reiser4が使えなかったりはした)
AddLocale周りの設定は、手順としては(@PCLOS 2014.12 KDE)

  1. インストール
  2. 初期設定
  3. アップデートとアップグレード
  4. 再起動
  5. Localization ManagerからのAddLocale
  6. リポジトリをJAISTに変更し、Tomcatさんのリポジトリを追加する。パッケージリストはリロードしておく。
  7. アップグレードしておく
  8. gsetime(入力メソッドの選択)でIMEにuimを選択する。uimは私の好みなのでscimやfcitxにしても構わない。i-busを使用する場合はTomcatさんのリポジトリの追加を忘れない

なお、解像度がどうしてもXGAになってしまうため、PCLinuxOS Control Centerで設定しておく。KDEの設定で設定しても再起動時には戻ってしまう。

uim

uimを選択したのは、元より日本人が日本語入力のために制作したもの(SCIMやfcitxは日本語のために作られたわけではない)であり、非常に軽量でセキュアだ。シンプルだが、「日本語を入力する」という観点から言えば最高だと思っている。

残念ながら開発が停滞し、国際的にも支持されていないことから消えそうになっている。
日本でもMozcがuimが使えない(そもそも、人気の高いUbuntuやFedoraが国際的なものでSCIM, i-bus, fcitxなどを採用する)といったことで使われなくなってしまっている。

SCIMやi-busと比べ、安定していて高機能なfcitxにさほど不満はないが、やはり私はuimが好きだ。

PCLinuxOSのIMEは、MozcにせよAnthyにせよ、入力効率は非常に悪い。
しかし、Tomcatさんのリポジトリを追加することで、入力効率に優れたかな漢字変換を使用することができるようになる。

野良版のuim関連のパッケージを一通り入れても、UIM appletは起動しない。
だが、uim-toolbar-gtk及びuim-toolbar-gtk3は存在するため、これを自動起動に追加すれば動作するようになる。

uimはWeb変換サービスに対応している。
Ubuntuにもuim-google-cgiapi-jp, uim-baidu-olime-jp, uim-social-ime, uim-ajax-ime, uim-yahoo-jpのパッケージが用意されている。
野良版uimはこれらも既にセットアップされた状態で提供される。

なお、uimだとkkcは利用できない。
kkc愛好家(いるのか?)の方はfcitxを使用すること。

野良版uimだと、公式のfcitx-mozcで生じるかな入力において「ー」が「ろ」になる問題、fcitx-anthyで逆に「ろ」が「ー」になる問題は解決されている。

sudoは

sudoはi586版だとspecialにあるが、x86_64版は普通にある。

サスペンド/ハイバネーション

e440だとサスペンド(スリープ)/ハイバネーションできない。ずっとファンが回っていてハードディスクの音がしているので、復帰できないのではなく、サスペンドに入れないのか。

Window decorationsをいじるとまずい

KDEのBTSにも記載があるけれど、ウィンドウの装飾を変更するとKDEが起動しなくなる。

~/.kde4/share/config/auroraercをトバすだけでは解決しないため、かなり厄介な問題になる。要注意。

Manjaro 0.8.13.1 LXQt を LVM + LUKS + GPT + UEFIインストール

3回失敗したので、メモを兼ねて。

情報は

の2箇所にあるため、これを組み合わせる必要がある。 また、情報の欠如もあるので補足する。

まずはターミナルを起動

$ su -
  manjaro #Password
# gdisk /dev/sda

/dev/sdaがインストール対象ディスクであるとする。 以下オペレーションは

  • o #新しいGPTレベルを作成
  • Y #確認
  • n #新規パーティション (BIOS GRUBのためのもの。なくてもいい?)
  • (enter) #次のパーティション
  • (enter) #フリー部分の先頭
  • +1M # 1MiBのパーティション
  • n #新規パーティション (ESP)
  • (enter) #次のパーティション
  • (enter) #フリー部分の先頭
  • +256M # 256MiBのパーティション
  • n #新規パーティション (/boot)
  • (enter) #次のパーティション
  • (enter) #フリー部分の先頭
  • +512M # 512MiBのパーティション
  • n #新規パーティション (LVM)
  • (enter) #次のパーティション
  • (enter) #フリー部分の先頭
  • (enter) # entire disk
  • w #書き込み
  • Y #確認

LVM on LUKSの構築

# cryptsetup luksFormat -y --cipher aes-xts-plain --key-size 512 /dev/sda4
# cryptsetup luksOpen /dev/sda4 sda4_crypt
# pvcreate --dataalignment 1024k /dev/mapper/sda4_crypt
# vgcreate cryptVG /dev/mapper/sda4_crypt
# lvcreate -n root -L 20G cryptVG
# lvcreate -n swap -L 16G cryptVG
# lvcreate -n home -l 100%FREE cryptVG

インストーラはSwapを求めるし、Swap用のボリュームも確保した。

で、

# setup
    1. Set date and time
    1. Partition Hard Drives
    • swap – /dev/mapper/cryptVG-swap
    • / – /dev/mapper/cryptVG-root
    • /home – /dev/mapper/cryptVG-home
    • /boot – /dev/sda3 (EXT3)
    • /boot/efi – /dev/sda2 (VFAT)
    1. Install System
    1. Configure System – mkinitcpio.confについてHOOK行にencrypt lbm2sata filesystemよりも先に記述する。そのままこの画面に留まる
  • タブを開く
  • /install/etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/sda4:cryptVG"と記述する
  • installerの4から離れる
    1. Install bootloader
    • UEFI_x86_64
    • GRUB_UEFI_x86_64
    • フォーマット
    • efivarsが読まれてないよと言われる場合も無視して良い
    • コピーするかと聞かれた場合はYES
    1. Quit
  • 再起動

この作業を繰り返したことで、だいたいLUKSパーティションの起動やUEFIについて仕組みが理解できてよかった。

ただし、実際に動くかどうかを確認できていない。 なぜならば、ハードウェア結局UEFIをサポートしていなかったからだ。どうりで失敗するわけだ。

「update-grubがコケる」問題、ついに解決か

ブログでは4月14日のアーティクルでレポートし、 先日のアーティクルで再インストールという解決方法に至ったことを紹介した。

実際には2月には問題は発生しており、実に4ヶ月以上に渡って、Grubのトラブルということでいえば7ヶ月に渡って悩まされてきた。

この問題はManjaro Forumに、LinuxQuestionに、そしてGoogle+でと訊いていくことになったが、誰ひとりとして解決策を提示することはできなかった。 状況変化に合わせてManjaro Forumで再質問し、再インストールという解決策をとったものの、 結局アップデート時に問題は再発、絶望的な気分を味わった。

だが、そこで気づいたことがあったので、試してみることにした。

  • 再インストール
  • update-grub -> 成功
  • LVM snapshot作成
  • update system -> 失敗
  • LVM snapshotのマージ
  • update-grub -> 成功
  • LVM snapshot作成
  • update-grub -> 失敗
  • LVM snapshot削除
  • update-grub -> 成功
  • update system -> 成功

system upgradeでの失敗によるシステム損傷に備え、巻き戻しを可能にしてきたLVMスナップショット。 実際にこの巻き戻しによってとても救われてきた。 それによってここまで環境を崩壊させず「ダメでした」で済んでいた。

だが、それが原因だったというのか。 LVM snapshotが原因でupdate grubが失敗するなんていうことがありうるのか。 全く関係ないように見えるのに。

とりあえず、完全に解決したのか分からないが、解決したように見える。

これは難題だった…

壊れたシステムの修復のためのManjaro 0.8.13インストール

update-grubできない問題は根が深く、様々なところで訊いてはみたものの、結局答えが出ない。

Manjaro 0.8.13について

Manjaro Linuxは0.9.0リリースを控えていたが、新インストーラのCalamaresのバグがなかなか解消できず、結局0.8.12でCalamaresを採用したものの、インストーラをThusに戻した0.8.13をリリースするに至った。

Manjaro Linuxの日本語を一手に引き受け、Manjaro JPも開発するrago1975さんによれば、0.9.0のThusインストーラバージョン的なものだとという。

実際にそのように感じる。というのは、XFceはGTK3を採用する4.12、KDEはPlasma5なので、デスクトップが別物になっている。 XFce版だとDMも完全に別物となっており(もしかしたらMDMから差し替えられたのかもしれないが)、雰囲気はがらっと変わった。

XFceは0.8.12でも4.12の開発版である4.11を採用しており、現行のManjaroテーマも既に採用されていたため、0.8.12からの目新しさは特にない。 とはいえ、それまでの0.8.11からすれば劇的に変わり、垢抜けないデザインが特徴だったXFceもぐっとスタイリッシュになった。0.8.12と比べてもやはり部分的に見た目も変更されている。

アップデートでは見た目に関する部分は変わらないため、「見た目が変わった」というのは、入れ替える動機にもなるかとは思うが(Plasma4がPlasma5に置き換えられるのは当面先だろうから、入れ替えはかなり大変だと思う)、今回はThusの改良に非常に力が入れられていた。

まず、Thusインストーラの起動はすごく速くなった。これまでは、忘れた頃に起動する勢いだったが、すぐに起動するようになった。

Thusは手動パーティショニングをしてもLUKSの利用ができるようになったはずだが、それについては今回試していない。

LUKSパスフレーズについては、「特殊な文字を使うな」という注意書きが増えた。「LUKSパスフレーズに記号を含めると復号化できなくなる」という問題に対応したのか。

またブートローダーはGRUB2とGummibootを選択できるようになった。しかし、Gummibootを選択するとブートローダーはインストールされない。 また、Gummibootを選択した場合、ブートできない可能性があるのでウェブサイトを見るかと聞かれる。

Thusはかなり改善されたことを感じられる。

また、0.8.11まではUEFIでインストールしても第1パーティションにGRUB_BOOTを切っていたが、これをやめて3パーティション構成になった(ESP, BOOT, LVM)。Gummibootにすると、2パーティションになる。

Gummibootにきちんと対応してくれると嬉しかったのだが…

なお、Manjaro 0.8.11をそのままにしてインストールすると、GRUB2でも起動しなかった。 事前にGPTを作成しておくことで無事に起動できた。

ただし、UEFIブートメニューに謎の無効な空欄エントリがあるということは変わらない。

導入しようにも…

しかし、Alternative HDD (500GB)に入れても、そこで構築してSSDに移す、というのはかなり大変な作業になる。SSDのほうが小さいからだ。

かといって、環境をイチから作るのに、現行の環境を潰してしまうと、だいぶ長く仕事ができなくなってしまう可能性がある。

散々悩んだ挙句、結局はSSDをもう1台追加することにした。 ケーブルも併せてだいたい12000円の出費。なかなか痛い。 だが、仕事を見通しが立たないまま止めるわけにもいかないし、かといって更新できない状態でも放置できないので、やむなしか。

ケーブルはAmazonで、SSDはNTT-Xで購入。NTT-Xは仕事でも使えるようなので、これからかなりお世話になることになるだろう。

ケーブルは当日、SSDは翌日に到着した。

インストール作業

インストール

まずは単純に、SSDを組み込んで元のSSDとAlternative HDDを外し、予めGPTを作成した上でThusインストーラでインストールする。

UEFIでLVM, LUKS, /home分割はon, GRUB2を選択、なお起動時にはnomodesetnokmsbootオプションが必要。

ただし、インストール後はnomodeset及びnokmsbootは必要なかった。

基本セッティング

まずはworldencmountの必要なファイルをtarで展開する。これでbtrfsボリュームのマウントが可能になる。

そしてzshのインストール。 なお、zsh-configについてはかなり癖がある設定の上に、手元の.zshrcで設定できなくなるので私は好まない。

これでマウントできるようになったら、btrfsをroでマウントし、最低限のファイルをコピーする。主要な設定ファイルは

cp ~/share/manjaro-home-transition/*(#q@) .

で以降できる。データ本体は~/shareにあるため、データの以降は必要ない。

日本語フォントはあるが、日本語入力ができない状態でスタートするため、とりあえず

yaourt -S fcitx-mozc-ut

インストール前にPKGBUILDをいじってニコと英語dicを有効にしてインストール。 ただし、googlecode.comのIPv6問題があるため、その前に

yaourt -S dnsutils

してdigを使えるようにし、

dig japanese-usage-dictionary.googlecode.com

して/etc/hostsにIPv4で決め打ちする。

私のプログラムは多くがRubyを使うため、Rubyも設定しておく必要がある。 これは次の方法で行う。元々

pacman -Q > pacman-q

としてあり、ここから

grep -F ruby pacman-q | cut -d " " -f 1 > rubypkg

として抽出。このうちインストール済みのものは必要ないので、

pacman -Q | cut -d " " -f 1 > pacman-qq

と現状のものを取得し

cat pacman-qq pacman-qq rubypkg | sort | uniq -u > target-ruby

とする。あとは

yaourt -S $(cat target-ruby)

でOKだ。

同様の方法でTTFファイルもインストール。

また、EncFSをコアに入れているので、EncFSをインストール。

yaourt -S encfs

また、nemoはテンプレートディレクトリにシンボリックリンクを許容するが、Thunarはしないので、シンボリックリンクをやめて、コピーに

rm template
cp -R share/template .

さらに、エスケープしたfstabをベースにfstabを修正する。 その前にVIもVimもなくて混乱するため(例えばvipwはあるのに、vipwはできない)、インストールしておく。

yaourt -S gvim vi

とりあえずエディタはmousepadが使える。とりあえずはmousepadで修正しリブート。

日本語周り

fcitx-mozc-utだけ入れたが、それさえ入っていなかった。 そして、日本語周りはManjaro JPベースではないため、それなりに複雑だ。

まず、fcitx-mozc-utがベースになるので、それをインストール。

yaourt -S fcitx-mozc-ut

各ツールキットに対して入力するためのパッケージと、設定のためのパッケージも導入

yaourt -S fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fcitxconftool

これだけでは入力できないため、~/.xprofileに追記

export GTK_IM_MODULE=fcitx
export GTK2_IM_MODULE=fcitx
export GTK3_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export DefaultIMModule=fcitx
export PATH=/home/aki/bin:$PATH

$PATHは別件だが、ついでに書いておいた。XMODIFIERSXMODIFERSと書いており、LINEやSkypeに対して日本語入力できないという問題が発生して若干ハマった。

なお、さらに後ほど突如としてGTKアプリケーションに対してfcitxが有効にならず、

gtk-query-immodules-2.0 --update-cache 
gtk-query-immodules-3.0 --update-cache 

しても直らず、結局両パッケージをアンインストールした上で再インストールしたら直った、などということもあった。

そして再起動。

パッケージインストール part1

先にいくつか使われるのがわかっている~/.config以下のファイルをコピーしておく。 .config以下はそのままシンボリックリンクに変換できないからだ。

cp ~/share/manjaro-home-transition/.config/usr-dir* .config/
cp -R ~/share/manjaro-home-transition/.config/opera-developer .config/
cp -R ~/share/manjaro-home-transition/.config/tasque .config/
cp -R ~/share/manjaro-home-transition/.config/fontconfig .config/

そして次のパッケージをインストールしていく。

  • ctags
  • leafpad
  • medit
  • geany, geany-plugins
  • smplayer, smplayer-themes, smplayer-skins
  • opera-developer
  • linux405
  • infinality*
  • wine
  • plasma
  • kde-applications
  • kopete

Wine * LINEで文字が非常に汚い、という問題があったが、いつの間にか直った。

KDE5関連はplasmaパッケージで、kde-applicationと合わせるとかなりの部分がインストールされる。

kopeteのファイルは~/.kde4以下にあるので、これをコピーする。

cp -R ~/share/manjaro-home-transition/.kde4/share/apps/koepte ~/.kde4/share/apps/
cp  ~/share/manjaro-home-transition/.kde4/share/config/kopeterc ~/.kde4/share/config

KDE5

KDE5は、KDE4よりもさらにスタイリッシュにはなったが、スマホっぽいふらっとUIになり、洗練されたがいかにも重量級な「すごい演出」は損なわれた。

また、非常に多くの機能が未実装だ。

マルチディスプレイの対応についてはkscreenパッケージで対応できるが、細かく設定ができない。 Catalystで設定することはできるが、永続しない。

また、systrayが未実装(!)。libappindicatorとsni-qtを使えばいけるような話なのだが、実際はいくつかのアプリケーションがこれでもsystrayに入らない。

相変わらずKDEで設定が効かない部分があるので、

  • kde-gtk-config
  • kcm-gtk

を導入、さらにqtconfig-qt4を使って設定する。

悪くはないけれど、KDE4から乗り換えるには早いか。 アニメーションはKDE5のほうがパワーアップしているが、KDE4よりも良いかと言われると悩むところ。 少なくとも、設定の問題でKDE4のほうが現状は良いと思う。

KDEとXFce

そして、KDEで設定するとXFceのUIが壊れたりするのでたちが悪い。 この設定はかなり難しいが、基本的には「設定マネージャー→外観」でテーマ設定してからgtk-theme-configで調整すれば良い。

ちょっとややこしいが、gtk-theme-configはextraに"gtk-theme-preferences"という名前でパッケージがあり、さらにAURに"gtk-theme-config"というパッケージもある。 恐らくは公式入りしたが、AURのパッケージ作者がメンテナになっているわけではないのだろう。

より細かく設定するならばxfce-theme-managerがあれば良いが、場合によってはより迷宮入りする。KDEといったり来たりすることになるだろう。

なお、一度XFceが起動不能になり、~/.config/xfce4を吹き飛ばして作りなおすはめになった。この場合、skelからコピーするのが近道。

パッケージインストールpart2

  • cinnamon
  • xsane
  • xfce4-theme-manager
  • fetchmail
  • spamassassin
  • razor
  • virtualbox*
  • tasque
  • skype, skype-call-recorder
  • openssh, sshfs
  • lv
  • w3m
  • nss-mdns
  • amarok
  • audacious, audacious-plugins
  • libcue
  • audacity
  • inkscape-gtk3-bzr

Inkscapeは猛烈に長い。

Zeroconfの設定は、これに加え/etc/nsswitch.confにmdns-minimalを書くこと。avahi-daemonは標準で起動。

Pandoc

相変わらずhaskell-pandocパッケージが入らないので

yaourt -S ghc cabal happy alex

してから

export PATH=$HOME/.cabal/bin
cabal update
cabal install pandoc

PDF出力用に…

yaourt -S texlive-core texlive-langcjk

うまくいった。

TODO

今わかっているのは、Spamassassinのsa_learnで学習したデータを持ち込んでいないこと。

あと、SOXもまだインストールしていない。 それ以外は恐らくは必要になったら足す形で、ゴミパッケージをなるべく増やさないようにするだろう。結局使えなかったものをためこんでしまったからだ。

また、英数キーを押すと問答無用でCapsLockになる、というトラブルも出ている。

hp ProLiant MicroServerとCentOS 7とZFSonLinuxの話

ProLiant MicroServerにHDD組み込み

先週秋葉原で買ったHDDが、初期不良対象期間が土曜日までだったので、金曜日にProLiant MicroServerにHDDの組み込みを行った。

実際に開けたり調べた限りで分かるのは次のことだ。

  • HDD搭載個数は4個。ホットプラグではない
  • eSATA端子を装備。
  • 5インチベイ用はSATAでケーブルは付属せず。ただし、ここはIDEとして動作し、低速

とりあえず開けてみる。これが非常によくできていて、扉は鍵で開ける。工具は不要、付属の鍵を使うのだ。ちなみに、上部の5インチベイ部分については、扉を開けた上で後方のボルトヘッドを手で回し(ダイアル状になっていて、工具は完全に不要)スライドする。ボルトは外れるようにはなっていない。

扉は開くが、横倒しにしていると外れることがある。外れると横倒しのままではなかなか正しくはまらないので注意。正しく置いた時に上下とも下側に突起があり、穴に突起がはまるようになっている。なかなか考えられた構造だ。簡易でコストが安く、扱いやすく、壊れにくい。

ハードディスクはホルダーを介して止まっている。リリースボタンを押してレバーを解除し、レバーを引く。レバーが押しこみ防止になっているもので、若干この動作が恐い感触があるが、精度はしっかりしていてブレる心配はない。封印された4台が備えられ、左に500GBのハードディスクが収まる。このハードディスクは裏面がカバーされたサーバー向けのタイプ。具体的にはWD5003ABYX。7200rpmのエンタープライズ、イエローだ。

今回は4TBx1,3TBx3に換装する。ホルダーについては特殊なネジで止められているが、扉の裏側にホルダー用のネジと工具がある。ちょっと探してしまったが、上手いものだと思う。紛失の心配もなく、コンパクトで、面倒もない。また、ホルダーのネジは予備もある。5インチベイ用のネジもここにある。こちらは六角。

順次固定していく。非常に簡単な作業だ。若干ネジまわしが疲れるくらいか。特にケース側はしっかり入っているのと、ネジを落とさないようにしなくてはいけないのが疲れる。数も多いし。

固定したらこれらを閉めて各種インターフェイスを接続、USB光学ドライブを接続しSystemRescueCDで起動。for i in /dev/sd[a-d]; do smartctl --all "$i"; done | lessとして問題がないことを確認した。

ProLiant MicroServerについて

15000円ほどの安価な、いわゆる安鯖、廉価サーバーだ。非常に安価でありながら現代的な性能を持つコンピュータであり、特にまともなコンピュータを持つもたない人にとってはとりあえず購入しておいてもいいというような代物といっていい。

ただし、普通のデスクトップコンピュータ、今の感覚で言うと普通ではないが、とは差異があることを理解しておかなくてはならない。つまり:

  • サスペンドはできない。ハードウェア的にサポートされていない
  • グラフィックスは非力であり、出力はVGA(D-Sub15)である
  • 基本的に枯れたハードウェアを採用。また、CPUは低速で消費電力が低いものを使用
  • OSなし
  • このモデルについては光学ドライブもない
  • ハードウェアがサーバー向けであるため、Windowsではサポートされない可能性がある

だが、サーバーだからこそのメリットもある

  • 24時間稼働に対応
  • ECCメモリーを使用
  • 低消費電力
  • 高信頼性

だが、このProLiant MicroServer Turion II NEO N5 F1F35A0-AAAEに関して言えば、PCI-E x16をロープロファイルながらサポートするため、普通にデスクトップとして使用できる。電源が200Wなのでハイパワータイプはとてもではないが使えないが、ローエンドモデルの接続は可能だ。ただし、ディスクを最大5台積める仕様なので、それだけでいっぱいいっぱいではあるだろう。

とはいえ、別に高性能を目指すようなものではないし、VGAで十分だと私は思う。CPUの性能も高くないし、デスクトップとしてバリバリ使うものではないだろう。だが、ちょっとした用途には十分事足りる。

サーバーとして見ると、この小さな筐体にHDDを4台搭載した上にeSATAディスクも搭載可能、というのは非常に大きい。ただし、eSATAの使いどころはかなり難しい。台数が多いケースは高いし、内蔵に使うにしても引き込めない。予備インターフェイスと考えたほうが良さそうだ。

しかし単純に考えて、筐体自体はHDD6台がCapableであるというのはすごい。しかも、小型の筐体だけに中に手を突っ込めるようにはなっていないが、上部パネルと同じく手回しボルトをゆるめることでMB全体を引き出すことができる、と非常に考えられた設計だ。

さらにECCメモリを搭載するということもあるが、それ以外を見ても非常に安定している。自作機とは比べるべくもないが、厳しく検証を重ねて安定したものと比べても非常に安定している。

さらにBIOS画面の待ち時間はやや長く、しかも入力のためのステップを複数用意する。もしブートデバイスがみつからなくても、そこでブータブルメディアを挿入すると自動的に認識して起動してくれる。つまり、とりあえず起動してからディスクを挿入することが可能。さらに、起動や終了のタイミングでのトレイオープンも可能。デスクトップだと起動時に起動される前にトレイオープンができないため、メディアの挿入/排除が結構大変だ。しかも、ProLiantならゆっくりメディアを入れても大丈夫。

いくつかの問題も発生しているが、ハード自体は極めて安定しており、信頼性も高い。

その上に扉、トレイ、固定方法など非常に心配りのされたつくり。hpが好きになった。

CentOS7

一方、なかなか手ごわいのがCentOS 7だ。

Linuxはサーバー向け、という人がいるが、実際にLinuxのサーバー向けディストリビューションというのは多くない。どちらかといえばEnterprise Server向けだ。

一般的な選択肢は、まず最大シェアのRHEL/CentOS/Scientific Linux/Oracle Linux/Whitebox Enterprise Linux。その対抗馬はSLES、あるいは無償のUbuntu Server、サーバーユースにも耐えるとされるDebian/GNU Linux、あとは枯れた仕様・原始的なシステムのSlackware Linuxくらいのものだ。

この中でフリーというと、RHELクローンか、Ubuntu Serverか…と選択肢は非常に少ない。別にサーバーユースにはできるが、サーバー向けにはなっていないため、長期の安定運用には不安が残るし、実績の問題もある。

CentOSがダメだとは全く思っていないのだが、やはりFirewalldとNetwork Managerという新しいシステムの導入が厳しい。その設定について覚えなくてはならないからだ。

それになんだか動作がおかしい。設定したLUKSロングパスフレーズが、有効に働かないのだ。調べてみると

ディスク選択時に「データを暗号化」+LVMでPVを暗号化
Dracut内で復号できない。他システムでならば復号可能
ディスク選択時に「データを暗号化」+パーティションを暗号化
正しいはずのLUKSパスフレーズを受け付けない
ディスク選択時に暗号化を選択せず、パーティションを暗号化
正常に動作する

openSUSEでもLUKSが突然パスフレーズを受け付けなくなることがあり、正直「LUKSっていまいち」と感じている。もしくはcryptsetupがいまいちなのかもしれない。今回もなんども再起動し、SystemRescueCDと入れ替え、インストールし直し、と繰り返すこととなった。

かなり疲れてしまった。また、インストーラがかなり扱いにくく、自由にパーティションが切れない。予めパーティションを切っておき、ディスクを選択してから、その他を選択して進めるのがよさそうだ。ちなみに、GPT用パーティションを切っていないと警告される。openSUSEのインストーラはそこが不完全だったので嬉しいところ。

まずはdm-cryptの直接暗号化を使ったスーパーディスクが使えるかを試してみる。

$ <kbd>dd if=/dev/urandom of=keyfile bs=512 count=1</kbd>
$ <kbd>sudo cryptsetup –hash=sha512 –cipher=twofish-xts-plain –offset=0 –key-file=/home/aki/keyfile –key-size=512 open –type=plain /dev/sdb enc</kbd>
$ <kbd>sudo mkfs.ext4 /dev/mapper/enc</kbd>
$ <kbd>sudo mount /dev/mapper/enc /mnt</kbd>
$ <kbd>su -c ‘echo Hello, world &gt; /mnt/hello'</kbd>
$ <kbd>less /mnt/hello</kbd>

問題なし。次にZFS環境のセットアップに入る。


zfsonlinux.org/epel.html
を参考にするが、既にバージョンが進み、ファイル名は2015-02-06時点でepel-release-7-5.noarch.rpmとなっていた。

また、

Qiita
ではインストールしただけではダメというようにあるが、実際はインストールしただけで大丈夫だった。

以下はZFSの作成作業。

# <kbd>zfsmount.zsh</kbd> #各デバイスをループで暗号化。zfs_*という名前。オープンしていたものは事前にclose
# <kbd>zpool create ReasonZpool /dev/mapper/zfs_*</kbd> #Zpoolを作成
# #ここでプールをテスト。問題なし
# <kbd>zfs create ReasonZpool/world</kbd> #worldファイルシステムを作成。マウントポイントは<tt class="puredoc_pathname">/ReasonZpool/world</tt>
# <kbd>zfs get all ReasonZpool/world</kbd> #プロパティの確認
# <kbd>zfs set compress=gzip-9 ReasonZpool/world</kbd> #Gzip最高レベルでの圧縮。低速。
# <kbd>zfs set primarycache=metadata ReasonZpool/world</kbd> #キャッシュはメタデータのみ。メモリ消費量を削減。
# <kbd>zfs set acltype=posixacl ReasonZpool/world</kbd> #POSIX ACLを有効に
# <kbd>zfs set relatime=on ReasonZpool/world</kbd> #Relatime(atimeの記録を遅延させる)
# <kbd>#zfs set dedup=on ReasonZpool/world</kbd> #重複排除機能をON。メモリを大ぐらいするらしい。全域に使えるだけのメモリはない。1TBで32GBのメモリを必要とし、操作できないほどの状態になるとのことで今回は諦める。
# <kbd>zfs set setuid=off ReasonZpool/world</kbd> #nosuid+nodev

dedupの難しさについてはこんな記述がある。

しかし,この機能,ディスクは節約されるが,メモリをたくさん使うのだ.なぜかというと,メモリ上に DeDuplicationTable (DDT) と呼ばれるテーブルを準備することによって,重複を見つけているのである. 計算手順は省略するが,1TBを利用している場合に最大で約32GBのメモリを必要とし.メモリから溢れた分はディスク上のキャッシュに退避され,検索パフォーマンスが劇的に低下する.

著者が試したときにはあまりのメモリ不足のために,データセットの削除ができない程の状態となった.(1週間程度経っても完了せず,あきらめてプールごと破壊することにした)

恐らくはおとなしくHDDを増やしていくほうが現状マシだ。

さらに、usersグループを規格に沿って500に変更し、ユーザーのグループをusersに変更する。

あとはお約束。

  • ストレージを使う前にzfsmount.zshを実行する
  • ReasonZpool/worldを使う

Windows TrueCrypt * Linux LUKS

先に述べたように、警察は証拠捏造の上、データを全消去していたため、自衛手段としては甚だ不足ではあるものの、一応オフラインアタックに耐えるラップトップの暗号化を施すことにした。なお、デスクトップはUEFI+GPT+Windows7 Prefessionalなので、有料ソフトを使わないとできない。

構成は次のようになっていた

  1. Windows 7 Windows Reserved
  2. MS Data(NTFS, Windows C:)
  3. openSUSE /boot(Ext3)
  4. Extended
  5. openSUSE /(btrfs)
  6. openSUSE swap

ブートローダーはMBRにインストールされたGrub2だ。

Windowsの暗号化はTrueCryptを、Linuxの暗号化はLUKSを使う。なお、Linux*LUKSは/bootを暗号化できないことを理解しておく必要がある。

TrueCryptはWindows System全域の暗号化が可能でデュアルブートにも対応する。ただし、MBRにbootmgrが導入されていることを前提とするため、現在のシステムでは対応できない。どのみちLinuxはLUKSに移行するため消去されることを踏まえ、今回はデータを退避した上でopenSUSEには消えてもらう。

だが、まずbootmgrを復元するというところで苦戦した。まず、systemrescueCDのsys-msで復元を試みたが、相変わらずGrubが起動する。次にWinPE-tch DirectによるWindows PEでbootrecを試みたがコマンドがないと言われる。修復ディスクはファイルがないのでインストールディスクを入れろというがプリインストール版。結局デスクトップ用を使って作ってみたが、修復するOSのリストは空だった。調べた結果、OSを選択しないままコマンドプロンプトを起動し、次のようにすることでできた。

> diskpart
diskpart> list disk
diskpart> select disk 0
diskpart> list partition
diskpart> select partition 1
diskpart> active
diskpart> exit
> bootrec /fixboot
> bootrec /fixmbr
> bcdedit

これでbootmgrがWindowsを起動するようになった。

Linuxは安定してうまく動いているManjaroを使いたかったのだが、Mnajaroは手動インストールだとディスクの暗号化が設定できない。構成が簡単ではないので、ローリング・リリースが望ましいとして、Sabayon Linuxを選択。Sabayon Linuxは手動パーティショニングで暗号化オプションがあり、容易に設定可能だ。また、Grubは/dev/sda3にインストールする。この設定もわかりやすく、よくできたインストーラだった。細かい設定は難しいが。

この状態ではLinuxはブートされないが、気にせずTrueCryptに進む。Encrypt system drive/partitionから、ウィザードに従って進むのだが、英語だ。別に英語ができないわけではない私でも、システムの消滅をかけた作業になるため、かなり神経を使った。手順を撮っておくべきだったかもしれない。ただし、ウィザードに従って進めれば良い。20文字以上のパスワードを要求したり、wipeは4回以上を要求したりと、暗号化ソフトとしてはものすごく本気だ。

途中一度再起動する。この際、作ったばかりのレスキューディスクはejectしておく。また、ディスクのverifyはWindows image burnerのverifyとは別に行うので、その時はディスクを入れてnextする必要がある。メソッドはAESを使用した。最も速かったからだ。

TrueCryptは自動でLinuxパーティションを見つけ、ブートを設定する、と説明しているサイトがあるが、実際はTrue Crypt BootLoaderがbootmgrを呼び出す。そのため、bootmgrでLinuxをブートさせなくてはいけなかった。

まず、LiveLinuxで(systemrescueCDを使用した)ブートし、/bootのあるデバイスの512Bをリムーバブルディスク(普通はUSBメモリーだろう)にコピーする。

# mount /dev/sdb1 /mnt
# dd if=/dev/sda3 of=/mnt/linux.pbr count=1 bs=512

再起動してWindowsに。ディスクからpbrファイルをCドライブ直下に配置する。

あとは次のようにする。

> bcdedit /create /d "Ubuntu" /application bootsector
エントリ {GUID} は正常に作成されました。
> bcdedit /set {GUID} device partition=C:
操作は正常に終了しました。
> bcdedit /set {GUID} path \ubuntu.pbr
操作は正常に終了しました。
> bcdedit /displayorder {GUID} /addlast
操作は正常に終了しました。

一瞬でブートされてしまうので、コントロールパネル→システム→システム詳細→起動と回復から規定のシステムの選択とデフォルトブート時間の設定。

以上でうまくいった。

Sabayonは非常に美しく、優れたエクスペリエンスを持っている。Gentooベースだが、かなりがんばっているようだ。英語だが、rigoの選択肢が凝っていて、普通の二択よりもはっきりと判断できるのも良い。

なお、Linuxブート時はパスフレーズは2回入力することになる。Grubパスワードも設定していると3回だ。20文字以上を設定していると結構大変なので、それなりに覚悟はしておいてほしい。また、当然ながらパフォーマンスは低下する。DTM専用のデスクトップでは、多分厳しい。