人気ブログランキング |

カテゴリ:Raspberry Pi( 4 )

RaspberryPiのバックアップ

RaspberryPiも色々設定が進んできたこともあり、そろそろバックアップもとっておかなければと思い、実施しました。

先日某S社のnasneのHDDが故障してしまい、突然来るHDDの故障に改めてバックアップの大切さを身にしみたところでした。
しかし、きちんとした製品なのに1年足らずで故障するなんて、どんな調達管理しているんでしょうかね?危なくてもうS社のHDD商品は買えませんねぇ‥‥。

まぁそれはそうと、RaspberryPiの大事なデータが入っているSDカードも構造的には読み書きの限界があり、ビットエラーは表面化しないまでも徐々に増えていって、HDDやSDカードではすぐにファイルが壊れないようにリカバーしています。ただビットエラーは完全にゼロではなくある程度存在しているもので、それが徐々に増えていき、リカバーできなくなって初めて、突然ファイル破壊という形で表面化するものと考えられます。(まぁ1年やそこらで徐々に増えたビットエラーが表面化することはないと思いますが) 

RaspberryPiも、転ばぬ先の杖ということで、バックアップすることにしました。

linuxのバックアップは人それぞれですが、おそらく次のどれかでやっているんじゃないでしょうか。

  • tarによるバックアップ
  • ddによるバックアップ
  • dumpによるバックアップ


tarはもともとtape archiveの略でも有るとおり、その昔unixの補助記憶媒体がテープの頃にバックアップするためのコマンドです。元々の目的はどうあれ、いまやarchiveのスタンダードで便利に使えていますが、バックアップの単位がファイル(ディレクトリ)単位です。/(ルート)以下すべてバックアップすればフルバックアップとしてそれで対応できるのですが、/devの下やlinkまでもファイルとしてバックアップしてしまい、細かく設定しないと、よけいなファイルがバックアップされてしまいます。

ddですが、ファイルに関係なくビットイメージをそっくりそのままファイルにしてしまうので、ある意味万能なバックアップ方法なのですが、エラーまでコピーしてしまうという弱点があります。長年使う上でビットエラーが発生して、それをファイルとして見せる際にローレベルのドライバがそのエラーのセクタを使わない設定をしていたとしましょう。ddだと読み込んだそのものをファイル化するので本当にエラーが有った媒体には意味があった”使わないセクタの設定”もそのままコピーされて、新たにコピーした先では、前の”使われないセクタの設定”も引き継ぎ、正常なセクタにもかかわらずエラーのレッテルをはられて使われなくなります。代を重ねるごとに積み重ねられ、直ることは有りません。いくら簡単で便利な方法だとしても気持ちが悪いです。

というわけで、私はよほどでもない限り、dumpでバックアップとることにしています。dump(とrestoreのセット)は、ext2派生のフォーマットでは非常に使いやすいと思います。デバイス単位(/dev/XXX)をファイルとしてバックアップできるし、フォルダやリンク情報は個別にバックアップされるので、restoreしたときにはリンクはリンクとして再現されます。

