[RasPi]Sambaで共有ディレクトリの作成

RaspberryPiのUSBポートが余っている。MicroSDカードとリーダーが余っている。
なので、有り合わせの部材でUSBメモリのネットワーク共有の設定をしてみます。
f:id:mukachan:20180722194029j:plain

ストレージ(USBメモリ)の設定

まずはUSBでSDカードが認識出来ているか確認

sudo fdisk -l
 中略
Disk /dev/sdc: 60.1 GiB, 64490569728 bytes, 125958144 sectors
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: 0x393addcc

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdc1        8192     93236     85045 41.5M  e W95 FAT16 (LBA)
/dev/sdc2       94208 125958143 125863936   60G  7 HPFS/NTFS/exFAT

やはり"/dev/sdc"で認識している。"/dev/sda"、"/dev/sdb"はRAIDですでに利用済み。
なので外部ストレージ設定の時と同様にfdiskで単一のパーテーションを作成

sudo fdisk /dev/sdc
Disk /dev/sdc: 60.1 GiB, 64490569728 bytes, 125958144 sectors
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: 0x393addcc

Device     Boot Start       End   Sectors  Size Id Type
/dev/sdc1        2048 125958143 125956096 60.1G 83 Linux

次は初期化かけます。

sudo mkfs.ext4 /dev/sdc1
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 15744512 4k blocks and 3940352 inodes
Filesystem UUID: 9598afcc-84b0-4f1f-a466-3995afb646c5
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

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

これで綺麗に下ごしらえが完了



マウントとディレクトリ準備

早速マウント先を作成

sudo mkdir /mnt/usbmem

usbmemという場所を作りました、次はfstabの編集。

sudo vi /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/md0        /               ext4    defaults,noatime  0       2
/dev/sdc1       /mnt/usbmem     ext4    defaults          0       0
#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
#/dev/md0        /mnt/md0        ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

4行目に/dev/sdcを追記
そしてmountコマンドでマウントします。

sudo mount -a

マウント出来たか確認します。

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            428M     0  428M   0% /dev
tmpfs            88M  2.7M   85M   4% /run
/dev/md0         15G  4.5G  9.5G  32% /
tmpfs           438M     0  438M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           438M     0  438M   0% /sys/fs/cgroup
/dev/mmcblk0p1   43M   34M  9.5M  78% /boot
/dev/sdc1        59G   53M   56G   1% /mnt/usbmem
tmpfs            88M     0   88M   0% /run/user/109
tmpfs            88M     0   88M   0% /run/user/1001

こんな感じで”/mnt/usbmem”として読み書き出来るディレクトリが出来ました。 あとは適当に自由にアクセスできるディレクトリ作成。

sudo mkdir /mnt/usbmem/share
sudo chmod 777 /mnt/usbmem/share



sambaのインストール

今回必要になるsambaをインストール

sudo apt-get -y install samba
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 samba : Depends: python-samba but it is not going to be installed
         Depends: samba-common (= 2:4.2.14+dfsg-0+deb8u9) but 2:4.5.12+dfsg-2+deb9u2 is to be installed
         Depends: samba-common-bin (= 2:4.2.14+dfsg-0+deb8u9) but it is not going to be installed
         Depends: samba-dsdb-modules but it is not going to be installed
         Depends: samba-libs (= 2:4.2.14+dfsg-0+deb8u9) but 2:4.5.12+dfsg-2+deb9u2 is to be installed
         Recommends: attr but it is not going to be installed
         Recommends: samba-vfs-modules but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

これだけ。



設定ファイルの修正

共有先ディレクトリやアクセス権などの設定を入れます。

sudo vi /etc/samba/smb.conf
 中略
#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = {Windowsワークグループの名前}

 中略
[share]
  comment = share
  path = /mnt/usbmem/share
  public = yes
  read only = no
  browsable = yes
  force user = {ログインユーザ名}

Windowsのネットワークに表示出来るように[global]セクションにワークグループ名を設定。
家庭内のクローズドネットワークなのでセキュリティは無視してファイル末尾に共有設定だけ追記



Sambaサービスの起動

とりあえずサービス起動してWindowsAndroidからアクセス出来るか確認

sudo service samba start
Failed to start samba.service: Unit samba.service is masked.

なんかエラー出た。のでgoogle先生に教えてもらう。

sudo service smbd start
sudo service nmbd start

どうも個別に子プロセス起動する必要があるらしい。
スマホからもWindowsからもアクセス出来たので良しと。