Amazon

2017年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

最近のトラックバック

無料ブログはココログ

Amazon2

« RaspberryPiのオーバークロックをraspi-configより自由に設定する | トップページ | JupyterNotebookでTensorflowとscikit-learnを使用できるようにする »

2017年2月 6日 (月)

RaspberryPiをDebianインストールからファイルサーバ兼Subversionサーバーにする(2017年版 その1)

以前、RaspberryPiにSamba4やSubversionを入れましたが、もうなんだかんだで
4年近く前の事になってしまいました。この間我が家ではSamba4によるファイルサーバも
Subversionによる履歴管理も活用してきましたが、Raspbianもかなりバージョンアップ
されたので、この辺りでRaspbian Jessie(Lite)をインストールして、
Samba4やSubversionのバージョンも最新にしたいと思います。





今時はRaspberryPiも2や3が出ていますが、我が家ではRaspberryPi TypeBが現役です。
パフォーマンス的にも大した問題はありませんので、これにインストールしたいと思います。
2や3でも手順は同じかと思います。(と、言いますがオーバークロックはしてたりします)

今回から、何回かに分けてRaspberryPiにSamba4とSubversionをインストールして
行きたいと思います。特に第一回はSamba4やSubversionに興味が無くても、単なる初期設定として有効です!

今回の作業予定

  ・第一回(この記事です)
  1. Raspbian Jessie Liteのインストール
  2. Raspbianの初期設定
  3. Raspbian本体をHDD起動にする
  4. Raspbianのファームウェアの更新及びパッチ適用

  ・第二回

  5. Samba4のインストール

  ・第三回(作成中)

  6. Subversionのインストール


最初はOSのインストールです。Raspbianも気が付いたらDebianに合わせてJessieが
リリースされました。それに加えて、Lite版が提供されています。今回もRaspberryPiは
サーバーとして使用する予定ですので、今回はRaspbian Jessie Liteをインストールします。



1. OS(Raspbian Jessie Lite)をインストールする

OSのインストール(SDカードへの書込み ~ 起動)までは下記の記事を参考にしてください。
古い記事ですが、そのままのやり方で大丈夫です。

Raspberry Pi入手 何はともあれインストール

RaspberryPiが起動したら次に進んでください。


2. Raspbianの初期設定

RaspberryPiにRaspbianを書き込んだSDカードを挿入してRaspbianを起動します。
SDカードへの書込みが成功していれば、Raspbianが起動します。

ここでは、まず最低限の設定だけを実施します。

・rootでログインを可能にする
  sudoが面倒なので、rootでログインできる様にします。
  初期ユーザー pi/raspberry でログイン後、以下のコマンドを実行し、
  rootユーザーにパスワードを指定します。



さらに、以下のファイルを編集します。

sudo vi /etc/ssh/sshd_config



これで再起動ないし、sshデーモンをrestartすればrootでsshにログインできる様になります。

sudo service sshd stop
sudo service sshd start


★おまけ★ piユーザーの時のカラフルなCUIにしたい人は特に拘りがなければ、
.bashrcを /home/piからコピーしてしまいましょう


cd
mv .bashrc .bashrc.org
cp /home/pi/.bashrc .



・raspi-configで初期設定をする

続いて、CUIのraspi-configで初期設定をします。
以下の様にraspi-configと入力します。

raspi-config

1. Expand Filesystemを実施
  これで、SDカードの全容量が認識されます。
2. Change User Password
  初期ユーザー pi のパスワードを変更します。
  好きなパスワードに変更してください。
3. Boot Option
  そのままで良いです。サーバ用途の場合はConsoleのみで十分です。
4. Wait for Network at Boot
  どちらでも問題ありません。Noの方が多少起動が早いかな?
5. Internationalisation Options
  Change Locale
    日本語にしたい場合はこちらで設定して下さい。
    ja_JP.UTF-8 UTF-8 が良いでしょう。英語のままでも問題ありません。
    Default localeも日本語にするならば、ja_JP.UTF-8 を選択して下さい。
  Change Timezone
    これは Asia/Tokyoに設定しましょう。
  Change Keyboard Layout
    一応日本語キーボードを設定します
      Generic 105-key (Intl) PC → Other → Japanese → Japanese (OADG 109A)
       → The default for the keyboard layout → No compose key を選択します。
  Change Wi-Fi country
    JP Japanを選択して下さい。(Raspberry PI TypeBには無線LANはついていないので設定の必要はありません)
6. Enable Camera
  使用しないので設定しません。
7. Add to Rastrack
  使用しないので設定しません。
8. Overclock
  自己責任で設定して下さい。今回は別記事で示す様にちょっと拘って設定してみました。