私が実際にRasberryPiのバックアップをとった手順は以下です。


  • RaspberryPiの起動SDカードを他のlinuxに接続する
    我が家では、デスクトップPCにインストールしているdebianを使いました。玄箱だとEMモードの代わりですね。このデスクトップPCのUSBに、アダプタを介してRaspberryPiのSDカードを挿します。tail /var/log/syslogで確認すると、RaspberryPiのSDカードの構造は、第一パーテーションと、第二パーテーションの二つから成っています。

    RaspberryPiでmountで確認してみると、第一パーテーションは/bootに相当し、FATのパーテーションです。ここにMBR相当の情報が含まれているようです。ただFATはdumpではバックアップできません。となるとこの第一パーテーションをMBRごとコピーするとなればddしかないのですが、よく見ると、RaspberryPiを最初にisoからインストールした際とファイルが全く同じです。
    d0222779_20465013.jpg

    updateやupgradeをしたところで、結局kernelを変えなければ、この/boot(第一パーテーション)は変わらないと見て良いでしょう。

    第二パーテーションは、/boot以外全てここに入っていてext4のようなので、これはdumpでバックアップできます。

  • dumpでバックアップ
    もしdumpをインストールしていなければ、debianならば、apt-get install dump restoreでインストールします。(restoreもどうせ使うのでついでにインストール)

    dumpでバックアップをとるには以下を実行します。
    dump -0uf (ファイル名) /dev/sda2(RaspberryPiのSDカードの第二パーテーション)

    dumpのオプションの-0(ゼロ)は、フルバックアップの意味です。私はどうせ世代管理(前回との差分を定期的にバックアップして管理する)はしないので、常にフルバックアップです。世代管理しないのであれば、オプションのuも不要ですね。fはその後にファイル名、ということですね。
    機種にも夜と思いますが、私は16GBのSDカードで終わるまで数十分はかかりました。


  • restoreで展開
    バックアップしたものをSDカードに戻すこともあるでしょう。(緊急の場合などが多いので、できれば戻さなければならない状態には当たりたくありませんが)

    dumpの時と同様、他のlinux機を使いSDカードに書き込みます。
    重要なのは、restoreするには書き込むデバイスをマウントしなければならないことです。dumpとrestoreは一組で使うようなものですが、dumpの方は、読み込む対象のデータをデバイス毎に指定できますが、restoreはそのデータを書き込む先としてデバイスで指定できません。もっと言うと、指定する方法がなく、展開する先はカレントディレクトリになります。

    具体的には、上記のコマンドで作成したファイルを使って、まっさらなSDカードをバックアップをとった時点のRaspberryPiのSDカードとして復活させたい場合は次の手順で復活できます。


    1. RaspberryPiを最初に起動したSDカードを作る要領でSDカードをフォーマットする。これで/boot領域を作ります。

    2. RaspberryPiのSDカードにバックアップデータを展開する
         mount /dev/sda2 /ext (RaspberryPiのSDカードの第二パーテーションを/extなどにマウントする )
         cd /ext
         restore -rf (ファイル名フルパス)

    3. RaspbeyyPiにいれて動作確認


とりあえず、kernelさえかえなければ、バックアップ時点のSDカードを複製し、使えるようになります。
by tkn384 | 2014-07-21 23:31 | Raspberry Pi

Raspberry PiをRegzaのLAN-HDDとして使ってみる

東芝の液晶テレビ"regza"(我が家はZ1シリーズ)は、LinuxのsambaをLAN-HDDとして番組をそれに録画することができます。
実際私は玄箱をLAN-HDDとして使っていて、普段はregza直結のUSB-HDDに撮っていますが、保存版?やあんなのやこんなのは、サーバの置いてある部屋のLAN-HDDに保存用として録画したりムーブしたり、便利に使っています。この用途にRaspberry Piも使えないかテストしました。


Raspberry Piの設定

Raspberry Piには既にsambaはインストール済みなので、玄箱の設定を参考にして、smb.confに設定を追加します。以前の玄箱への設定を参照して書き換えます。そしてsambaサーバをrestartします。

service samba restart

これでRaspberry Pi側の設定は一旦終了、これで使えるはずです。



次はregza側の設定です。
リモコンの設定ボタンのレグザリンクメニューから、LAN-HDDの設定を説明書に従い行います。

d0222779_01682.jpg


smbdが動いていれば、regzaで自動的に拾ってくれます。それを登録すればOK。



不具合発生

一通りregzaの設定をした後、一応LAN-HDDの接続テストを行います。

d0222779_034754.jpg

NG!のメッセージがでました。
d0222779_044575.jpg



一応玄箱とは同じ設定、玄箱のsambaのバージョンは3.5.6でRaspberry Piは3.6.6でRaspberry Piの方が新しいです。この違いが明暗を分けている?

その他、玄箱とRaspberry Piの違いはというと、日本語環境?(玄箱は古いのでEUCのまま)、それとも転送速度?


ということで転送速度を確認してみました。

↓これはRaspberry Piの転送速度
d0222779_065222.jpg


↓これは同じファイルを玄箱で転送した場合の転送速度
d0222779_08172.jpg



結果、Raspberry Piが別段遅いと言うことは無いようです。逆に古い玄箱よりちょっと早い。この程度の差しかないなら、LANの速度が決定的な違いではないということが判ります。



気になったのはテストがすぐNG!が返ってくることです。このレスポンスだとRaspberry Piが応答していないと思われます。

