TORIPIYO DIARY

recent event, IoT, programming, infrastructure topics

raspberry piでend Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000bというエラーメッセージが表示された時に対応したこと

raspberry pi 3を家で動かしていたら、いつの間にかハングして停止していました。いつもは電源プラグを外して差し込み直せば正常に起動するのですが、今回は電源プラグを差し込み直しても起動しません。。。
仕方がないので、キーボード・マウス・ディスプレイをraspberry piに繋いでコンソール接続すると下記のように起動時にエラーメッセージを吐き出していました。
f:id:ha107chan:20171111221026j:plain

一番下のエラーメッセージをみると、"end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b"と表示されています。
f:id:ha107chan:20171111221033j:plain

このメッセージをグーグルで調べてみると、どうやらSDカードが問題を起こしている可能性が高そうです。いくつかのサイトでは、新しくSDカードを購入して新しいOSイメージを入れてraspberry piに接続したら正常に動いたと書いてあります。
ただ、これまでOSに設定してきた内容を無にしたくない!と思い、さらに調べてみると、別OSでmicroSDをマウントしてfsckをかける方法を試している人がいます。
blog.hahasoha.net

自分もこの方法を試そうかなと思いながらも、さらに調べると、raspberry piにコンソール接続しているときに、キーボードとマウスを外して起動し直すと正常に起動したという話を見つけました。
そんなバカなと思いながらも、キーボードとマウスを外して起動し直すと無事に起動されましたw

もしかしたら、キーボードとマウスは関係なくて、たまたまうまく起動できる時もあるということなのかもしれませんが、fsckせずに動くようになったのでしばらくはこの方法で復旧をさせようと思います。

macOSをHighSierraにアップグレードする

特に今のSierraで困っているわけではないですが、新しいファイルシステムであるApple File System(APFS)を試してみたくて、プライベートのMacをHigh Sierraにアップデートしてみました。更新のお知らせが来ないので、App StoreからHigh Sierraを探してインストーラをダウンロードしました。

インストーラのサイズは4.8GBほどです。インストール時間は自分の2017年MacBook Pro 13inchではインストーラを起動してから1時間弱ほどでした。インストールの最中にプロンプトが表示されていつも色々と選択していたような気がするのですが、今回のHigh Sierraのアップデート中には特にそれはありませんでした。

アップデート中にお風呂に入って戻ってくるとなぜか画面が真っ暗になっていて、インストールに失敗したと思ったのですが、強制再起動をかけると何事もなくすんなり起動してHigh Sierraになっていました。今までのMacのOSアップデートの中で一番更新された感じがしないアップデートです。
homebrew, atom, docker for macなど普段僕が利用しているものも問題なく動きました。

mountコマンドなどを叩くと、apfsファイルシステムでマウントされているのがわかります。

 ~: mount | grep apfs
/dev/disk1s1 on / (apfs, local, journaled)


SierraとHighSierraでいくつかファイルシステムに関係ありそうなところのパフォーマンスを比較したので記載します。利用しているマシンは、MacBookPro 13inch 2017 cpu3.1GHz, memory16GBです。

duコマンドを使って/Usersディレクトリ内のサイズを調べる
  • なんか、HighSierraのほうが遅くなっていますね。

Sierra

~: time du -hs /Users
 85G	/Users
du -hs /Users  0.74s user 11.22s system 62% cpu 19.291 total

High Sierra

~: time du -hs /Users
 84G	/Users
du -hs /Users  0.93s user 20.31s system 56% cpu 37.771 total
ddコマンドを使って10GBのファイルを作成する
  • これも、HighSierraのほうが遅くなっています。。。。これでは、LowSierra?

Sierra

~: time dd if=/dev/zero of=testfile bs=1024 count=10240000
10240000+0 records in
10240000+0 records out
10485760000 bytes transferred in 29.404851 secs (356599665 bytes/sec)
dd if=/dev/zero of=testfile bs=1024 count=10240000  2.05s user 23.27s system 86% cpu 29.410 total

High Sierra