9. Advanced Options
  Overscan
    PC用の液晶ディスプレイに接続している場合はNoを選択してDisableにすると良いでしょう。
  Hostname
    好きな名前を設定して下さい
  Memory Split
    さりげなく重要です。サーバ用途ですからGPUに渡すメモリは最低にしましょう。
    16MBに設定します。
  SSH
    サーバ用途ですので使用します。Enableに設定します。

  VNC
  SPI
  I2C
  Serial
  1-Wire
  GPIO Server
  GL Driver
    サーバ用途ではまず使用しませんので、Disableに設定します。
    Serialも普段の使用ではまず必要ないかと思います。
  Audio
    特に使用しませんのでそのままにします。

以上の設定が終わったら、基本的な設定は完了です。
一度再起動します。


3. Raspbian本体をHDD起動にする

続いて、Raspbian本体をHDD起動にします。今回も簡易的ではありますがRaspberryPiを
サーバ用途で利用します。そこで、SDカードよりもずっと信頼性の高い外部記憶装置と
してHDDを接続します。また、OS本体もSDカードからHDDに移行して、信頼性と高速性を得たいと思います。

但し、正確にはブートだけはSDカードから実行して、それ以降の作業をHDDで実行する事になります。
従って、SDカードはブート領域は継続して使用される為、まったく不要になる訳ではありません。

何故わざわざHDDから起動する様にするのかと言われると、以下の様な理由を挙げられます。

  ・SDカードは書き換え可能回数が少ない
    様々なところで言われている事ではありますが、SDカードは書き換え可能回数に
    限界があります。実際の所HDDもあるのですがHDDの方が信頼性が高いです。
    Linuxを使用する場合はLogやswap領域等が特に書き換え頻度が高くなります。

  ・ちょっと早い
    SDカードよりはちょっと早いです。特にファイル更新処理が速くなります。
    但し、RaspberryPiに接続するとHDDの性能を全然活かせないので、HDDでさえあれば
    正直なんでも良いです。私は古いPCから引っこ抜いたHDDを使用しています。

  ・大きな記憶領域が欲しい
    大容量のSDカードと言うのは無くはないのですが非常に高価です。
    その点HDDの場合は512GBや1TBの物が比較的安価に購入できます。
    (但し、RaspberryPiに接続する際は転送速度が遅いので200GBもあれば十分かと…)

この様な理由から今回はUSB-HDDを使用する様に変更します。


・現在の状態の確認

rootでログインして、現在の状態を確認します。USB-HDDを接続した状態で下記のコマンドを実行します。



/bootは/dev/mmcblk0p1をマウントしている事が判ります。


・USB接続したHDDにパーティションを作成してフォーマットする

今回はハードディスクは昔のPCから引っこ抜いた物を使用しました。
新品を使う場合は既存のパーティションを削除する必要はありません。

また、SWAP用の領域サイズは適当にHDDの端数となりそうな領域で良いでしょう。
ここでは、全体で233.8GiBのHDDだったので230GBをデータ領域、残りの3.8GBを
SWAPに充てていますが、RaspberryPiの場合はSWAPにそみそみ3.8GBも要らないはずです。。。

まず、fdiskでパーティションを作成します。



続いて、EXT4でフォーマットします。




・SDカードからHDDへファイルをコピーする

以下のコマンドを実行して現在使用しているSDカードの/dev/mmcblk0p2の内容を
先ほど確保した/dev/sda1にコピーします。SDカードとHDDカードの速度によりますが
数分かかると思います。RaspberryPi使いなら気楽に待ちましょう。

dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=32M conv=noerror,sync




続いてファイルシステムのチェックを行います。 今回はddコマンドでディスクの
内容をそのままコピーしましたが、エラーも一緒にコピーしてしまいます。
SDカードの場合はあまり信用できないので、ファイルシステムをちゃんと修復して
おいた方が良いです。

e2fsck -f /dev/sda1



やっぱりなんか出ました。う~ん。

これでファイルのコピーはできましたが、今回は4GBのSDカードから物理コピーをしてしまっ為、
HDDの利用可能な領域が4GBになってしまっています。(ddコマンドはそう言う物です)
このままでは折角のHDDの大半の領域を使用できませんので、全ての領域を使用できるように
リサイズします。

resize2fs /dev/sda1




・コピーしたHDDをマウントする

続いてコピーしたファイルの確認とその後の書き換えの為にHDDをマウントします。
Raspbianにも/mntが最初から用意されているはずですので、とりあえずそこにマウントします。



正しくマウントできました。/dev/sda1が/mntにマウントされ230GB程使用可能な
状態になっています。


・Linuxブート時に使用する領域を差し替える

最後にLinuxのブート時に使用する領域を差し替えます。変更点は二箇所です。
まず、/boot/cmdline.txtを修正します。viで以下の内容を修正します。

