外付けHDDをケースに入れて、

必要な時にパソコンに繋いでデータを移動するのがすごいめんどくさいです。

 

そこで、自宅にラズパイがあることですし、NASを構築しようと思いました。

今回はその手順を何とか確立できたので今後何台もNASを作成する際の

参考に手順を公開したいと思います。

 

 

用意する物

Raspberry Pi一式(ラズパイ+電源+OS入りSDカード)

USBメモリ もしくは USBで接続している外付けHDD

 

 

前提条件

ラズパイは基本的にupdateupgradeが出来ていれば良いと思います。

 

 

Sambaをインストール

共有フォルダの設定のために、Samba をインストールします。

ubuntu@ubuntu:~$ sudo apt install samba

 

Versionの確認

ubuntu@ubuntu:~$ samba -V
Version 4.11.6-Ubuntu

 

Sambaが起動しているかsystemctl status smbdコマンドで確認します。

Active項目がactive (running)になっていれば起動しています。

ubuntu@ubuntu:~$ systemctl status smbd

● smbd.service - Samba SMB Daemon
     Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-08 14:14:17 UTC; 4 days ago
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)
   Main PID: 1761 (smbd)
     Status: "smbd: ready to serve connections..."
      Tasks: 4 (limit: 1827)
     CGroup: /system.slice/smbd.service
             ├─1761 /usr/sbin/smbd --foreground --no-process-group
             ├─1765 /usr/sbin/smbd --foreground --no-process-group
             ├─1766 /usr/sbin/smbd --foreground --no-process-group
             └─1767 /usr/sbin/smbd --foreground --no-process-group

Mar 08 14:14:16 ubuntu systemd[1]: Starting Samba SMB Daemon...
Mar 08 14:14:17 ubuntu systemd[1]: Started Samba SMB Daemon.

 

他にもインストール

# exfatをマウントできるように
ubuntu@ubuntu:~$ sudo apt -y install exfat-fuse exfat-utils

 

 

Samba用ユーザーを作成する

Samba用のユーザーをUbuntu側に作ります。

# ユーザーを作成
ubuntu@ubuntu:~$ sudo useradd smbu1

 

pdbeditでSamba側にユーザーを登録します。

# samba用ユーザーに登録
ubuntu@ubuntu:~$ sudo pdbedit -a smbu1
new password:
retype new password:
Unix username:        smbu1
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-588354193-3331489712-4072529787-1000
Primary Group SID:    S-1-5-21-588354193-3331489712-4072529787-513
Full Name:            
Home Directory:       \\ubuntu\smbu1
HomeDir Drive:        
Logon Script:         
Profile Path:         \\ubuntu\smbu1\profile
Domain:               UBUNTU
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    Sat, 13 Mar 2021 00:07:01 UTC
Password can change:  Sat, 13 Mar 2021 00:07:01 UTC
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

 

登録されているか確認します。

# samba用ユーザー一覧の確認
ubuntu@ubuntu:~$ sudo pdbedit -L
smbu1:1001:

 

 

USBメモリやHDDをマウントする

fdiskコマンドで接続しているストレージを確認します。

partedコマンドでもよいです

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 115.94 GiB, 124465971200 bytes, 243097600 sectors
Disk model: FLASH DRIVE     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x24236e8c

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1          63 243097599 243097537 115.9G  7 HPFS/NTFS/exFAT

 

この中でUSBメモリはsda1になるので、これをマウントします。

手順は先にフォルダを作成して、作成したフォルダにマウントします。

# フォルダを作成
# pオプションは書いたフォルダが見つからなかったらエラーにせず作成する
ubuntu@ubuntu:~$ sudo mkdir /media/smbu1/shareusb -p

#USBメモリをマウントする(読み書きできるように権限もつける)
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /media/smbu1/shareusb/ --types=exfat --options=rw

# USBメモリにファイルが入ってたらデータが表示できるか確認する
ubuntu@ubuntu:~$ ls /media/smbu1/shareusb

 

 

権限設定

フォルダに権限を追加します。

ubuntu@ubuntu:~$ sudo chmod 770 /media/smbu1/shareusb/

 

フォルダ所有権を変更します。

# フォルダの所有権を作成したユーザーに変更
ubuntu@ubuntu:~$ sudo chown smbu1 /media/smbu1/

 

 

 

shareフォルダ共有設定

smb.confに追記します。

ubuntu@ubuntu:~$ sudo vim /etc/samba/smb.conf 

# 以下をファイルの最終行に追記する
[ushare]
comment = USBの共有フォルダ
path = /media/smbu1/shareusb
writable = yes
browseable = yes
valid user = smbu1
create mode = 0777
directory mode = 0777

 

 

Sambaを再起動

# Sambaの再起動
ubuntu@ubuntu:~$ sudo systemctl restart smbd
# 次から自動起動するように設定
ubuntu@ubuntu:~$ sudo systemctl enable smbd

 

 

Macから見てみる

Macのネットワークタブから先ほど設定した共有フォルダ名を選択し、

ユーザー名、パスワードを入力してアクセスするとUSBメモリに入っているデータに

アクセスすることができます。

 

 

自動でマウントする設定

このままの設定だと、ラズパイを起動するたびにマウントしないといけないので、

自動でマウントしてくれる設定を追加します。

自動マウント設定は fstabに追記します。

# UUIDを確認する
ubuntu@ubuntu:~$ sudo blkid
/dev/sda1: LABEL="USB128" UUID="ACAC-7890" TYPE="exfat" PARTUUID="24236e8c-01"

# fstabの最終行に追記する
ubuntu@ubuntu:~$ sudo vim /etc/fstab
〜
UUID=ACAC-7890 /media/smbu1/shareusb exfat defaults 0 0

これで再起動して共有フォルダにアクセスできれば完了です。

 

 

読み込みは出来るが書き込みできない場合

Macから読み込みできるが、ファイルを書き込もうとしたらできませんでした。

 

色々参考サイトを巡っていたら「unix extensions」という設定をoffにすることで

問題を解決できそうなことが分かったため、設定を追記しました。

unix extensions = no

この1文をsmb.confの共有フォルダ部分に追記します。

 

ubuntu@ubuntu:~$ sudo vim /etc/samba/smb.conf 

[ushare]
comment = USBの共有フォルダ
path = /media/smbu1/shareusb
unix extensions = no
writable = yes
browseable = yes
valid user = smbu1
create mode = 0777
directory mode = 0777

 

これで共有サーバが完成しました。

やることはそこまで難しくないですが、多少手こずりました。

その分達成感があったので満足です!

これで重い外付けHDDを移動させることなくデータをポイポイ移動できますね。

 

 

参考

【Ubuntu】2TB超のHDDを増設し,SambaでWindowsとファイル共有

Raspberry Piで家庭用NAS(Sambaサーバー)を作る

Ubuntuでファイルサーバーをたてる(Samba)

Ubuntu server 18.04Samba

exfatの外付けHDDをSambaで共有 (Ubuntu Server, 読み取り専用)

Ubuntu Sambaではまったことメモ

smb.conf — Samba の設定ファイル