Part1のSamba基本編では、共有データを保存する場所が8GB(3GB使用中)のSDカード内でした。つまり最大でも5GBまでしか共有データを保存できません。
ここで家に転がっていた内蔵型HDDを外付けHDDにして、大容量のファイルサーバへアップグレードします。
Raspberry Piでお勧めの保存先
まず最初に全般的な話から始めます。
使う容量が54GB以下
Model BならSDカード、Model B+ならマイクロSDカードを使っていますが、使う容量が54GB以下なら64GBのSDカード/マイクロSDカードを2枚買って、1枚にRaspberry Piをインストールして使って、もう1枚は自動バックアップ用に使用します。
SDカードを容量いっぱいいっぱいで使い続けると寿命が縮むらしいので、64GBなら6GBくらいはあけておいたほうがいいです。つまり実質的に使える共有フォルダのサイズは54GBくらいです。(システム領域に4GB確保しておきます)
SDカード/マイクロSDカードは壊れやすいですが大容量のものほど壊れにくいです。
そのため容量の少ないファイルサーバでも64GBのSDカード/マイクロSDカードを買うべきです。
また壊れたときに自動バックアップ用のSDカード/マイクロSDカードに付け替えれば、1日前のデータになるかもしれませんが、元に戻すことができるので買う枚数は2枚です。自動バックアップについては別の機会に説明します。
ただ購入したSDカード/マイクロSDカードの相性か何かで使えない可能性があるので、まず最初に1枚買って、問題ないようなら同じものをもう一枚買うというやりかたをしましょう。
Transcend microSDXCカード 64GB Class10 UHS-I対応 (無期限保証) TS64GUSDU1E
使う容量が54GB超~数TB
素直にハードディスクを使います。家に余分なハードディスクが転がっていたらそれを使いましょう。外付けならそのまま利用して、内臓型HDDなら外付けケースを買いましょう。
ちなみに私は余分な内臓型HDDが転がっていたので、外付けケースを買って使うことにしました。
玄人志向 3.5型HDDケース SATA接続 USB2.0対応 GW3.5AA-SUP/MB
超古いパソコンのHDDだとIDEを使っている可能性があるので、IDEに対応したケースが必要です。上記のは一般的なHDDでSATA対応です。
余分なハードディスクを持っていない場合、
買うなら2.5インチの内臓ハードディスクと2.5インチ用の外付けケースです。
なんで2.5インチを勧めるかと言うと省エネだからです。
普通の3.5インチのハードディスクは使用時10W、アイドル時4Wくらいの電力を食います。
2.5インチのハードディスクの場合は使用時4W、アイドル時2Wくらいの電力で済みます。
(最近のHDDだともっと省エネだと思いますが、基本的に2.5インチのほうが電気代が安くなります)
3.5インチのHDDの場合、一番かかって月150円です。
2.5インチのHDDの場合、一番かかっても月60円です。
ハードディスクのメーカーで避けるべきはSeagateです。
Seagateは故障しやすいです。あとSamsungも怪しいです。
お勧めは日立(HGST)ですが、若干値段が他よりも高いです。
そのほかのメーカーは団子状態なのであまり気にしなくていいです。
SeagateとSamsungを避けてあとは運まかせです。
容量は現時点(2014年10月末)では1TBがお得です。
東芝 TOSHIBA 2.5インチHDD(SerialATA)/容量:1TB/回転数:5400rpm/キャッシュ:8MB MQ01ABD100
上記のHDDを下記のケースに入れます。
玄人志向 2.5インチ HDDケース USB2.0 ケーブルを本体収納 専用ポーチ付き 簡単組み立て GW2.5SC-SU2
Raspberry PiでHDDをフォーマット
HDDとケースの準備ができたら、HDDをケースに入れてUSBでRasbperry Piにつなげます。
2.5インチHDDの場合でRaspberry Pi Model Bを使っている人、
またはModel B+だけど2Aの充電アダプタを使っていない場合、
セルフパワーのUSBハブが必要になります。
2.5インチHDDは最大1Aくらい使うので、
Raspberry Piの電源が貧弱だとRaspberry Piがまともに動かなくなります。
ELECOM USBハブ USB2.0対応 ACアダプタ付 セルフ・バスパワー両対応 U2H-EG4SBK
ちなみに私はRaspberry Pi Model B、ハードディスクは日立のDeskstar(250GB)、セルフパワーのUSBハブを使っています。
実際にRaspberry PiにHDDをつなげてフォーマットして、共有フォルダとして使えるようにしてみます。
HDDをフォーマットする
ハードディスクをRaspberry Piにつなぎます。
Raspberry Piから
sudo fdisk -l Disk /dev/sda: 250.1 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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 Disk identifier: 0x0001243a Device Boot Start End Blocks Id System /dev/sda1 63 488392064 244196001 7 HPFS/NTFS/exFAT
6年前(?)くらいにWindowsパソコンで使っていたハードディスクです。
パーティションを削除して新たにパーティションを作成します。
sudo fdisk /dev/sda Command (m for help): p Disk /dev/sda: 250.1 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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 Disk identifier: 0x0001243a Device Boot Start End Blocks Id System /dev/sda1 63 488392064 244196001 7 HPFS/NTFS/exFAT Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): d Selected partition 1 Command (m for help): p Disk /dev/sda: 250.1 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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 Disk identifier: 0x0001243a Device Boot Start End Blocks Id System Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): Using default value 1 First sector (2048-488397167, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-488397167, default 488397167): Using default value 488397167 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. sudo fdisk -l Disk /dev/sda: 250.1 GB, 250059350016 bytes 81 heads, 63 sectors/track, 95707 cylinders, total 488397168 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 Disk identifier: 0x0001243a Device Boot Start End Blocks Id System /dev/sda1 2048 488397167 244197560 83 Linux
新しくパーティションが作成できたのでext4でフォーマットします。
ntfsでフォーマットする人もいるけど普通はext4が良いと思う。
速度的にext4が一番良いらしいです。(未検証です)
sudo mkfs.ext4 /dev/sda1 mke2fs 1.42.5 (29-Jul-2012) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 15269888 inodes, 61049390 blocks 3052469 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 1864 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
フォーマットが完了したのでマウントします。
あ、ちょっと事情により日立のハードディスクはあとで使うことにしました。
最初に悪名高いSeagate(320GB)のハードディスクを使うことにしました。
Seagateのパティション新しくしてフォーマット。
あらためてハードディスクをマウントします。
ハードディスクのUUIDを調べてfstabにマウントの仕方を追加します。
sudo blkid /dev/sdb1 /dev/sdb1: UUID="23d24d57-4dcd-2fb4-abc1-1dd63e7f6bc1" TYPE="ext4"
USBメモリと外付けハードディスクのハブの位置を変えたら、ハードディスクがsdbになってた。
こういうのをさけるために、UUIDでfstabを設定します。
※ 下記のコマンドは危険なので実行してはいけません。
sudo vim /etc/fstab UUID=23d24d57-4dcd-2fb4-abc1-1dd63e7f6bc1 /media/hdd1 ext4 defaults 0 2
リブートします。
死にました。
Rasbperry PiがSSHで反応しなくなりました。
起動に失敗している模様です。
バックアップしてるSDカードを持ち出してあれやこれやして、ようやく原因がわかりました。
原因は最後の2です。
UUID=23d24d57-4dcd-2fb4-abc1-1dd63e7f6bc1 /media/hdd1 ext4 defaults 0 2
この行の一番最後の数字の2が犯人です。
調べたら2というのはfsckチェックをしろというオプションで、
何かしらの原因でfsckチェックでRaspberry Piが止まっています。
5分くらい待ってみましたが、Raspberry Piが動きません。
fsckチェックをするのにとてもパワーが必要でRaspberry Piが反応しないのかもしれません。
もしくは単にエラーで止まっているだけかもしれません。
fsckチェックはHDDがまともな状態かどうかをチェック?しているらしいです。
0でそのチェックを無視できます。ということで0にしました。
UUID=23d24d57-4dcd-2fb4-abc1-1dd63e7f6bc1 /media/hdd1 ext4 defaults 0 0
ついでに、念のためmediaディレクトリにhdd1ディレクトリを作っておきました。
sudo mkdir /media/hdd1
これでリブートすればHDDを自動的にマウントしてRaspberry Piも普通に起動してくれます。
現在の構成
df -h Filesystem Size Used Avail Use% Mounted on rootfs 7.4G 2.7G 4.4G 39% / /dev/root 7.4G 2.7G 4.4G 39% / devtmpfs 239M 0 239M 0% /dev tmpfs 49M 528K 48M 2% /run tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 7.5G 52M 7.5G 1% /media/usb0 tmpfs 97M 0 97M 0% /run/shm /dev/sdb1 294G 63M 279G 1% /media/hdd1 /dev/mmcblk0p1 56M 9.7M 47M 18% /boot tmpfs 32M 0 32M 0% /tmp tmpfs 16M 0 16M 0% /var/tmp tmpfs 32M 116K 32M 1% /var/log
320GBの外付けハードディスクが/media/hdd1へマウントしてくれています。
ところで、320GBのハードディスクなのにSizeが194Gになっているのですが・・。
Availにいたっては279Gになってしまっています。
残りの41GBはいずこへいったのでしょう??
とりあえず見なかったことにします。
知っている人いたら教えてください。
外付けHDDにSambaの共有フォルダを作成する
SDカードにSambaの共有フォルダを作成していましたが、これからは外付けHDDに共有フォルダを作成してそこを使うことにします。
cd /media/hdd1 sudo mkdir samba sudo chown your_username:your_username samba cd samba mkdir public sudo vim /etc/samba/smb.conf #publicのpathだけ変更する [public] comment = Public path = /media/hdd1/samba/public public = yes read only = no browsable = yes force user = your_username #Sambaをリスタートする sudo service samba restart
WindowsでSambaの共有フォルダに適当なファイルを作成する。
Raspberry Piから確認してみたところ、
ちゃんと外付けHDDのほうに保存されていました。
以上で外付けハードディスクの導入編の終了です。
お疲れ様でしたー。
ハードディスクの容量の違いですが、
製品の表記上のG=1000*1000*1000
で
OS上では
G=1024*1024*1024で計算するために生じる差です。