googleフォトが有料になったのでファイルサーバを構築してみた

投稿者: | 1月 10, 2022

皆さんはスマホで撮った写真をどのようにしてますか?

私はスマホで撮った写真はGoogleフォトに保存していましたが、2021年5月から有料となったため保存するのをやめました。

そういえばGoogleフォトが有料化することが決まったが、イッチはどうするの?

このまま2021年6月以降に保存すると超過分はGoogleストレージに追加されるから、
お金かかるよ??

え、そうなの??
それじゃあスマホに貯めるしかないじゃん

それならファイルサーバを構築すればいいんじゃない?
外付けHDDとか購入すればすぐに構築できるし、外付けHDD購入すれば月額費用は電気代だけだからかなりお得だよ!!

サバくんがファイルサーバを構築すれば費用を抑えることができると教えてくれたため、現在稼働しているサーバーのラズパイ(Raspberry Pi)上ににファイルサーバを構築します。

1.背景

サバくんがファイルサーバを推していましたが、それには理由があります。
それはGoogleのストレージが高いことです。

実際のストレージ容量の価格は下記となっています。
※価格表は2021年1月1日付けのGoogle ONEを参照

容量 価格(年額)
100 GB ¥2,500
200 GB ¥3,800
2 TB ¥13,000

一方、外付けHDDは4TBで¥10,000以下で購入可能なため、サバくんは外付けHDDの購入を推してきました。

そのため、今回は以前紹介したラズパイ(Raspberry Pi)に外付けHDDを認識させて、ファイルサーバを構築していきます。

2.スペック

スペックは下記となっています。

・ハードウェア        Raspberry Pi3
・Distributor ID: Raspbian
・Description: Raspbian GNU/Linux 9.13 (stretch) ・Release: 9.13
・Codename: stretch
・外付けHDD: BUFFALO HD-NRLD-A (scsi) 4TB

今回使用したラズパイと外付けHDDは下記になります。