一応logのレベルを上げて、/var/log/sambaの下のログを確認したところ、log.regzaのlogファイルが出来ているものの、サイズはゼロです。だいたいこういう場合はアカウントに問題があるので、もう一度smbpasswdを作り直しました。

smbpasswd -a nobody

smbpasswdはsambaの標準には無いかもしれないので、一応以下でインストールされます。

apt-get install samba-common-bin


実は動く

色々試しているにもかかわらず、NG!は消えません。
1時間くらい格闘していましたが、ダメもとで録画してみると、あっさり動作する。

なぜ??

※16GのSDカードにとりあえず録画エリア作りましたが、1時間番組を撮ることができました。撮った番組をRaspberry Piから玄箱へムーブしましたが、問題なくできました。

念のため、玄箱のテストも実施しましたが、いままで一度も失敗したことがない玄箱も、たまにしかOKが出ません。なんか厳しくなったんですかね??
logが残っていないのは???なのですが、とりあえず使えているので良しとするか(基本いい加減です)

d0222779_0124224.jpg

LAN-HDDの仕様なのか、早見はできないのですが、一応玄箱と同程度には使えることが判りました。
by tkn384 | 2014-06-25 00:16 | Raspberry Pi

Raspberry Piコンソールをトラ技ARMライタで作る

ぼちぼち弄っているRaspberry Piですが、sshで接続して使っているとよく切断してしまいす。

Windowsからteraterm proで接続したままだと、時には10分程度でteraterm proが切断してしまいます。たまたま調子の良い時は数時間つなぎっぱなしでも落ちないのですが、不安定です。そして、落ちた事に気が付いて再起動しようとすると、”拒否されました”となり、再接続できません。つまりサーバが応答していない状態です。その状態も、しばらく(不定期ですが概ね数分~数十分)経つと何故か接続できるようになります。

ssh特有の最初はタイムアウトかと思ったけど、時間が不定期だし、同じTeratermProで接続している玄箱は何日放って置いても切断されないところをみると、サーバ側だと考えます。sshが良くないのかと思って、apt-get install telnetdでtelnetをインストールして確認してみたけど、症状はsshと同じ。telnetでもsshでも症状が起きるタイミングは同じでした。(sshがダメならtelnetもダメ)


この状態が良くわからなくて、ネットの中でウワサされているRaspberry Piの”電源が弱い”という問題であれば、ハングアップしていたりするんでしょうが、この状態に陥った場合でも、コンソールでログインすれば普通に使えますし、他からpingを打ってみると到達します。ただsambaはアクセスできなくなっていて、Windowsからは”見つかりません”になります。各サービスのlogを見てもそれらしいエラーはありません。pingは通るのでハードウェア全体が落ちているわけではなさそうです。つまりソフトウェアとしてサービスがサイレントで落ちているか、一時的にネットワークのハードウェア部分だけ不調に陥るんじゃないかと。監視する環境を整える必要が出てきました。


コンソール作成の計画
telnetやsshが落ちる原因を調べるため、監視する環境を整える必要があります。不安定なイーサネット経由で監視していては埒があかないので、落ちないコンソールが必須です。残念ながら我が家の事情で、Raspberry Piを置いている部屋には、PCは有るものの、HDMI端子付きのテレビはありません。HDMIテレビのあるリビングや寝室にはごちゃごちゃした機械は置きたくないので、サーバの有る部屋にて、PCを活用してコンソール接続出来ないか考えました(普通の考えですが)。


コンソールケーブルを作成する為の段取りを考えると、
Raspberry PiのGPIOコネクタにはシリアルコンソールの端子がでていて、前人の記事でも多く展開されていて参考になります。ただ、私はわざわざ安いサーバを買ったのに、金をかけてUSB-シリアルの変換ケーブルを買うほど欲しいワケではないので、なるべくそのへんのモノで安く簡単に済ませたいと考えました。

そこで思い出しました! そういえば、トランジスタ技術2014年3月号(トラ技)についていたおまけトラ技ARMライタはUSB-UART変換機能もあるので使えるな!と。

