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

どうも、Tです。

先日ラズパイをインストールしました。引き続きNASとして使えるように、設定していきます。

ラズベリーパイ3にRaspberry Pi NOOBSでRaspbianをインストールする
どうも、Tです。 自宅NASの調子が悪く買い換えたかったのですが、高額になってしまうので、Raspberry PiをNASにすることに...
スポンサーリンク
アドセンス1

やりたいこと

今回やりたいことです。このNASは僕と嫁が一緒に使う家庭用NASです。

今日は1~4までを行い、バックアップは別記事でまとめます。

  1. 僕はbokuフォルダが使えるが、嫁は使えない。(bokuのパスワード認証)
  2. 嫁はyomeフォルダが使えるが、僕は使えない。(yomeのパスワード認証)
  3. 僕と嫁は、shareフォルダが使える。(パスワード認証なし)
  4. データの保存はMain HDDに行う。
  5. バックアップ用としてMain HDDの内容を1日1回Backup HDにrsyncで同期する。

使うもの

ラズパイ以外でパーツは、HDDとHDD USB接続ケースを購入しました。

センチュリー スライディング裸族 SATA6G CSDRU3B6G

HDDは外付けのUSB HDDケースでラズパイに接続します。

HDD設定

フォーマット

HDD確認

HDDが認識しているか確認します。今回は、下記の構成で行います。

  • /dev/sda:Main HDD
  • /dev/sdb:Backup HDD
pi@raspberrypi:~ $ sudo fdisk -l |grep /dev/sd
Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
/dev/sda1 2048 5860532223 5860530176 2.7T Microsoft basic data
Disk /dev/sdb: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
/dev/sdb1 2048 5860532223 5860530176 2.7T Microsoft basic data

パーティション作成

パーティションを作成します。同じように/dev/sdbもパーティションを作成します。

pi@raspberrypi:~ $ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): p
Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: EZRX-00MMMB0
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: 3F8C4EDD-DB0E-4334-AF59-A9D795803CD6

Command (m for help): n
Partition number (1-128, default 1):
First sector (34-5860533134, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-5860533134, default 5860533134):

Created a new partition 1 of type 'Linux filesystem' and of size 2.7 TiB.
Partition #1 contains a ntfs signature.

Do you want to remove the signature? [Y]es/[N]o: Y

The signature will be removed by a write command.

Command (m for help): p
Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: EZRX-00MMMB0
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: 3F8C4EDD-DB0E-4334-AF59-A9D795803CD6

Device Start End Sectors Size Type
/dev/sda1 2048 5860533134 5860531087 2.7T Linux filesystem

Filesystem/RAID signature on partition 1 will be wiped.

Command (m for help): w
The partition table has been altered.
Syncing disks.

ファイルシステム作成

ファイルシステムを作成します。/dev/sdb1にも同じように作成します。

pi@raspberrypi:~ $ sudo mkfs.ext4 /dev/sda1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 732566385 4k blocks and 183148544 inodes
Filesystem UUID: 4324b2dc-a3ab-48f4-847a-164c822c4b14
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

マウント設定

マウントポイント作成

mainとbackupのマウントポイントを作成します。

pi@raspberrypi:~ $ sudo mkdir -p /mnt/samba/main
pi@raspberrypi:~ $ sudo mkdir -p /mnt/samba/backup

UUID確認

パーティションのUUIDを確認しておきます。

pi@raspberrypi:~ $ sudo blkid /dev/sda1
/dev/sda1: UUID="4324b2dc-a3ab-48f4-847a-164c822c4b14" TYPE="ext4" PARTUUID="a5af4959-a507-da47-af8f-34ea4791a519"
pi@raspberrypi:~ $ sudo blkid /dev/sdb1
/dev/sdb1: UUID="e51d9052-70c3-4aef-b264-fed5530861b8" TYPE="ext4" PARTUUID="e1e4a78e-c5ca-5449-80a7-87f8924a0460"

fstabを設定

/etc/fstabを開いて作成したマウントポイントにマウントする設定を行います。

HDDがない場合でもOSは起動するようにオプションに「nofail」を設定しておきます。

pi@raspberrypi:/ $ sudo vi /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p6 /boot vfat defaults 0 2
/dev/mmcblk0p7 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
UUID=4324b2dc-a3ab-48f4-847a-164c822c4b14 /mnt/samba/main ext4 nofail 0 0
UUID=e51d9052-70c3-4aef-b264-fed5530861b8 /mnt/samba/backup ext4 nofail 0 0

確認

fstabの設定後に再起動します。

pi@raspberrypi:/ $ sudo reboot

再起動後にmountコマンドで、設定したディスクがマウントされていることを確認します。

pi@raspberrypi:/ $ mount
--割愛--
/dev/sdb1 on /mnt/samba/main type ext4 (rw,relatime)
/dev/sda1 on /mnt/samba/backup type ext4 (rw,relatime)
--割愛--

NAS設定

共通設定

sambaインストール

apt-getコマンドをsambaをインストールします。

pi@raspberrypi:/ $ sudo apt-get install samba

途中下記のようなメッセージが表示される場合は、「いいえ」を選択します。

smbdが起動していることを確認します。

