資金が潤沢でない貧乏学生にとって、OSの費用は非常に痛い。少しでもケチる・・・もとい節約するためにLinuxを用いた。今回はUbuntu server 12.04.2 + samba環境で構築する。
※Linuxはよく知らないため誤りがあるかと思います。後学のためにも、報告していただけるとうれしいです。
この記事は「ソフト編」である。前編扱いの「ハード編」もご覧いただけるとありがたい。
Ubuntuのインストール
基本設定
ホスト名:NASユーザ:adm
パスワード:abcd
パーティション
HDDを丸ごとデータ領域に使いたいので、OSはUSBメモリにインストールした。HDDには /share というマウントポイントを作成し、全領域を共有に使う。※partedの結果 Model: ATA WDC WD30EFRX-68A (scsi) Disk /dev/sda: 3001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 3001GB 3001GB ext4 Samba-directory Model: BUFFALO USB Flash Disk (scsi) Disk /dev/sdb: 8167MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB fat32 boot 2 99.6MB 6440MB 6341MB ext4 3 6440MB 8166MB 1726MB linux-swap(v1)
その他
鬼門であるNICも認識されたようでDHCPでインストールが進んだ。CDドライブを本体より抜いて完了。
DHCPから固定IPに変更する
$ sudo nano /etc/network/interfaces 例 auto eth0 iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 dns-nameservers 192.168.11.1 $ sudo /etc/init.d/networking restart例として192.168.11.xとしているが、Buffalo製のルータは使用していない。
余談
これで設定も終わり、アップデートをしようとしたらFailed to fetchというエラーが出た。調べるとどうもDNS関連でエラーがでてることがわかった。interfacesの設定を見返すと、dns-nameserversのところがdns-serverになっていた。これを修正したら無事にパスした。
パッケージの更新
$ sudo apt-get update $ sudo apt-get upgrade
Realtek NICの固有問題
ASUS C60M1-IはRealtek 8111FなるNICが採用されている。このNICだと誤ったドライバがロードされてしまい、gigabit通信が出来ない場合があるそうだ。NASに使うには大きな問題である。ただ誤ったドライバでも動くには動く。正しいドライバはr8168である。r8169のままでは性能が引き出せない。両者の違いはPCIかPCIe用かであるそうだ。
- 参考
- How to Get Gigabit Speeds from RTL8111/8168B PCI Express Gigabit Ethernet controller on Ubuntu Linux
- トピック - realtek社のLANドライバ(PCIe版)のインストール
NICの確認
$ lspci | grep Ether 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 09)Realtek 8111Fであることがわかる。
ドライバの確認
$ lsmod | grep r81 r8169 62766 0r8169であることがわかり、誤ったドライバがロードされていることがわかる。
ドライバのダウンロード
あらかじめUSBメモリにRealtek公式サイトからドライバをダウンロードしておく。執筆時点では r8168-8.036.00.tar が最新であった。
ビルド環境のインストール
$ sudo apt-get install build-essentialこれがないとドライバのビルドができない。
USBメモリのマウント
$ sudo mkdir /mnt/usb $ sudo mount -t vfat /dev/sdc1 /mnt/usbsdc1の部分は環境により異なる。
ドライバのインストール
Readmeファイルに沿って行う。$ cd /mnt/usb $ sudo tar vjxf r8168-8.036.00.tar.bz2 $ cd r8168-8.036.00 $ sudo ./autorun.sh Completed.
ドライバの確認
$ lsmod | grep r81 r8168 257174 0r8168になった。
USBメモリのアンマウント
$ sudo umount /dev/sdc1
Samba
見られたくないデータをたんまり突っ込むので、共有ディレクトリに制限をかける。やること
- /share/privateを共有
- ユーザとしてyutormを作成
- privateグループに属するユーザのみアクセス可
※特定のユーザのみアクセス可でもよいが、拡張性を設けておく
sambaのインストール
$ sudo apt-get install samba $ smbd --version Version 3.6.33.6.3がインストールされた。
グループの作成
$ sudo groupadd private
共有ディレクトリの作成と設定
$ sudo mkdir /share/private $ sudo chmod -R 770 /share/private ←パーミッションを770にする $ sudo chgrp -R private /share/private ←privateグループに属させる
Sambaユーザの作成と設定
$ sudo useradd yutorm $ sudo pdbedit -a yutorm ←Sambaにyutormを追加 $ sudo gpasswd -a yutorm private ←privateグループに属させる
Sambaの設定
$ sudo nano /etc/samba/smb.conf [global] security = user ←アンコメント max protocol = SMB2 ←SMB2を有効にする^1 display charset = UTF-8 ←文字化けを防ぐ unix charset = UTF-8 dos charset = cp932 [private] ←ページ下部に全部追記 path = /share/private brwoseable = yes writable = yes create mode = 0770 directory mode = 0770 share modes = yes guest ok = no valid users = @private $ sudo restart smbd^1:Linuxレポート - Samba新版3.6は新プロトコルSMB2.0に対応、Windowsから高速にアクセス
クライアントからアクセス
クライアントからアクセスし動作を確かめる。・Windowsからアクセス
- [Winodowsキー] + [R]で「ファイル名を指定して実行」を開く
- 構築したサーバのアドレスを入力する(例.\\192.168.11.100\private)
- 「Windowsセキュリティ」が開くので、ユーザ名とパスワードを入力する
(例.ユーザ:yutorm, パスワード:abcd1234) - 「privateディレクトリ」が参照でき、読み書きが確認できれば完成
・Androidからアクセス
ネットワーク越しにファイルを参照できるファイルマネージャが必要。
説明は省くので、各サイト参照されたし。
- ESファイルブラウザ(旧版)を用いた方法
AndroidからNASやPCの動画を直接再生する方法 - Total Commanderを用いた方法
How to access your NAS share on an Android device
ファイアウォールの設定
$ sudo ufw status Status: inactive $ sudo ufw default deny ←全部閉じる $ sudo ufw allow samba ←Sambaを許可する $ sudo ufw enable ←ufwを有効にする Firewall is active and enabled on system startup $ sudo ufw status Samba ALLOW Anywhere
指定した時間にシャットダウン
つけっぱなしはもったいない。もし切り忘れても、夜中の2時になったら勝手に切れるようにしておく。$ sudo crontab -e エディタを選ぶように言われる [2]の/sbin/nanoを選んだ 以下を最下行に記述 00 02 * * * /sbin/shutdown -h now エディタを終了すると以下のメッセージがでる crontab: installing new crontab参考
How to use crontab in Ubuntu
ベンチマーク
条件
計測にはCrystalDiskMarkを用いる。\\192.168.11.100\privateを、テストマシンのネットワークドライブに割り当てる。
テストマシンとNASの間にはギガビットハブ(GS105v3)がある。
NICの設定は初期設定のまま。
CPU | Core i5 3470S 2.9GHz |
MEM | DDR3-1600 8GB*2 |
Str | Plextor PX-256M5S 256GB |
NIC | Broadcom BCM57781 |
OS | Windows 7 Professional SP1 64bit |
結果
必要にして十分であるが、もう少し速度が出てほしい。
0 件のコメント:
コメントを投稿