~/Downloads: time dd if=/dev/zero of=testfile bs=1024 count=10240000
10240000+0 records in
10240000+0 records out
10485760000 bytes transferred in 108.594898 secs (96558496 bytes/sec)
dd if=/dev/zero of=testfile bs=1024 count=10240000  2.19s user 101.00s system 95% cpu 1:48.61 total
Blackmagic Disk Speed Testを使ってディスクパフォーマンスを比較する
  • 数値を見ると、High Sierraのほうが、各ビデオフォーマットに対する読み込み・書き込みの速度は早くなっているようです。

Sierra
f:id:ha107chan:20171106205401p:plain

High Sierra
f:id:ha107chan:20171106205436p:plain


なぜduコマンドやddコマンドのパフォーマンスは低下したのに、Blackmagic Disk Speed Testの結果は良くなったのか、はっきりした理由は自分にはわかりません。。。
いずれにしよ、HighSierraにしても体感で感じられるぐらい使用心地が極端に悪くなったりはしませんでした。

macでファイルを削除してもディスクユーティリティにPurgeableと表示されてディスクの使用量が減らないときの対処法

vagrant仮想マシンをたくさん作成していたら、いつのまにかmacbook proのディスク使用量が90%を超えてきたので、不要なvagrantデータを60GBほど削除させました。しかし、df -hで使用量を調べても使用量が減っていません。disk utilityを開いてみてみるとPurgeableというものが表示されていて、df -hの結果は、Purgeableのデータサイズも入れた結果となっているようです。

f:id:ha107chan:20170923184434p:plain

少し調べると、Purgeableというのは、MacOS Sierraから導入された機能だそうで、パージ可能だと判断されるファイルは、"必要時に常にダウンロードが可能なもの"だそうです。
support.apple.com

このページを見ると、iCloud Drive, iCould, iTunesのデータなどがPurgeableに該当するそうですが、自分はどれも全然利用していません。。。
support.apple.com

何か別のものがPurgeableのデータとして認識されているのではないかと思い調べて見ると、time machineのローカルにあるsnapshotが、Purgeableのデータとして認識されているのではないかと言っているページにたどり着きました。この現象は、Appleのサポートに聞いても原因がなかなか特定できなかったようです。
forums.developer.apple.com

I simply opened Time Machine Preferences, clicked the Lock Icon to unlock and make changes. Then I unchecked the box next to Back Up Automatically under the TM Icon. Finally I restarted my Mac. When I turned my Mac back on to check the storage all the purgeable data was gone which freed up over 70 GB on my SSD. Afterwards I went back into the TM preferences and rechecked the Back Up Automatically box. After restarting my computer a second time I saw that the purgeable data was still gone.

time machineで直近のバックアップを取った後、上記記載の通りtime machineの設定ページで、"Back Up Automatically"のチェックボックスをまず外してmacを再起動させます。そして、再起動後のmacを見ると確かにPurgeableの領域は減っていました。(ゼロにはなっていないけど、だいぶ減ったのでしばらく様子を見たいと思います。もしかしたら本当にiCloud Drive, iCould, iTunesのデータかもしれない。。)

f:id:ha107chan:20170923190750p:plain

再起動後のmacで、再びtime machineの設定ページを開いて"Back Up Automatically"のチェックボックスにチェックを入れてまたmacを再起動してもPurgeableのデータサイズが再び戻っているということはありませんでした。以上、他の困っている人の参考に。

おすすめのテック系ポッドキャストをコメントを交えて紹介してみる

【追記】
なんだかいつもよりもアクセスが多いなと思ったら、白と水色のカーネーションの公式ツイッターアカウントでこのポストのことをツイートいただきました!ありがたし。

===========================================

僕はテック系のポッドキャストを、もうかれこれ3年以上聞き続けています。これからテック系ポッドキャストを聞きたい人の参考となるように、これまで聞いてきたテック系のポッドキャストでおすすめのもの(テック系で無いのもあるけれど)を、感想と一緒に紹介していこうと思います。
一応、頑張ってランキングもつけてみました。ランキングは、そのポッドキャストに新しいエピソードが追加されたときに自分のテンションがどれだけ上がるか、という独自基準で決められています。

===========================================

第7位 gunosy.fm

gunosiru.gunosy.co.jp
gunosyのエンジニアが配信しているポッドキャストgunosyで働いているエンジニアのことやサービスに使われている技術が話題の中心。司会のかとうさんが割と丁寧に進行を進めているので内容を把握しやすい。まだ配信回数が少ないけれど、応援しています。

