Raspberry Piを利用していると、しばしばメンテナンスをする必要性が出てきます。せっかく作り上げた環境のまま使い続けていると、SDカードの不良や設定ミスで壊してしまいます。そういったメンテナンスがする為の一連の作業は覚えておく必要性があるでしょう。

今回それらの中でも最も重要性の高いものに絞ってまとめてみました。また、リモートコントロールに関してももうちょっと良い手段があるので、それも合わせて紹介します。まずはそのリモート・コントロールの良い手段から。

目次

リモートデスクトップ

サーバー構築編その1にて、tightvncserverをインストールしたわけなのですが、OSX標準機能で接続できるのはとても良いのですが、もうちょっと良い手段というか、こちらを自分は主に使ってるという手段を紹介します。使用するアプリケーションは、CoRDとRaspberry Pi側にはx11vnc、xrdpをインストールします。VNCよりも細かく設定できる点と、パフォーマンスはこちらのほうが良いからという理由です。

CoRDのインストールはとても簡単なので、省略します。アプリケーションフォルダに入れてオシマイです。

次に、xrdpとvinoをRaspberry Pi側にインストールします。x11vncを使用する理由は、同一のデスクトップ環境をリモートデスクトップから利用できるという点です。VNCなどでは通常独立した別のセッションが立ち上がるので、Raspberry Piの現在のデスクトップ画面が出てきません(vinoというサーバも同一デスクトップを表示してくれるのでこちらを利用しても良いでしょう)。以下のコマンドでインストールします。

これだけ。その後、passwordの設定が必要なので、以下のコマンドでパスワードを設定します。

このままでは自動起動してくれません。そこでこれを自動起動するようにファイルを作成します。

エディタが開いたら以下の文字列を書き込み、保存して再起動します。

これで、完了。あとは、CoRDで接続をします。いつもは、xrdpで接続する時には、sesman-XVncに接続するのですが、今回は、vnc-anyを選択。ipにはlocalhostを入力し、portは5900のままです。passwordには先ほど自分で設定したパスワードを設定します。これで、実際に表示されてるRaspberry Piのデスクトップが表示されるようになります。HDMIにつないでいない状態で使う場合、デフォルトのままだと小さい解像度になるので、以下のコマンドで設定を書き換えて再起動すれば大きな解像度になります。

config.txtは慎重に書き換えて下さい。起動にRaspberry Piの起動にまつわる様々なチューンを行える部分ですが、ヘタすると起動しなくなりますので。書き換える箇所は、以下の場所を#をつけてコメントアウトします。

screenshot_159

図:xrdpとx11vncでCoRDにて接続中の画面

大容量USBディスクにサーバ類のファイルを移動させる

SDカードもUSBメモリも大容量化の時代で、安く手に入るのは良いのですが、如何せんSDカードは耐久性で問題があります。SDはブートだけを担当させてその他全てをUSBディスクにするという方法もあるのですが、これはこれで、折角の大容量の大半をOS等で消費するのは勿体無い。ということで、現在自分が設定してるやり方は、データ類だけはUSBメモリに移動をさせて運用するというものです。特にサーバー系のファイルの置き場に関しては、USBディスクに退避させておいたほうが、バックアップも取りやすいので、オススメです。

MySQLのテーブルデータを移動させる

センサーデータの蓄積やホームサーバーとして使う時に各種オープンソースのウェブアプリケーションの土台として使われる為、気が付くと容量が増えている事が多いデータベースサーバですが、これをUSBメモリに移動させてしまいます。失敗すると、MySQLが起動しなくなりますので、ご注意下さい。必ず、設定ファイルのバックアップを取る様にしてください。また、USBメモリは、FAT32ですと、上手くいかないので、ext4などでフォーマットしておきましょう。

設定値の変更は、Webminからやると書式が壊れることがあるので、可能なかぎりnanoなどのテキストエディタ上で直接編集するようにしてください。

バックアップを取ったら、my.cnfの設定を書き換えます。サービスを止めてから作業を行います。

人によって違う箇所もあるかと思いますが、基本インストール直後であれば、以下の部分の書き換えだけで済みます。

mysqldセクションのdatadirがデフォルトでは、/var/lib/mysqlとなっています。これを自分のUSBメモリの所定のフォルダへのパスに書き換えます。今回は/mntフォルダ内の/usbフォルダにマウントさせているので、その直下にmysqlフォルダを作ってここに格納します。