[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

KSY ケイエスワイ Raspberry Pi 3 Model B フルキット RASST3BFUL0162
価格:14520円(税込、送料別) (2022/1/1時点)


3.ファイルサーバ構築

今回は「samba」というソフトウェアでファイルサーバを構築していきます。

sambaは「ファイル共有をするための設定ができるソフトウェア」と認識すれば問題ないです。

3.1 インストール

まずは必要なモジュールをインストールしていきます。

$sudo apt -y install samba
$ smbd -V
Version 4.5.16-Debian

3.2 sambaの設定

次にsambaの設定をします。

sudo vim /etc/samba/smb.conf
#======================= Global Settings =======================
[global]
#下記の2行を追記
unix charset = UTF-8
dos charset = CP932
sudo vim /etc/samba/smb.conf
[homes]
   comment = Home Directories
   browseable = no
 
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   read only = no
 
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
   create mask = 0664
 
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
   directory mask = 0775
sudo vim /etc/samba/smb.conf
;最終行に追記してください
[NAS]
path = /mnt/NAS
read only = no
guest ok = Yes
force user = pi

3.3 外付けHDDの設定

次に外付けHDDの設定をします。

windowsやmacなどはPCにUSBケーブルを接続すればすぐに使用することは可能ですが、サーバー用途のOSでは簡単に認識することはできません。

そのため、PCの認識とフォーマットを行います。

3.3.1 外付けHDDの認識と設定

まずはPCからどのように認識しているかを確認します。

$sudo fdisk -lu
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 1B90BDF5-2A0B-410F-90C8-22F9703DD1B8

Device     Start        End    Sectors  Size Type
/dev/sda   1024 7814036479 7814035456  3.7T Microsoft basic data

上記のコマンドからPCに認識している容量は3.7TBであり、デバイス名が「/dev/sda1」であることがわかりました。
そのため、次に論理ディスクを作成していきます。

$sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
(情報出力)                                                                
Model: BUFFALO HD-NRLD-A (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Warning: failed to translate partition name
Number  Start  End     Size    File system  Name  Flags                   
 1      524kB  4001GB  4001GB  ntfs               msftdata

(parted) rm 1
(1の行を削除)                                                            
(parted) p
(1の行がなくなったことを確認)                                                                
Model: BUFFALO HD-NRLD-A (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted) quit                 

3.3.2 ディスクのフォーマット

次にフォーマットしていきます。

今回はWindowsとmac、AndroidやiPhoneからも接続することからntfsでフォーマットします。

$sudo apt install -y ntfs-3g
$sudo parted -a optimal /dev/sda mkpart primary ntfs 0% 100%
$sudo mkfs -t ntfs -Q -L NAS-ntfs /dev/sda1
Cluster size has been automatically set to 4096 bytes.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

3.4 マウントポイント作成とマウント

次にマウントポイントを作成します。

3.2のsambaで設定した「/mnt/NAS 」を作成します。

$sudo mkdir /mnt
$sudo mkdir /mnt/NAS

次に先程フォーマットしたHDDとマウントポイントを紐付けます。

今回の外付けHDDのデバイス名は「/dev/sda1」なので、このデバイス名と先程のマウントポイントを紐付けます。

$sudo mount /dev/sda1 /mnt/NAS

紐付けができたことを確認します。

$df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         28G  9.5G   17G   37% /
devtmpfs         457M     0  457M    0% /dev
tmpfs            462M     0  462M    0% /dev/shm
tmpfs            462M   47M  415M   11% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            462M     0  462M    0% /sys/fs/cgroup
/dev/mmcblk0p6    68M   23M   46M   33% /boot
tmpfs             93M  4.0K   93M    1% /run/user/1000
/dev/mmcblk0p5    30M  1.6M   27M    6% /media/pi/SETTINGS
/dev/sda1        3.7T  181M  3.7T    1% /mnt/NAS

最終行に紐付かれたことを確認しました。

これでひも付きは完了しましたが、ラズパイの電源を落としたりするとこの情報は消えて接続されなくなります。
そのため、ラズパイが再起動してもひも付きが継続するようにfstabに記入します。

まずは「/dev/sda1」の固有IDであるUUIDを確認します。

$sudo blkid
/dev/sda1: LABEL="NAS-ntfs" UUID="実際の値" TYPE="ntfs" PTTYPE="dos" PARTLABEL="primary" PARTUUID="2738dcbe-70e5-4ff4-bdf4-b2bc997bd0ea"

次にfstabの最終行に下記を記入します

$sudo vim /etc/fstab
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
UUID="bikidに記載されている値" /mnt/NAS ntfs-3g    defaults,nofail 0 0

上記が完了すれば問題ありませんが,念の為ラズパイを再起動して認識しているかを確認します。
下記のようにNASのマウントポイントが出力されていれば完了です。

$sudo reboot
再起動後
$df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         28G  9.5G   17G   37% /
devtmpfs         457M     0  457M    0% /dev
tmpfs            462M     0  462M    0% /dev/shm
tmpfs            462M   47M  415M   11% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            462M     0  462M    0% /sys/fs/cgroup
/dev/mmcblk0p6    68M   23M   46M   33% /boot
tmpfs             93M  4.0K   93M    1% /run/user/1000
/dev/mmcblk0p5    30M  1.6M   27M    6% /media/pi/SETTINGS
/dev/sda1        3.7T  181M  3.7T    1% /mnt/NAS

最後にユーザとパスワードを作成して完了です。

$sudo smbpasswd -a pi(ユーザ名)
(パスワード入力)

4. スマホとファイルサーバを接続

スマホとファイルサーバを接続するとはアプリを使用します。
接続するアプリは様々ありますが、私は「FE File Exploer」を使用しています。
このアプリは、画像や動画をファイルサーバに送信することができます。

Android版とiPhone版がありますので、ぜひアプリ取得してみてください。

5. さいごに

今回はファイルサーバの構築を記載しましたがいかがでしょうか。

Googleのファイルサービスを提示した上で高額と感じましたら、是非実践してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です