第6位 migration.fm

migration.fm
セールスフォースの技術を中心にして、その周辺技術も交えて話されるポッドキャスト。ホストが他のポッドキャストと比べると謙虚な姿勢で好印象。あまり他のポッドキャストで扱われていない技術も話されているのが良い。

第5位 rebuild.fm

rebuild.fm
たぶん、一番有名なテック系ポッドキャスト。ゲストは豪華で様々なWeb系の最前線に立つエンジニアがゲストとして出演している。ただ、最近は宮川さんが忙しいのか更新頻度はちょっと減っている。話されるトピックも昔ほど特定技術の深い話は少なくなり、最近は、アニメ・ゲーム・映画・ガジェットの話を交えながらWeb系テクノロジーの話を紹介していくスタイルが相対的に増えているように感じる。

第4位 mozaic.fm

mozaic.fm
非常にシリアス。本気と書いてマジなポッドキャスト。最近、半年ほどの配信停止期間を挟んで再び走り出した。いまはWeb業界の話題を1ヶ月まとめて紹介するスタイルだけど、以前は1個の技術テーマを深く話す形式だったので、興味があるテーマをタイトルから見つけて聞くと理解が深まる。エンディングで流れる音楽の疾走感はテック系ポッドキャストNo.1。

第3位 engineer meeting podcast

engineer-meeting.tumblr.com
サイバーエージェントの中の人がやっているポッドキャスト。比較的他のポッドキャストよりもゲストの種類がバラエティにとんでおり、もっと評価されてもいいポッドキャストだと思うが、iTunesの順位はそれほど高くない。更新頻度は他のポッドキャストがあまり更新されなくなっているので相対的にかなり高い方だと思う。プログラミングを書くエンジニアだけではなくて、新卒で入社したプロデューサーやデザイナーなども登場して普段の業務内容を語っているのでWeb業界に興味のある就活中の大学生にもおすすめできる。話題の展開の速さはポッドキャストの中でも随一。

第2位 だんごゆっけの平和な話

dandy.fm
ゆっけさんとかまだんごさんで運営しているテック系ゆるゆるポッドキャスト。ゆっけさんのポテンシャルを最大限に引き出せるのはやっぱりかまだんごさん。残念ながら現在は配信が止まっている。登場するゲストのいじられっぷりは他のポッドキャストと比べても突き抜けている。あるエピソードではオープニングから30分ほど2人だけで話していて、30分経ってやっと思い出したようにそこにいるゲストを紹介したことがある。かまだんごさんがゲストに対して、何者ですか?と聞いていくスタイル。エンディングテーマの音楽は個人的には一番好き。是非、mozaic.fmのエンディングテーマと聴き比べると味わい深い。

第1位 wada.fm

www.wada.fm
わだえふえ〜む、わだえふえ〜む、わ、わ、わ、わ、わわわ、わだえふえええええむ〜!ボケてのエンジニア和田さんが始めたポッドキャスト。様々な効果音が飛び出し、聞いているものを惑わす。構成も非常に凝っており、その先の展開は読めない。wada.fmのアプリも心を鷲掴みにされたリスナーによって開発された。

わだえふえ〜む

わだえふえ〜む

  • Blowbend.jp
  • エンターテインメント
  • 無料
僕も大好きなポッドキャストで、最後のエピソードが配信された時はランニング中だったが興奮して飛び跳ねていた。もうずいぶん長いこと配信されていないけれど、いつかまた配信される日を楽しみにしています。

番外編

テック系ポッドキャスト以外も聞いているのでおすすめを1個紹介します。

白と水色のカーネーション
www.carnation.jp
音楽をテーマにしたポッドキャスト。主に海外のバンドを紹介している。しかし実態は、すずきさんの日常をミカさんがふむふむと聞いて過ごすポッドキャスト。映画・本・旅行など話されるテーマは幅広く、心を揺さぶられる。しかし、ミカさんの相槌はいつもどこか緩い感じでそのコントラストが面白い。配信回数は結構長く、昔はひできんさんという人とすずきさんで配信していたらしい。ミカさんのエピソードで母親と一緒にデパートに買い物にいったが内容があまりにアレなのでスズキさんにカットされた回がある。ちなみに、このブログを書くにあたって初めてサイトを見たけれどオシャレ。さすがデザイナー。


