その2 samba の構築
マウントの説明と、samba での NAS の構築までです。
Linux のファルシステムは ext4 というものが使用されていて、Windows の NTFS とは違うため、 そのままでは読み書きできません。
「俺は Linux で生きていく!」という方は、素直に ext4 でフォーマットしても良いのでしょうが、 普通の方は「いやーー Windows でも扱えた方がいいよ」と思う方が多いと思います。 そこで、ntfs-3g というものをインストールします。
解説はここです。 NTFS-3G (日本語)
[ntaka@alarm ~]$ sudo pacman -S ntfs-3g
早速、hummingboard へ USB-HDD を接続してみましょう。 では、まずはどのようになっているか?を lsblk コマンドで確認してみます。
[ntaka@alarm ~]$ lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda `-sda1 ntfs 56F62DECF62DCD55 mmcblk0 `-mmcblk0p1 ext4 087f889f-4a13-4e03-976f-ddc9ff58aaf3 /
もし、複数のパーティションがあるのならば、sda2, sda3・・・と言う具合になり、 複数の USB-HDD がある場合 sdb, sdc となります。
それでですね、Linux の場合、接続したからといってすぐにアクセスすることはできません。 Linux では、ディレクトリにデバイスをマウントさせることで、そのデバイスへファイル操作できるようになります。
まずは、マウントする場所を作ります。ディレクトリ名は好きに決めて良いですが、今回は usb としますね。
[ntaka@alarm ~]$ sudo mkdir /mnt/usb
次に、sda1 を先ほどのディレクトリ /mnt/usb へマウントさせてみます。
[ntaka@alarm ~]$ sudo mount /dev/sda1 /mnt/usb
はい、これで OK です! 早速、中身を見てみましょうか・・・
[ntaka@alarm ~]$ ls -l /mnt/usb total 174728 -rwxrwxrwx 2 root root 15772587 Dec 26 2011 Softly As In A Morning Sunrise.mp3 drwxrwxrwx 1 root root 0 Dec 30 13:17 System Volume Information -rwxrwxrwx 1 root root 153405080 Nov 24 23:25 video.mp4 -rwxrwxrwx 2 root root 9739202 Dec 26 2011 ?????????????????????????????????.mp3
あれ?? ?????????????????????????????????.mp3 ってなに?!
あやや・・・文字化けしてます。
さすが Linux・・・一筋縄ではいかないようですねw
まず、PuTTY の文字コードを確認してください。 もし、UTF-8 でなかったら UTF-8 へ変更しておいてください。
おもむろに .bashrc を編集します。
[ntaka@alarm ~]$ sudo nano -w ~/.bashrc
# # ~/.bashrc # # If not running interactively, don't do anything [[ $- != *i* ]] && return alias ls='ls --color=auto' PS1='[\u@\h \W]\$ '
で、alias ls='ls --color=auto' を以下のように修正します。 ちなみに alias というのは、Windows でいうショートカットみたいなものかと思います。 この場合は ls とタイプしたら ls --color=auto に置き換えるということです。
# # ~/.bashrc # # If not running interactively, don't do anything [[ $- != *i* ]] && return alias ls='ls --color=auto --show-control-chars' PS1='[\u@\h \W]\$ '
設定を反映させます。
[ntaka@alarm ~]$ source .bashrc
早速確認してみましょう。
[ntaka@alarm ~]$ ls -l /mnt/usb total 174728 -rwxrwxrwx 2 root root 15772587 Dec 26 2011 Softly As In A Morning Sunrise.mp3 drwxrwxrwx 1 root root 0 Dec 30 13:17 System Volume Information -rwxrwxrwx 1 root root 153405080 Nov 24 23:25 video.mp4 -rwxrwxrwx 2 root root 9739202 Dec 26 2011 シング・シング・シング.mp3
正常に表示されています。
マウントしたデバイスを取り外したい時は、アンマウントです。
[ntaka@alarm ~]$ sudo umount /dev/sda1
これで、OKです。ちなみに Windows 同様にマウント先に cd でいたり、 何か操作中であるとアンマウントできませんので、 注意が必要です。
もちろん自動化できますが、/etc/fstab というファイルを編集する必要があります。
詳細は
fstab (日本語)
[ntaka@alarm ~]$ sudo nano -w /etc/fstab
# # /etc/fstab: static file system information # # <file system> <dir> <type> <options> <dump> <pass>
これを以下のように設定します。
# # /etc/fstab: static file system information # # <file system> <dir> <type> <options> <dump> <pass> /dev/sda1 /mnt/usb ntfs-3g defaults,noatime,nofail 0 0
リブートしてみて、きちんとマウントできているかを確認してください。
ようやくですが、本題である samba をインストールします。毎度おなじみの pacman ですね。
samba の詳細は・・・
Samba (日本語)
[ntaka@alarm ~]$ sudo pacman -S samba
基本、説明書(Samba (日本語)) 通り設定していけば OK なのですが、不必要な項目が多すぎますので、 新規に作成した方が楽です。
また、設定の詳細についてはこの方のホームページ Samba3で一般的なファイルサーバー構築完全版 - smb.conf設定 p.2 にわかりやすい説明がありました。 何をしているのか興味がある方は一度ご覧になると勉強になるでしょう。
新規編集を開始します。 [ntaka@alarm ~]$ sudo nano -w /etc/samba/smb.conf
で、以下をそのままコピペしてください。 SSH は楽で良いですね・・・
[global] max protocol = SMB2 workgroup = WORKGROUP server string = Samba Server hosts allow = 192.168. load printers = no log file = /var/log/samba/%m.log max log size = 50 dns proxy = no unix charset = UTF-8 dos charset = CP932 security = user guest account = nobody map to guest = Bad User [data] comment = HB Archlinux path = /mnt/usb guest ok = no valid users = smbuser browseable = yes read only = no writable = yes printable = no create mask = 0777 directory mask = 0777
ポイントを絞って説明すると以下のようになります。
samba2.0 を使用することを設定します。これで早くなるらしいのですが、効果は?w ちなみに、Windows Vista 以降が samba2.0 に対応しています。 もし、あなたの WIndows のバージョンが XP 以前なら、 この行はコメントアウトするか、削除してください。
アクセス制限をかけます。この設定では 192.168 で始まる IPアドレスを持つマシンからしか接続を許可しません。 ご自身の環境に合わせる必要があります。
[] で始まるところから共有設定となります。また、[]内の名前は任意で、Windows 側から見える共有名となります。 [data] とすれば、data という名前で Windows 側から見えると言うことです。
共有する linux 側のディレクトリです。
アクセスを許可する Linux ユーザです。これは任意ですが、説明のため smbuser とします。
次に、samba 用のユーザを追加します。 ユーザ名は何でも良いですが、ここでは smbuser とします。
smbuser を追加 [ntaka@alarm ~]$ sudo useradd -m smbuser smbuser のパスワードを設定する(これは Linux のパスワードです) [ntaka@alarm ~]$ sudo passwd smbuser
先ほどのユーザを samba に登録します。
[ntaka@alarm ~]$ sudo pdbedit -a -u smbuser new password: ← パスワードの入力が求められます。これが、接続時のパスワードとなります。 retype new password: Unix username: smbuser NT username: Account Flags: [U ] User SID: S-1-5-21-1699525598-627192037-2149346523-1000 Primary Group SID: S-1-5-21-1699525598-627192037-2149346523-513 Full Name: Home Directory: \\alarm\smbuser HomeDir Drive: Logon Script: Profile Path: \\alarm\smbuser\profile Domain: ALARM Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: Tue, 30 Dec 2014 17:55:59 JST Password can change: Tue, 30 Dec 2014 17:55:59 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
デーモンをスタートします。
[ntaka@alarm ~]$ sudo systemctl start smbd nmbd
Windows から接続できるかのテストをします。
エクスプローラーに hummingboard の IPアドレスを打ち込みます。
\\192.168.24.62
先ほどのユーザ名 samba パスワードを入力すれば接続できるはずです。
アクセスできたら永続化しましょう。
[ntaka@alarm ~]$ sudo systemctl enable smbd nmbd
さてさて、これで Windows からネット経由でアクセスできるようになったわけです。 「NAS ができたぞ!!」とお喜びの所悪いのですが、非常に残念なお知らせがあります。
くそ遅いんです!!w
試しに、大きめのファイルを転送してみてください。その遅さに唖然とするでしょう・・・
まあ、原因は、USB 接続な為です。ほんと全然スピードでませんわ・・・NTFS から ext4 へ変更もしてみたのですが、 「せいぜい 20[MiB/S] 程度かなぁ?」という感じです。 ちなみに、サブ PC にインストールした Arch の samba では SATA 接続ですが 50[MiB/S]位は普通にでますので、 USB 接続ってのが致命的なようです。
というわけで、この手のボード PC で USB 接続 の HDD を用いた NAS の構築はナンセンスですw
初回に大量のメディアをコピーしたかったら、素直に USB3.0 で Windows の PC へ繋いで、 コピーした方が確実に早いです。 それでもって、ちまちま新しいファイルをコピーするのに samba を使えば良いと思います。 なんで、NTFS のマウントを最初に行ったわけです。