pi@raspberrypi:/ $ systemctl status smbd
● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-06-23 16:07:16 JST; 23min ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 1268 (smbd)
Status: "smbd: ready to serve connections..."
Memory: 10.4M
CGroup: /system.slice/smbd.service
tq1268 /usr/sbin/smbd --foreground --no-process-group
tq1270 /usr/sbin/smbd --foreground --no-process-group
tq1271 /usr/sbin/smbd --foreground --no-process-group
mq1273 /usr/sbin/smbd --foreground --no-process-group

6月 23 16:07:13 raspberrypi systemd[1]: Starting Samba SMB Daemon...
6月 23 16:07:16 raspberrypi systemd[1]: Started Samba SMB Daemon.

sambaユーザー登録

Linuxユーザー追加(useradd)とsambaユーザーの登録(pdbedit)でbokuを追加します。

同じ方法でyome文も追加しておきます。

  • sambaユーザー一覧:pdbedit -L
  • sambaユーザー登録:pdbedit -a <user name>
  • sambaユーザー削除:pdbedit -x <user name>
#ユーザーを作成
pi@raspberrypi:/home $ sudo useradd boku

#グループを作成
pi@raspberrypi:~ $ sudo groupadd myhome

#ユーザーにグループを追加
pi@raspberrypi:~ $ sudo usermod -aG myhome boku

#samba用ユーザー登録
pi@raspberrypi:/home $ sudo pdbedit -a boku
new password:
retype new password:
Unix username: boku
NT username:
Account Flags: [U ]
User SID: S-1-5-21-3929640797-2966316528-1249334999-1000
Primary Group SID: S-1-5-21-3929640797-2966316528-1249334999-513
Full Name:
Home Directory: \\raspberrypi\boku
HomeDir Drive:
Logon Script:
Profile Path: \\raspberrypi\boku\profile
Domain: RASPBERRYPI
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 火, 23 6月 2020 17:58:13 JST
Password can change: 火, 23 6月 2020 17:58:13 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

共有フォルダ作成

sambaで共有するフォルダをマウントした領域の中に作成しておきます。

#共有用フォルダ作成
pi@raspberrypi:/ $ sudo mkdir -p /mnt/samba/main/share
pi@raspberrypi:/ $ sudo mkdir -p /mnt/samba/main/boku
pi@raspberrypi:/ $ sudo mkdir -p /mnt/samba/main/yome

#共有フォルダの所有権変更
pi@raspberrypi:~ $ sudo chgrp myhome /mnt/samba/main/share
pi@raspberrypi:~ $ sudo chown boku:boku /mnt/samba/main/boku
pi@raspberrypi:~ $ sudo chown yome:yome /mnt/samba/main/yome

#フォルダのパーミッション変更
pi@raspberrypi:~ $ sudo chmod 775 /mnt/samba/main/share/
pi@raspberrypi:~ $ sudo chmod 770 /mnt/samba/main/boku/
pi@raspberrypi:~ $ sudo chmod 770 /mnt/samba/main/yome/

globalセッション設定

下記の設定を追加します。

pi@raspberrypi:/ $ sudo vi /etc/samba/smb.conf

[global]
## Add Config ##
#Windowsマシンとの通信時に使用する文字コードの指定
dos charset = CP932

NAS設定

shareフォルダ共有設定

pi@raspberrypi:/ $ sudo vi /etc/samba/smb.conf

[share]
 #コメント・説明
 comment = 家族共有フォルダ
 #共有先パス
 path = /mnt/samba/main/share
 #書き込み可否
 writable = yes
 #共有一覧への表示
 browseable = yes
 #許可ユーザー
 valid user = @myhome

bokuフォルダ共有設定

pi@raspberrypi:/ $ sudo vi /etc/samba/smb.conf
[boku]
 #コメント・説明
 comment = boku専用
 #共有先パス
 path = /mnt/samba/main/boku
 #書き込み可否
 writable = yes
 #共有一覧への表示
 browseable = yes
 #許可ユーザー
 valid user = boku

yomeフォルダ共有設定

pi@raspberrypi:/ $ sudo vi /etc/samba/smb.conf

[yome]
 #コメント・説明
 comment = yome専用
 #共有先パス
 path = /mnt/samba/main/yome
 #書き込み可否
 writable = yes
 #共有一覧への表示
 browseable = yes
 #許可ユーザー
 valid user = yome

使ってみる

これでラズパイにアクセスすると共有フォルダをして表示され新しいフォルダーなども作成することができるようになります。

参考

Raspberry Pi 3 ModelB で外付けHDDをファイルサーバー化する - Qiita
目的Raspberry Pi 3 ModelBにマウントした外付けHDDを外部PCからR/Wできるようにファイルサーバー化する環境Raspberry Pi 3 ModelB外付けHDD:EC…
Raspberry Pi3で外付けHDDをマウントする - 新しいノートブック
RaspberryでNASを構築するため、外付けHDDをマウントします。 今回はこちらのHDDを使用しました。 I-O DATA HDD 外付けハードディスク 4TB USB3.0 HDDの接続 外付けHDDをUSB接続し認識されているか確認。 # ディスクをリスト表示 sudo fdisk -l | grep /de...
https://renoji.com/IT.php?Contents=OS_CentOS/Server_File/Samba_UserRegistration.html

まとめ

アクセス速度などは、おいおい計っていこうかと思います。

スポンサーリンク
アドセンス1
アドセンス1
ブログランキング・にほんブログ村へ

シェアする

フォローする