vi /boot/cmdline.txt

  修正前
  dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait 

  修正後
  dwc_otg.lpm_enable=0 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait 


続いてfstabを更新します。但し、更新しなければいけないfstabはSDカードのfstabではなく
HDDのfstabですので、下記の様に/mnt/etcフォルダのfstabファイルを更新する必要があります。
以下の行を修正します。

vi /mnt/etc/fstab

  修正前
  /dev/mmcblk0p2 / ext4 defaults,noatime 0 1
  
  修正後
  /dev/sda1 / ext4 defaults,noatime 0 1



これで作業は完了です。再起動するとHDDにコピーした内容で起動するはずです。(SDカードは引き続き必要です!)
再起動後接続しているHDDのアクセスランプがチカチカしていれば成功です。


ログイン後以下のコマンドで確認できます。



これで、SDカードの不安定さから解放されました。
起動もSDカードの時よりずっと早くなったはずです。


・Raspbianのファームウェアの更新及びパッチ適用

続いてRaspbianを最新にし、ファームウェアも更新します。
以下のコマンドを順番に実行します。OSをHDDに移していると、
SDカードの時よりはだいぶましな速度で動作します。

apt-get update
apt-get upgrade


Changelogが表示された場合は確認してからqを押して終了して下さい。

加えて、rpi-updateをインストールしてからファームウェアの更新をします。
(何故かJessie liteにはインストールされていない模様。必要だと思うけど…?)
インストールは以下のコマンドを実行してください。

apt-get install rpi-update

インストールされたら起動します。

rpi-update



色々アップデートされます。ファームウェアの更新後は再起動が必要です。


4. Raspbianをサーバ用に設定する

・固定IPアドレスの設定

IPアドレスを固定化します。一応これもサーバーなので、固定IPの方が
何かと都合が良いです。

以前のRaspbianとは方法が変わっています。下記の様に、/etc/dhcpcd.confに
以下の内容を末尾に追記します。ここでは、192.168.128.17をIPアドレスとして設定しています。

vi /etc/dhcpcd.conf



こんな感じになります。IPv6も最初から設定されています。




・不要なデーモン等を停止する

起動直後のメモリの状態です。以前のバージョンと比べると初期状態で10MB程多く
メモリを消費している様な…




簡単に設定する為に、chkconfigをインストールします。

apt-get install chkconfig

インストール後に以下の様に入力して稼働中のデーモンを確認します。




続いてrcconfを起動して不要なデーモンの処理を停止します。
以下を停止しました。

chkconfig alsa-utils ofF
chkconfig bluetooth off
chkconfig dhcpcd off
chkconfig dphys-swapfile off
chkconfig plymouth off
chkconfig triggerhappy off


う~ん。結果は殆ど変わらず。。。まぁ、こんなものでしょうか。。。
きっと、起動もほんのちょっと早くなっているはずです。。。




・swap領域をHDDに変更する

上記でdphys-swapfileを停止してしまったので、swap領域がなくなってしまいました。
そこで、先程作成した二つ目のパーティションはswap領域にします。

現在の状態を確認




swap領域をフォーマットする

mkswap /dev/sda2



起動時に/dev/sda2をswapとして使用する様に設定する

/etc/fstab に下記の1行を追加します。




ここで再起動してからswapの状態を確認します。以下の様になっているはずです。




お疲れさまでした! これで、Raspbianの基本的な設定はおしまいです。ここまでやると
ご家庭用軽量サーバーとしてそれなりに使えます!



久し振りにRaspberryPiを最初からセットアップした気がします。そのまま放置していても
元気に動作しているRaspberryPiですが、久し振りにソフトウェアを更新したので、きっと
速度的にも機能的にも改善されている事でしょう!






この数年でRaspberryPiを取り巻く状況も変わり、すっかり市民権を得た気がします。
しかし、何年も前に買ったRaspberryPiが壊れずに動作し続けているというのは
嬉しい事です。
しかし、本文中で書いた信頼できる記憶装置なハードディスクですが、実は我が家では
今まで使用していたのは10年近く使っている、昔のノートPCから引っこ抜いた80GBの
IDE接続のHDDです。確かに信頼性高いな~っていうか単なる例外???











« RaspberryPiのオーバークロックをraspi-configより自由に設定する | トップページ | JupyterNotebookでTensorflowとscikit-learnを使用できるようにする »

RaspberryPi」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1680410/69494020

この記事へのトラックバック一覧です: RaspberryPiをDebianインストールからファイルサーバ兼Subversionサーバーにする(2017年版 その1):

« RaspberryPiのオーバークロックをraspi-configより自由に設定する | トップページ | JupyterNotebookでTensorflowとscikit-learnを使用できるようにする »