このトラ技のおまけの”トラ技ARMライタ”とは、ARMのマイコン付きの半完成品で、コネクタとスイッチを取り付ければ即使える代物で、これがおまけとは大判振る舞いです。なんか1,000円くらいはしそうなくらいだけど、いつものトラ技の本自体の値段+100円で手に入るわけです。私は別に使う予定は無かったけど、「100円プラスでこれが付いてくるなら買っておくか」ということで、持っていました。
このおまけの機能のうち、USB-UART変換機能のみを使います。


トラ技ARMライタの作成~設定
トラ技の本誌の通り、タクトスイッチとUSBコネクタ、入出力用のピンを半田付けします。結構細かいので、かなり先っちょの細い半田コテが必要かも。私は30Wのでやったけど、先がランドより大きかったので結構厳しかったかな。ヤスリがあれば尖らせるって手もあるかもしれないけど、できれば細いものを準備するのか良いかも。ちょっと細かい半田付けの技術が必要です。

d0222779_23225158.jpg

次に、トラ技ARMライタの設定をします。ISPのスイッチを押したままUSBを挿すと、WindowsのエクスプローラからUSBメモリのようにライタの中のファイルが見えます。
トラ技本誌の通り、元々のファイルを削除し(勝手に復活するので思い切って削除)、LPC11U35_USBCDC.binをコピー&ペーストします。これでトラ技ARMライタ側のファームウェアの準備は終わりです。

更に次に、このトラ技ARMライタをwindowsで使用するための、windows側のドライバをインストールします。しかしこれがまたちょっと問題あり(後述)

私はトランジスタ技術2014年2月号のcd-romからドライバを取ったのですが、いくら場所を指定しても”ドライバ見つかりません”となってしまう。こんな所で躓くのもおかしいと思い、ググって見たら‥‥、有りました。.infファイルにミスがあったそうで、トランジスタ技術のhpにお詫びと対処済みのドライバがアップされていました。


ドライバを読み込ませた後TeratermProを起動し、シリアルポートをトラ技ARMライタの接続されているCOMポート(デバイスマネージャーのポートで確認)を設定し、スピードを115200bpsに設定します。念のためトラ技ARMライタのresetボタンを押しておきましょう。(USBの抜き差し相当の動作)



Raspberry Pi側の設定
次にRaspberry Piとトラ技ARMライタの接続を行います。UARTの接続は、送り(T)と受け(R)の2本と、GNDだけ接続すればokなので、接続自体は簡単です。

   














トラ技ARMライタ Raspberry Pi
CN1-1(GND) 6pin(GND)
CN1-9(Tx) 10pin(Rx)
CN1-10(Rx) 8pin(Tx)

d0222779_23422166.jpg


Raspberry Pi自体の設定は特に必要がありません。もともとUARTの物理ポートはコンソール情報を流すように設定されています。ここまで接続がうまくいけば、コンソールの情報が流れるはずです。


トラブルあり
ただ、私は最初はうまく表示されませんでした。接続しても何もteraterm proで反応が無く、何かが壊れているのか設定がおかしいのか‥‥。telnetでログインするとコンソールのttyAMA0のgettyが反応していないことから、コンソールとして認識していないことは解る。接続も3本しかないので間違いようがない‥‥。

最初からトラ技ARMライタの設定をやり直したところ、Windowsのドライバがうまくインストールされなかった事が判明。どうも一応完了してエラーが無い状態に見えても、正常に働いていないということでした。
私の場合、潔くドライバを削除してからまたイチから入れ直したところ、正常に動くようになり、やっと無事にteraterm proの画面にコンソールのメッセージが流れるようになりました。

Raspberry Piにイーサネットを接続せずに、TeratermProにはコンソール画面
d0222779_23401258.jpg

ttyもttyAMA0で接続(トラ技ARMライタのUART経由で接続)
d0222779_23405030.jpg


これでしばらく2つのTeratermProの画面を見比べて、落ちる原因を監視していきます。
by tkn384 | 2014-06-18 23:53 | Raspberry Pi

新しいオモチャ ”Raspberry Pi”入手

秋葉原の定番コース、千石通商にふらりと行った際、ちょっと気になっていたRaspberry Pi(TypeB)が並んでいたので、ケースと一緒に購入しました。

Raspberry Piはワンボードの中に、CPU、メモリはもちろん、イーサネットアダプタ、ディスプレイアダプタ、オーディオ、USBアダプタも含み、ストレージとしてSDカードを使い、すべてがこれワンボードで完結するマイコンです。しかもそれがdebianベースのlinuxでも動くとなれば、先入観もなく使えそうです。
d0222779_0192027.jpg


