RaspberryPi3でファイルサーバーをつくる。

ファイルサーバーってなんですか?

ファイルサーバーっていうと会社とか学校でよくあるファイルを共有出来るサーバーのことです。
家でファイルサーバーを立てると家のネットワークにつながったパソコンやタブレット、スマホから同じファイルにアクセスできます。

これの何が便利かというと、デバイスを何台か持ってる人はPCからノートPCにファイルを移動するときにUSBフラッシュメモリを使ったりしなくていいですし、スマホから写真を取り込むのも簡単に出来るかもしれません。
Dropboxで良いのではという意見も無視できませんが、ローカルネットワークの方が確実に高速なので映画などの動画のファイルを置いておいてそのまま再生するなんてことが可能です。自分もHDDに録りためた映画を有効活用するために使用しています。
f:id:Ocknamo_crypt:20171015235440p:plain

 

方法

sambaを使用してRaspberryPi3をファイルサーバーにしました。

 

必要なものはCUIでインストールしたRaspberryPi3とHDDです。
RaspberryPi3のCUIインストールは以下を参考にしてください。
Raspberry Pi Zeroのセットアップ
記事はZeroですが大体一緒です。

 

HDDは中を初期化しなくてもそのまま使用できます。

samba導入

HDDの導入方法はこちらを参考にしました。
Raspberry Pi 2でファイルサーバを作るまでのまとめ – Qiita
sambaの設定ファイルの内容は上の内容そのままだと何故か上手く行かなかったため、こちらを参考に、
自作NASで自宅ファイルサーバー 第5回 (Sambaのインストール) – 東京伊勢海老通信
ちょっといじって使用したので設定内容を晒しておきます。

CLIモードでセットアップしたRaspberryPi3を一通りアップデート。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo rpi-update
$ sudo apt-get autoremove
$ sudo apt-get autoclean

ntfsでマウントするためntfs-3gをインストール

$ sudo apt-get install ntfs-3g

fat32の場合は何もインストールしないでも出来ました。
外付けHDDを繋いで認識してくれてるか確認。

$ sudo fdisk -l

認識していれば”/dev/sda1″などと表示されると思います。PINE64だと認識できない場合がありましたが今のところRasPiでは大丈夫そう。
マウントポイントを作成してマウント。

$ sudo mkdir /mnt/hdd1
$ sudo mount -t ntfs-3g /dev/sda1 /mnt/hdd1

マウントに成功していれば”df -h”を叩けば表示されます。

起動時に自動マウントされるように設定。

$ sudo blkid /dev/sda1

UUIDが表示されるので、

$ sudo nano /etc/fstab

でfstabを編集して以下の青字部分を追記します。
“☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓”は先程確認したUUIDを入力します。

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
UUID=”☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓” /mnt/hdd1 ntfs-3g defaults,nofail 0 0
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

fat32の場合は青字部分を以下にすれば大丈夫でした。

UUID=”☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓☓” /mnt/hdd1 vfat defaults,nofail 0 0

自動マウント出来ているかどうか、再起動してから”df -h”コマンドで確認しましょう。

$ sudo apt-get install samba

Samba導入

普通にインストールします。

$ sudo apt-get install samba

“/etc/samba/smb.conf”にある設定ファイルを書き換えます。

 

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.org

smb.conf.orgにバックアップを取っておきます。

$ sudo nano /etc/samba/smb.conf

でsmb.confの内容を以下に書き換えます。

workgroup = WORKGROUP
bind interfaces only = yes
map to guest = Bad User
log file = /var/log/samba/log.%m
max log size = 50

dos charset = CP932
unix charset = UTF8
display charset = UTF8

[homes]
comment = Home Directories
browseable = no
writable = yes

[nas]
comment = Public Space for homenetwork
path = /mnt/hdd1/
public = Yes
guest ok = Yes
read only = No
writable = Yes
hosts allow = 192.168.

基本的に[nas]以下の部分がファイルサーバーの設定です。青字部分はマウント場所が変わったら変更になります。guestOKですがローカルネットワーク内からしかアクセスできないようにしています。

