Samba4をCent OS 7でHP Proliant Microserverに構築する

サブタイトル: Mac OS XでもSMB2/3で接続したい！

SMB 1.0でつないでいたけど、遅い上にたまに`項目””が使用中なため、操作は完了できません`が出てきて悲しくなるので、SMB2/3を試したくなった。

## 事前調査

基本的に、以下の記事で状況などを調査。

- [その知識、ホントに正しい？ Windowsにまつわる都市伝説（23）：ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか？（前編） - ＠IT](http://www.atmarkit.co.jp/ait/articles/1501/19/news092.html)
- [その知識、ホントに正しい？ Windowsにまつわる都市伝説（24）：ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか？（後編） - ＠IT](http://www.atmarkit.co.jp/ait/articles/1502/02/news021.html)
- [その知識、ホントに正しい？ Windowsにまつわる都市伝説（25）：Linuxはサンバ（Samba）で踊る――WindowsとLinuxのファイル共有のいま (1/2) - ＠IT](http://www.atmarkit.co.jp/ait/articles/1502/13/news042.html)
- [その知識、ホントに正しい？ Windowsにまつわる都市伝説（26）：SMBに乗り換えたMac――WindowsとMacのファイル共有のいま（前編） (1/3) - ＠IT](http://www.atmarkit.co.jp/ait/articles/1502/27/news051.html)
- [その知識、ホントに正しい？ Windowsにまつわる都市伝説（27）：SMBに乗り換えたMac――WindowsとMacのファイル共有のいま（後編） (1/2) - ＠IT](http://www.atmarkit.co.jp/ait/articles/1503/17/news032.html)

### サーバー側

>　2011年8月リリースのSamba 3.6でSMB 2.0への対応が実験的に追加されました。また、2012年12月にリリースされたSamba 4からはSMB 2.1やSMB 3.0に正式に対応し、

[その知識、ホントに正しい？ Windowsにまつわる都市伝説（25）：Linuxはサンバ（Samba）で踊る――WindowsとLinuxのファイル共有のいま (1/2) - ＠IT](http://www.atmarkit.co.jp/ait/articles/1502/13/news042.html)

ということなので、SMB2/3を使うにはSamba 4を使う必要あり。

### クライアント側

> MacのSMBクライアント機能は、OS X 10.9 MavericksでSMB 2.0およびSMB 2.1に、OS X 10.10 YosemiteでSMB 3.0およびSMB 3.02に対応しました。

[その知識、ホントに正しい？ Windowsにまつわる都市伝説（27）：SMBに乗り換えたMac――WindowsとMacのファイル共有のいま（後編） (1/2) - ＠IT](http://www.atmarkit.co.jp/ait/articles/1503/17/news032.html)

ということなので、Client側は最新のOSXならSMB3が使える。


## 実作業

実機でやるのは面倒なのでVirtualBoxで作業する。

### VirtualBoxでUSBからブートできない！

VirtualBoxみたいな仮想化マネージャから直接USBブートはできない。仮想化マネージャは汎用性を上げるため、比較的古い枯れたチップセットをエミュレートしているため。なので、Plop Boot Managerをlive CDとして起動させて、そこからUSBをターゲットにしてブートさせる。

ネットワークはブリッジにして、ホストと同じネットワークに存在するようにする。

### OSインストール

サーバーOSはなんかCentOSのほうが日本語の情報が多い気がしたので、CentOSにしてみる。

- [Ubuntu13.10をUSBメモリにインストールする – UbuntuによるEco Linuxサーバ構築記](http://eco.senritu.net/ubuntu13_on_usb_flash_memory/)

CentOS 7のネットワーク設定はこちらを参考に。とはいえ、実機につないだらネットワークデバイスが変わっちゃうんだけど。

- [CentOS 7 ネットワーク設定 - eTuts+ Server Tutorial](http://server.etutsplus.com/centos-7-network-configuration/)

### Samba4

yumでインストールするとADが動かないらしいんだけど使わないので気にせずyumからインストール。
Samba4の設定は結局[smb.conf](http://www.samba.gr.jp/project/translation/4.0/htmldocs/manpages/smb.conf.5.html)が一番参考になった。設定してみた系の記事は余計な設定が入っててよくないけど、そのなかではこれが一番参考になった。

- [Samba4を「ふつうに」使おう！(2015/08/08 OSC 2015 Kansai@Kyoto)](http://www.slideshare.net/takahashimotonobu/samba420150809-osc-2015-kansaikyoto)

おそらく最小設定はこんな感じ。

```/etc/samba/smb.conf
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        log file = /var/log/samba/log.%m
        max log size = 50
        security = user
        passdb backend = tdbsam
        dns proxy = no
        load printers = no
        dos charset = CP932
        unix charset = UTF-8
        map to guest = Bad User
[share]
        comment = Shared Directories
        path = /tmp/share
        guest ok = yes
        writable = yes
```


#### samba用ユーザー作成

システムのユーザーである必要はある。

```
pdbedit --create --user=test-user
```


### クライアント側から確認

Finderで接続して確認。

```
$ smbutil statshares -a

==================================================================================================
SHARE                         ATTRIBUTE TYPE                VALUE
==================================================================================================
share
                              SERVER_NAME                   192.168.xxx.xxx
                              USER_ID                       501
                              SMB_NEGOTIATE                 AUTO_NEGOTIATE
                              SMB_VERSION                   SMB_3.0
                              SMB_SHARE_TYPE                DISK
                              SIGNING_SUPPORTED             TRUE
                              EXTENDED_SECURITY_SUPPORTED   TRUE
                              LARGE_FILE_SUPPORTED          TRUE
                              FILE_IDS_SUPPORTED            TRUE
                              DFS_SUPPORTED                 TRUE
                              MULTI_CREDIT_SUPPORTED        TRUE
                              ENCRYPTION_SUPPORTED          TRUE

--------------------------------------------------------------------------------------------------
```

SMB_3.0になってました。よかったですね。

### HP Proliant MicroserverでCentOSが起動しない！

SambaとAvahiの設定が一通りできて実機に刺して確認。が、ブートでこけて起動しない！
いろいろ調べてみるとCent OS7 7.2.1511 でAMD　Neoプロセッサーだと起動でクラッシュするようだ。

- [tire.retire: HP ProLiant MicroServerでカーネルバージョン 3.10.0-327.3.1でパニック](http://tire-retire.blogspot.jp/2015/12/hp-proliant-microserver-3100-32731.html)
- [Kernel 3.10.0-327 issue on AMD Neo processor | Arrfab's Blog](https://arrfab.net/posts/2015/Dec/15/kernel-3100-327-issue-on-amd-neo-processor/)
- [0009860: 3.10.0-327.el7 crashes on boot - CentOS Bug Tracker](https://bugs.centos.org/view.php?id=9860)

latestの3.10.0-327.10.1.el7.x86_64 x86_64だと直っているみたいだけど、このバージョンのままとりあえず直すなら、`GRUB_CMDLINE_LINUX`に`initcall_blacklist=clocksource_done_booting`を追加すれば起動する。

とりあえずOK。