===========================================

こんな形になりました。(それにしても、xxxxxx.fmのタイトルが多い。rebuild.fmからの影響?)
今回はテック系ポッドキャストとして紹介していますが、現状のテック系ポッドキャストはほとんどがWeb系テックポッドキャストApple製品などのガジェットレビュー系ポッドキャストで占められています。素人にもわかりやすくハードウェアや自然科学を解説したポッドキャストがもっと増えてきて欲しいのですが、そういったところが専門の人たちにポッドキャストというメディアは認知されていないのか、あまり多くありません。
また、テック系(主にWeb系)のポッドキャスト自体も、2015-2016年をピークとして、継続して配信しているポッドキャストの数もしくは配信頻度は全体的には減っているように感じます。ポッドキャストは作業しながらでも気軽に聞けて、ニッチな話題も聞きたい人に届けられる優れたメディアなので今後も発展していけばいいなと思います。

個人的に聞いているものは今回紹介しているものが中心となりますが、これからも面白いポッドキャストを見つけていきたいと思います。

td-agent-bitでapacheのエラーログを検知してslackに通知させる

td-agent-bitでapacheのエラーログが出力されるとslackに通知が送られるように、raspberry piに設定をしました。(ずいぶんと不恰好な実装になってしまいましたが。)なぜ、td-agentではなくて、td-agent-bitなのかというとサーバ内でのメモリの消費をできる限り抑えたかったからです。td-agent-bitを利用した設定に関する日本語の記事はほとんど見かけない(td-agentはよく見るけど)ので、誰かの役に立つことを祈って残しておきます。

fluentdとfluent-bitの違いはこちらを参照
Fluentd & Fluent Bit |

td-agent-bitのインストールと設定

Raspberry Pi · Fluent Bit v0.11 Documentation

  • td-agent-bit.confでは、apacheのerror.logをみて、ログレベルがerror, crit, alert, emergの時はoutput.txtに出力させるように設定をしています。
  • FILTERのMatchは、basic regular expressionの正規表現がサポートされているようで、|を使ったOR表現は利用できなかった。 結構ハマったので注意。

POSIX BRE does not support any other features. Even alternation is not supported.
http://www.regular-expressions.info/posix.html

# make directory
mkdir -p /home/pi/script/apache_error_log_check

# server gpg key
wget -qO - http://packages.fluentbit.io/fluentbit.key | sudo apt-key add -

# update your sources lists
echo "deb http://packages.fluentbit.io/raspbian jessie main" >> /etc/apt/sources.list

# update repository database
apt-get update

# install td-agent-bit
apt-get install td-agent-bit

# td-agent configuration for apache log
vi /etc/td-agent-bit/td-agent-bit.conf
----------------------------------------------------------------------------------------------
[SERVICE]
    Flush        5
    Daemon       Off
    Log_Level    info
    Parsers_File parsers.conf

# error level
[INPUT]
    Name tail
    Path /var/log/apache2/error.log
    Tag  apache2.error_log
    Parser apache_error

[FILTER]
    Name grep
    Match apache2.error_log
    Regex level error

[OUTPUT]
    Name file
    Match apache2.error_log
    Path /home/pi/script/apache_error_log_check/output.txt

# crit level
[INPUT]
    Name tail
    Path /var/log/apache2/error.log
    Tag  apache2.crit_log
    Parser apache_error

[FILTER]
    Name grep
    Match apache2.crit_log
    Regex level crit

[OUTPUT]
    Name file
    Match apache2.crit_log
    Path /home/pi/script/apache_error_log_check/output.txt

# alert level
[INPUT]
    Name tail
    Path /var/log/apache2/error.log
    Tag  apache2.alert_log
    Parser apache_error

[FILTER]
    Name grep
    Match apache2.alert_log
    Regex level alert

[OUTPUT]
    Name file
    Match apache2.alert_log
    Path /home/pi/script/apache_error_log_check/output.txt

# emerg level
[INPUT]
    Name tail
    Path /var/log/apache2/error.log
    Tag  apache2.emerg_log
    Parser apache_error

[FILTER]
    Name grep
    Match apache2.emerg_log
    Regex level emerg