データをコピーしたら、パーミッションの設定もしておきましょう。書き込みができない状態ではサーバーを起動することが出来ません。これで完了です。/var/lib/mysqlのフォルダは削除しても問題ありませんが、いざというときの為にそのままにしておいても問題ありません。

無事にOKと出れば問題なし。Failと出たら、パーミッションや設定したフォルダの場所などが間違ってる可能性があります。

Sambaのフォルダ共有先を移動させる

Sambaの場合、非常に簡単です。SWATやWebmin上から、新しく作成したフォルダを共有先として追加するだけです。ただし、新しく追加したフォルダはパーミッションの設定がなされていない、書き込み許可がないなどが普通なので、これらの設定をしてあげる必要性があります。また、Samba上でのアクセス権限と実ファイルのアクセス権限は別ですので、フォルダやファイルにアクセス権限をchmodで変更しておくことを忘れずに。

samba00 samba01

図:新たに/mnt/usbとしてファイル共有を加えた。

samba02

図:ゲストアクセス許可を与え書き込み許可を与えてる様子

Apacheのホームディレクトリを移動させる

ウェブサーバーのコンテンツ類も、USBメモリに移動させておくとバックアップがし易いですし、無駄にSDカードを消費するようなことを防ぐことに繋がります。こちらも、基本は簡単です。編集するファイルは以下の通りです。編集を行ったらapache2を再起動しましょう。これもwebmin上から編集が出来るので、そのほうが楽です。

このファイルの最初のほうにあるDocumentRootという項目。ここにパスが書いてあります。これを変更するわけです。/mnt/usb/apacheに自分は変更しています。ここに一つだけindex.htmlを入れておいて、書き換え再起動後、アドレスを叩いてindex.htmlが見えればOKです。

apache

図:apacheのルートディレクトリを変更中

ddコマンドでバックアップと復元

実は既に1回やらかしてしまったのですが、電源が入ってる状態のまま、USBケーブルを引っこ抜いてしまい、SDカードを破損してしまいました。結果、起動することができなくなり、SDカードをフォーマットし直して、バックアップより復旧させました。という具合に、MicroUSBケーブルは抜けやすいのと、がっちりしてるものとそうでないものがあったりするので、こういう時に役に立つのがバックアップ。しかも、Linuxの場合、そっくりそのまんま復元が出来るので、設定やファイルなどもバッチリ復元できます。ですので、ある程度サーバ類や設定などが決まってきたら、1度バックアップを取りましょう。

まずは毎回の如くですが、diskutilのlistや、df -hコマンドで、SDカードがどのドライブなのかをチェックしてから作業をしましょう。でないと、OSXのディスクを破壊したり、別のリムーバブルディスクを壊すことに繋がります。今回は、disk2s1がそれとわかったので、それで進めます。disk2なのでターゲットはrdisk2となります。そもそも、LinuxのパーティションはOSXではマウントが出来ないので、アンマウントの作業は必要ありません。

これで、バックアップが開始されます。32GBのSDカードでおよそ40分ほど掛かります。書き込むときは、RaspbianイメージをDDコマンドで書き込む時と同じです。

ファームウェアやaptのリスト更新

debina、ubuntuユーザでは、既におなじみですが、日々アプリケーションのパッケージというのは更新されています。ですので、毎回インストールする時などには、事前に以下のコマンドを打つのが常識となっています。

新しいリポジトリを追加したときなどにも行いますね。これを行わないと古いファイルをインストールしてしまったり、既にもう削除してなかったりするので、必ずこれは毎回やるようにしています。しかし、Raspberry Piにはもうひとつ時々やるべきものがあります。それがファームウェアのアップデート。10分くらいで完了するのですが、以下のコマンドで行います。

但しこれ、kernelのアップデートなども行われてしまうので、独自にビルドしたドライバ類などは、新しいカーネルに変わった場合、再度ビルドし直さないと行けなかったりしますので、そういう人は容易にアップデートしてしまうと痛い目を見ます。また、イントラ内でしか使わないよって場合には、下手にアップデートしないほうが良いケースもあります。

関連リンク

Pocket
このエントリーをはてなブックマークに追加
Bookmark this on Yahoo Bookmark
Pocket