変更が終わったらsmb.confをチェックします。

$ sudo testparm /etc/samba/smb.conf

エラーメッセージが出たら何か間違っているので見直しましょう。
問題なければsambaを起動します。

$ sudo systemctl restart smbd
$ sudo systemctl enable smbd

これで接続できると思いきや、なぜか接続できませんでした。と思ったら自分で設定したufwの存在を忘れていました(ufwはファイヤーウォールです)。そこで設定をやり直し。

どのポート開ければ良いのか、いろいろ調べたんですが、sambaの使用しているであろう、137/udp,138/udp,139/tco,445/tcpを開放しても何故か接続できず……。(17/10/25追記: ☓139/tco → ◯139/tcp という恥ずかしいミスでした。修正したら接続できました。)

仕方がないので以下のようにローカルネットワークからは全部通るように設定しました(xxxは環境によって異なる値になる)。

$ sudo ufw disable
$ sudo ufw default deny
$ sudo ufw allow from 192.168.xxx.0/24
$ sudo ufw enable

その他

一応サーバーなのでRaspi3のネットワーク接続の方法をWifiから有線LANに変更。安定化に少しは役立つかどうかは不明です。

完成

smb://” ipアドレス “/
で接続できます。

 

メモ

・RasPiZeroだとDVDのイメージファイルをVLCプレイヤーで再生するとラグが発生したんですがRaspi3だとほとんどラグは発生しませんでした。
・fat32のドライブだと自動停止することが出来ませんでした。何か間違えていたのかもしれませんが時間がかかりそうなので諦めました。

持続可能なハーベスト~ラズベリー農家のすすめ2/Sustainable NEM Harvesting on Raspberry Pi 3

f:id:Ocknamo_crypt:20161125100535j:plain
ラズベリー農家のすすめ/NEM Harvesting on Raspberry Pi 3 B
この記事は前回の続きにして決定版になります。

5日間12日一月以上連続でハーベストし続けることに成功(記録更新中)

前回までは長くても2日未満しか継続できずにNISが落ちてハーベストが止まっていましたが、今回紹介する画期的(?)な手法により延々とハーベストができるようになりました。
raspberrypi使っていない人も、最もメモリいらないCPUいらない=裏で動かすのに最適な、方法であることは間違いないので参考にしてみてくださいね。

さらばNCC

結論から言うと持続可能なハーベストの方法とはNCCを使用しないということです。なぜならNCCを動かすブラウザ(FirefoxESR)が一番メモリを食うからです。

ラズベリー農家はハーベストしたいのであってそのほかの機能はいらない(NANOとMobileでできる)。
→ノードはNISが管理してるんだからNCC無くてもハーベストできるはず。

 

というわけでコマンドラインから直接ハーベストを行いましょう。

NCCを使用しないNEMハーベストの方法

また前置きが長くなりましたが、本論です。

1. あらかじめ秘密鍵をNCCからテキストファイルなどに控えておきます(セキュリティーが心配な場合はあとで削除することをお勧めします)。
2. NCCを落としてラズパイに一応再起動をかけておきましょう。
3. ターミナルを開いてNISを起動します

$ /.nix.runNis.sh

4. 全てのブロックを同期するまで待ちます.
5. 別のターミナルを開いてPackageまで移動しharvest.shを起動します。その際先ほど控えた秘密鍵を入力

$ /.harvest.sh 秘密鍵

f:id:Ocknamo_crypt:20161125111456p:plain
白で塗りつぶした部分が秘密鍵です。

 

以上でハーベストが始まります。
ハーベスト成功しても特にお知らせとかはないので、ラズベリー農家の会に登録するかNANOやMobileで確認しましょう。
https://twitter.com/RasFarClubtwitter.com

 

感想

  1. harvest.shの存在に気が付くのが遅かった。
  2. 前回の記事からNANO Walletを導入したりしてNCCでできることといえばローカルハーベストくらいかなと思っていたんですが、NCCが本格的にオワコン化しそう。
  3. あとはもはやハード的な問題しか残ってないですね。

_______________________________