[OUTPUT]
    Name file
    Match apache2.emerg_log
    Path /home/pi/script/apache_error_log_check/output.txt

----------------------------------------------------------------------------------------------

# enable td-agent daemon
systemctl list-unit-files | grep td-agent
systemctl enable td-agent-bit
systemctl list-unit-files | grep td-agent

# start td-agent-bit
service td-agent-bit start
service td-agent-bit status

この設定だけでは、output.txtにerror, crit, alert, emergレベルのログが出力されるだけなのでslackに通知するにはまだ設定が足りません。本当は、td-agent-bitのHTTP outputを使いたくてtd-agent-bit.confに設定を試みたのですが、どうしてもPOSTメソッドで正しい形式でデータを送る設定をすることができなかったので、苦肉の策でoutput.txtのハッシュ値を調べて、変化があったらslackに通知するhellscriptを書きました。

HTTP · Fluent Bit v0.11 Documentation

gist.github.com


上記のファイルを、cronで1分ごとに実行するように設定すればapacheのエラーログを検知できるようになります。ただ、これなら無理してtd-agent-bitを使わなくてもshellscriptだけでもいけるような。。。

# set cron job
mkdir -pv /home/pi/script/apache_error_log_check
cd /home/pi/script/apache_error_log_check && pwd

# put apache-error-log-check.sh script
vi apache-error-log-check.sh
chmod 744 apache-error-log-check.sh

# edit crontab
crontab -e
----------------------------------------------------------------------------------------------
# apache error log detection
* * * * * sh /home/pi/script/apache_error_log_check/apache-error-log-check.sh
----------------------------------------------------------------------------------------------

# test slack alert notification
curl http://localhost/-------------------------------------------------------------------------------

夏の大菩薩峠

8月26日(土)に大菩薩峠に日帰り登山をしてきました。

f:id:ha107chan:20170827211058j:plain
コースタイムつき登山地図が無料! 登山地図&計画マネージャ「ヤマタイム」 - ヤマケイオンライン / 山と溪谷社


コースタイムはこんな感じです。

10:10 上日川峠
10:25 福ちゃん荘
11:40 雷岩
12:00 賽ノ河原
12:15 大菩薩峠到着 (お昼休憩 30分)
12:45 大菩薩峠出発
13:15 富士見山荘
13:35 上日川峠

朝6:30ごろに家を出て南武線と中央線で甲斐大和駅に向かい、9:20発の甲斐大和駅のバスに乗って上日川峠に到着。14:00発の上日川峠のバスに乗って甲斐大和駅に戻ります。駅から登山口までのバスは片道1000円でした。土曜日なので駅から登山口までのバスは補助席も全て利用するほど混んでいましたが、帰りのバスは分散して人が乗るので余裕がありました。

僕は大菩薩峠には大学生の頃に何度か、社会人になっても一度登っているので結構慣れています。今回は友達数人で行きましたが、誰も怪我をすることなく無事に帰ってこれました。
上日川峠から福ちゃん荘までは比較的緩やかな登りです。道もよく整備されているので迷うこともありません。福ちゃん荘から東に向かって大菩薩峠に行く人の方が多いのですが、僕たちは福ちゃん荘から北に向かい唐松尾根を登って、雷岩を経由して大菩薩峠に行くコースで歩きました。雷岩から大菩薩峠に向かう稜線コースは見晴らしがよく、天気がよければ富士山を見ながら稜線を歩けるからです。

唐松尾根を歩いているときは霞がかかっていて少し視界の悪い感じでしたが、
f:id:ha107chan:20170826105030j:plain

雷岩に着く頃には視界が良くなっていました。
f:id:ha107chan:20170826111817j:plain

雷岩から大菩薩峠に向かう稜線上は景色が良くてとても気持ちのいいコースになっています。今回は少し雲が出ていて、富士山を見ることが出来ませんでしたが、天空の道を歩いているように感じます。
f:id:ha107chan:20170826115539j:plain
f:id:ha107chan:20170826115256j:plain

賽ノ河原では石の積まれた山をあちこちで見ることが出来ます。天国のような景色が続いていたのですが、いつのまにか地獄に来たようです。
f:id:ha107chan:20170826115936j:plain

