OpenIndianaから脱出してUbuntuに戻った話(その2:ソフトウェアの準備)
この記事はぴょこりんクラスタ:Re Advent Calendar 2016 - Adventarのために書いたものです。
サマリ
OSは何を入れたか
半年くらい前にマウスコンピュータで安めのノートPCを買って、Arch Linuxを放り込んで遊んでいたらすっかり慣れてしまったし*1、困ることも特段なかったのでArch Linuxでもよいかなと思ったけども、安定稼働という幻想が頭をよぎってUbuntu 16.04にした。基本的にはインストーラに従っていけばよいのは楽でいい。標準+OpenSSHサーバでインストールした。
どうせmdでソフトウェアRAIDにするし、今思えばArch Linuxにしてもよかったのではという感じだ。 CentOSもDebianはちょっと古めなのが気になるし、Fedoraは常に崩壊しているという偏見がある。GUIがいらなかったのでManjaroとMintは選外となった。
サーバの名前はmochiにした。
必需品のインストール
このあたりは淡々と進めればよい。
# 必需品。vimは入っていた % sudo apt install zsh tmux vim nmap sysstat git # dotfilesのcloneとインストール % git clone git@github.com:bisco/dotfiles.git % cd dotfiles % ./install.sh # 引越用にcifs-utils % sudo apt install cifs-utils # 最近はntpdを使わないらしい % sudo apt install chrony % sudo vim /etc/chrony/chrony.conf
chrony.confの変更抜粋。nictはsinet経由になるから遅延がちょっと大きい、だそうだ。
<20行目付近> #pool 2.debian.pool.ntp.org offline iburst server ntp1.jst.mfeed.ad.jp offline iburst server ntp2.jst.mfeed.ad.jp offline iburst server ntp3.jst.mfeed.ad.jp offline iburst <70行目付近> #allow foo.example.net #allow 10/8 #allow 0/0 (allow access by any IPv4 node) #allow ::/0 (allow access by any IPv6 node) allow 192.168.0.0/24
chrony.confを変更後、リブートしても起動するようにしておく。
% chronyc sources # 一応同期 % sudo systemctl restart chrony % sudo systemctl enable chrony
mdでソフトウェアRAID
ZFSほどではないが、mdでソフトウェアRAIDするもの十分簡単。
mdでデバイス作ったあとはinitramfsを更新しておかないと、次回/dev/md0にならなくて/dev/md127になってしまい、
fstabに不用意に書いてると泣くことになるので注意。
仮に忘れたとしても、/dev/md0じゃなくて/dev/md/<hostname>:0
みたいに名前でfstabへ書いておけばOK。
# まずはドライブをGPTでフォーマット。fdiskはMBRでフォーマットしてしまい、2TB以降を認識できなくなるので注意。 # sdaとsdbあわせて2回分やる % sudo parted /dev/sda (parted) mklabel gpt (parted) mkpart primary 1M 4001GB (parted) p # 念のため確認 (parted) q # mdでRAID1にする % sudo mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sd[ab]1 # 設定を保存する % sudo mdadm --detail --scan | sudo tee /etc/mdadm/mdadm.conf # ちゃんとinitramfsを更新する(僕は忘れてひどいめにあった) % sudo update-initramfs -u # かたそうなXFSにする % sudo mkfs.xfs /dev/md0 # マウントポイントを用意 % sudo mkdir /mnt/md0 # ユーザが直接さわれるように777にしておく % sudo chmod 777 /mnt/md0 # fstabに書き込む。 nofailにしておくと仮にこけてもブートしてくれる echo "/dev/md/mochi:0 /mnt/md0 xfs nofail 0 0" | sudo tee -a /etc/fstab
Chinachu + Mirakurun on Docker
最初は普通に入れようと思ったけど、nodejsのバージョンが複雑怪奇でつらかったのでDocker版を入れた。 Dockerもaptで入るものだと古くてダメだったという落とし穴があった。 Chinachu on Dockerのインストール方法は以下を見てね。 qiita.com
受信できるチャンネル番号がわからない、そんなときは脳筋棍棒ソリューションで何とかしよう。 recpt1コマンドをぶん回して、受信できたっぽいものを設定すればよいのだ。
% docker exec -it mirakurun /bin/bash bash-4.3# for i in {10..64} do echo "Channel $i" && recpt1 --b25 --strip --device /dev/pt3video2 $i 1 "/dev/null" && echo "" done
なお、自分の環境だと、Chinachu + Mirakurun on Dockerを使ってTVtestでテレビを見ようとすると
途中で接続が途切れてしまうんだけどなんでだろう・・・
Windowsから見てるとMirakurunからパケットが飛んでこなくなってるように見えるけど・・・
BonDriver_Mirakurunをちゃんとビルドしなきゃダメかな・・・
Sambaの設定
Windowsとしか共有しないので、Sambaを入れる。
unix password = sync
にすると勝手にユーザを同期してくれるかと思いきやそんなことはなく、手動でいれる必要があった。
% sudo apt install samba # 設定ファイルを更新する % sudo vim /etc/samba/smb.conf # Sambaにユーザを追加する % sudo smbpasswd -a <ユーザ名>
smb.conf(以下、一部抜粋)はこんな感じにした。インターネット各地に設定項目がちらばってたので結構苦労した。 面倒でもmanを読むべきだった。
[global] # Character encoding unix charset = UTF-8 dos charset = CP932 # Windowsから\\mochiでアクセスできるように netbios name = mochi # bindするnetworkは固定し、さらに自宅内からのみアクセス可にする interfaces = 127.0.0.1 192.168.0.0/24 bind interfaces only = yes hosts allow = 192.168.0.0/24 127.0.0.1 # Sambaユーザのパスワード変更とLinuxユーザのパスワード変更を連動させる unix password sync = yes # 自分だけ入れる共有フォルダを作る [share] path = /mnt/md0/share writable = yes create mode = 0644 directory mode = 0775 valid users = bisco force group = bisco force user = bisco acl allow execute always = yes
まとめ
mochiは今もちゃんと動いています。いまだにChinachu + Mirakurun on Dockerでのリアルタイム視聴はできないけど、録画はできているっぽいのでよしとする。
なんかいつの間にか直って困惑しているがともかく直ったのでよしとしよう!!
*1:常に最新に近いものが使えるのはとてもよかった