黄金虫ブログは寄付を募っています↓XEMでの寄付は以下のアドレスまで!
NCWX3R-KAOT4D-ITPEKG-ZX5SNG-ICKKGV-ZLVT2E-KKI6

NEM NANO wallet 導入方法・Walletのインポート方法(Nano Wallet Beta 1.1.11)

(NEM/XEMについては過去記事等参照してください)
ラズベリー農家のすすめ/NEM Harvesting on Raspberry Pi 3 B
NEM – ビットコイン2.0 | Bitcoin日本語情報サイト

 

しばらく前にNEMの新しいデスクトップクライアントであるNANOWalletが発表になりましたね。
これまで使用していたスタンドアローンクライアントNISとNCCはフルノード版でブロックチェーンの情報すべてをダウンロードする必要がありましたが、NANOwalletは軽量クライアントのため起動が速いという利点があります。
そのほかアポスティーユなどの新機能もNANO Walletなら使用できるようです。
今後追加される新機能はNANO Walletへ、NCC/NISはスーパ―ノード運営やハーベストなどのネットワーク維持管理機能に特化させる、みたいになっていくのではないでしょうか。
NIS/NCCは使いにくい部分もあったのでNANOWalletに期待です。

ダウンロード

https://www.nem.io/install.htmlwww.nem.io
こちらからDesktop Clientをダウンロードします。
OSX, Windows, Linuxに互換性があるためどのOSを使用している場合でも同じソフトを使用します。

起動

Zipファイルを適当な場所に展開して
“start.html”をクリックすればデフォルトのブラウザで起動します。
f:id:Ocknamo_crypt:20161120132934p:plain
(raspberry pi3のデフォルトブラウザであるepiphanyではうまく動かないのでfirefoxなどを使用しましょう。)

ウォレットを新しく作成する場合

  1. メニューからsign upを選択
  2. とりあえずsimple walletを選択しフォームを入力します。(金庫の鍵みたいなものなのでパスワードは長めにしましょう)
  3. 一番下はMainnetを選択。
  4. 作成したらメニューからLOGINに移動。プルダウンメニューから開きたいウォレットを選んでパスを入れて開きます。

ウォレットをNCCからインポートする場合

すでにNCCでXEMを保有してて、同じウォレットをNANOWalletで使用したい場合。

NCCを起動して”右上の”設定メニューからExport for Litewalletを選択。
f:id:Ocknamo_crypt:20161120135611p:plain
f:id:Ocknamo_crypt:20161120135650p:plain
適当なところに保存します。
保存した拡張子が.jsonのファイルをわかりやすいところに移動。(NANOwalletのディレクトリの中とか)
次にNCCを閉じてNANOWalletを起動しLOGINからImportwalletを選択。先ほど作った.jsonファイルを開きます。
ロードが成功するとプルダウンメニュー内にウォレット名が表示されます。
これを選択してログイン(パスワードはNCCで使ってたやつ)
f:id:Ocknamo_crypt:20161120140428p:plain
するとアップグレードするように指示されるのでUpgradeWalletを選択。
f:id:Ocknamo_crypt:20161120135949p:plain
無事ログインできました。
f:id:Ocknamo_crypt:20161120140710p:plain

その他メモ

  1. BrainWalletは「パスワードとアカウント名さえわかればどこからでも入れるウォレット」,Private key walletは「秘密鍵と公開鍵がわかれば入れるウォレット(入れるのは当たり前だが)」かな? SimpleWalletはその場で秘密鍵を生成するタイプのexportファイルがないと入れないウォレットだと思われる。
  2. フルノードないのでローカルハーベストはできない。
  3. アポスティーユやってみたいけど手数料安くなるハードフォークまで待ったほうがいいかもしれません。(12月中かな?)

_______________________________

黄金虫ブログは寄付を募っています↓XEMでの寄付は以下のアドレスまで!
NCWX3R-KAOT4D-ITPEKG-ZX5SNG-ICKKGV-ZLVT2E-KKI6

BTC,CPトークンは以下までお願いします!
1MupdofmXC8vrRLLJQBKq6NLAp1sRmfAqt