大菩薩峠の小屋の近くで30分ほど休憩をとりました。小屋を覗くと、なんと、小学生の兄弟が店番をしていました。夏休みに山小屋の手伝いをするなんて貴重な経験になりそうです。

小屋から下山を開始して少し歩くと、野生の鹿が数匹いました。
f:id:ha107chan:20170826125028j:plain

川の水もとても綺麗です。
f:id:ha107chan:20170826130823j:plain

大菩薩峠から富士見山荘までの登山道は唐松尾根よりも整備されており、スイスイ進みます。コースタイムでは40分とありましたが、30分ほどで富士見山荘まで到着できました。そこから、福ちゃん荘、上日川峠まで降りて、14:00のバスで甲斐大和駅に戻りました。甲斐大和駅からは各駅電車に乗って、勝沼ぶどう郷駅でおります。駅の前に止まっているタクシーを捕まえて、ぶどうの丘温泉天空の湯の温泉に入りました。
budounooka.com
この温泉の露天風呂からは甲府盆地が一望できてとても気持ちがいいです。下にある休憩所も窓から見える景色が素晴らしく、スペースが広いのでのんびりできます。勝沼がワイン有名で、併設されているショップで勝沼産ワインの購入もできます。

勝沼ぶどう郷駅で電車を待ちながら見える景色も最高です。
f:id:ha107chan:20170826165534j:plain

こんなところでリモートワークできたらいいなと思うのですが、山梨からリモートワークで開発している人もいるのでしょうか?

海だけが熱海ではない

夏休みに友達に会いに熱海に行ってきました。熱海というと、海というイメージがあるかもしれないですが、熱海は坂が多く、実は山がとても近くにあります。
f:id:ha107chan:20170820203747j:plain


僕が熱海に来る時はいつも海から玄岳まで走ることをしています。海抜0メートルの熱海のビーチから標高798メートルの玄岳までを山道を辿りながら一気に駆け上がって行くので結構辛いですが、頂上に到達した時の達成感は大きいです。今年は登っている時の日差しがそレほど強くなくて、最初に登った時と比べたらだいぶ楽に登ることが出来ました。ただ、玄岳の頂上に向かう最後の道は夏なので草が生い茂っていて、草を掻き分けながら進みました。今回は少しガスっていましたが、玄岳の頂上は開けているので、天気の良い時は熱海の街を一望することが出来ます。
f:id:ha107chan:20170819105607j:plain
熱海の街から山頂までは休憩を入れて今回は2時間ぐらいかかりました。前回登った時は65分で山頂までたどり着けたので、気象条件によってタイムはだいぶ変わります。山頂から熱海の街に帰るときには、途中の熱海自然卿で休憩するのがいいです。とてものどかな良い雰囲気なのですが少し交通が不便なので人はあまりいません。近くの自動販売機で飲み物を買って、ベンチに座ってのんびり休憩することが出来ます。去年の5月中旬に行った時はタンポポがあたり一面に咲いていてとてものどかな景色を堪能できました。

今回の熱海訪問では、もう少し普通の観光地らしい場所にも初めて行きました。来宮神社です。
f:id:ha107chan:20170819145949j:plain
半年ぐらい大阪に住んでいたことがあって、京都の神社もいくつか回ったのですが、来宮神社は今まで行ってきた神社の中では一番ホスピタリティに溢れた神社でした。手水舎にはどうやって手を水で清めればどうか説明が書いてあり、拝礼をどうやってすればいいのかの説明も丁寧に記載されているので、あれ二礼二拍手一礼だっけ?それとも一礼二拍手二礼だっけ?と焦ってスマホで調べる必要もありません。また樹齢2000年の大楠の前にはスマホを置く台が設置されていて、スマホのオートシャッターの機能を利用すれば一緒に来た人みんなで写真を取ることもできます。とても暑かったのですが、神社のカフェは雰囲気の良い木陰にあり、美味しい飲み物をいただくことができます。この日はいちごのスムージーを注文しましたがとても美味しかったです。
f:id:ha107chan:20170819151449j:plain

熱海は海と山があって、昭和の雰囲気を残しながらいまもなお開発が進められ発展を続けています。昔のバブルの頃と比べれば人は減っているのかもしれないですが、そのぶんゆっくり観光することができるのでオススメです。
f:id:ha107chan:20170819155833j:plain