今までの玄箱だと、やはり3.5インチのハードディスクがメインの構造となっているため、どうしても消費電力が気になります。あと、今となっては玄箱のスペックも少々物足りない気まします。

何はともあれ、新しモノ好きの私としては黙ってはいられなく、並んでいるのを見た瞬間、衝動買いしてしまったというわけです。


期待していることは、


  • 省電力サーバ
  • PIOが出ているので上手く利用したい

というところです。
今のところはまだひよっ子サーバなのですが、使っている玄箱の用途にどれだけ近づけるのか、もしくは追い越せるのかが知りたい。それに向かって日々調整をやっているところです。



具体的にやってみたいこと


今後Raspberry Piに育てたい機能は、今の玄箱でいつも使っている便利な機能。具体的には、


  1. PCのファイルサーバ(samba)
  2. MediaWizのサーバ(wizd)
  3. regzaのサーバ
  4. ftpサーバ
  5. webサーバ
  6. DLNAサーバ(mediatomb)
  7. VPNサーバ

とりあえずネットdeレックサーバはもういいかな‥‥。とりあえず今玄箱で使っている機能と同じことをさせて比較したい。また、PIOも内蔵しているので、外部接続回路を作って行きたいなど、目標にやっていきたいな、と。(先日、玄箱にもPIOとしてUSB-IO2.0を買ったばかりですが)



構築開始

とりあえず、機能を片っ端から入れてみます。

動かすまでは、全く苦労はありません。その手の話は既にたくさんの前人が更改しているので割愛します。

最初だけはHDMIケーブルをつないでコンソールで設定します。日本語化も前人の通りに実施すれば問題ないです。別にfontを入れる必要も無いですね。jfbtermを起動すれば問題なく使えました。localeとtimezoneだけは最初に済ませます。
そしてサーバとして仕様するには固定IPアドレスを設定しておきます。
/etc/nwtwork/interfacesを修正すれば簡単に変更できます。


auto lo

iface lo inet loopback
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.xxx ←固定アドレス
netmask 255.255.255.0
gateway 192.168.0.xxx ←環境に合わせて

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp





sambaサーバの作成

SDカードだけだと、さすがに容量的にサーバとして役に立ちません。何をやらせるにも、サーバとしてならば外付けHDDは必須です。普通に使うだけならば、非常に簡単に機能を追加できます。

apt-get install samba


これで、/etc/samba/smb.confの設定を行えば、windowsなどとファイル交換できる状態になります。





試しに、3.5インチのHDDの250GBのHDDを空けてUSB-ATAの変換ケーブルで接続しました。このHDDは最初はNTFSでフォーマットされていたため、リードオンリーで見えます。サーバとして使うためにとりあえずext2のディスクを作ります。

fdisk /dev/sda   (sdXは/var/log/syslogで確認)
mkfs /dev/sda1  (ext3のフォーマット)
終わったらmount /dev/sda1 /extでマウント。

これでファイルサーバとしては使えるようになったはずです。

とりあえず、ここまでにして、今後続けていきたいと思っています。

by tkn384 | 2014-06-18 00:29 | Raspberry Pi


今の好きなことは、暇な時いじる玄箱とか家電とか


by tkn384

プロフィールを見る
画像一覧
更新通知を受け取る

カテゴリ

全体
家電
玄箱
電子工作
Raspberry Pi
未分類

以前の記事

2014年 09月
2014年 08月
2014年 07月
2014年 06月
2014年 03月
2013年 08月
2012年 05月
2011年 05月
2011年 04月
2011年 03月
2011年 02月

フォロー中のブログ

メモ帳

最新のトラックバック

ライフログ

検索

タグ

その他のジャンル

ブログパーツ

最新の記事

玄箱サーバ死亡
at 2014-09-23 16:39
初代玄箱USB増設
at 2014-08-31 14:05
RaspberryPiのバッ..
at 2014-07-21 23:31
Windows7とWindo..
at 2014-07-20 12:16
Windows7のPCを買い..
at 2014-07-06 01:48

外部リンク

ファン

記事ランキング

ブログジャンル

ネット・IT技術

画像一覧