Raspberry pi
Rspberry pi にUSBハードディスクを接続して,Mac の time machine のディスクと したり,Linux マシンのバックアップディスクとしたり,UPNP メディアサーバとしたり する計画.
Insttall
本体のインストール.今回はRASPBIANで.
- micro SD にコピーするイメージを https://www.raspberrypi.org/downloads/ から ダウンロード.
- ダウンロードしたイメージファイルを解凍して,micro SD にコピー. https://www.raspberrypi.org/documentation/installation/installing-images/linux.md
- micro SD カードをスロットに挿して起動.イーサネットケーブルを接続.IP アドレスがDHCPによって設定されるはずなので,(当てずっぽうに)ssh で接続.
- Raspberry pi の設定.
raspi-config
- デフォルトエディタの設定.
sudo update-alternatives --config editor
- Firmware のアップデート.再起動
sudo rpi-update
sudo apt-get update; sudo apt-get upgrade
必要なら再起動.- ユーザの設定. uid と gid もなんかうまくやっておくと,あとでNFSを使うときに便利かも.
HDD の接続と設定
USB HDDを接続して,mount する設定.
まず,ディスクの UUID を調べる.
$ sudo lsblk /dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="15CD-3B79" TYPE="vfat" /dev/mmcblk0p2: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4" /dev/sda1: LABEL="time_machine" UUID="b25dd4f7-9c17-4d3a-8dd2-3837a6f6acc6" TYPE="ext4" /dev/sda2: LABEL="backup" UUID="eae3badb-d4f3-4fd7-922a-0e1d437f8006" TYPE="ext4" /dev/sdb1: LABEL="MEDIA" UUID="AFB6-9DF4" TYPE="vfat"
マウントポイントを作成して,/etc/fstab
の編集.
UID=AFB6-9DF4 /mnt/media vfat codepage=932,iocharset=utf8,uid=1000,gid=1000 0 0 UUID=b25dd4f7-9c17-4d3a-8dd2-3837a6f6acc6 /backup/time_machine ext4 defaults 0 0 UUID=eae3badb-d4f3-4fd7-922a-0e1d437f8006 /backup/linux ext4 defaults 0 0
netatalk
Mac OS から接続したり,Time Machine ディスクとして使うための設定.
sudo apt-get install netatalk
/etc/netatalk/AppleVolumes.default
を編集.
/mnt/time_machine "Time machine" options:tm allow:tanahiro /mnt/media "media"
NFS
Linux からディスクをマウントするため.
サーバ
Rasbperry pi にNFSサーバをインストール.
sudo apt-get install nfs-common nfs-kernel-server
/etc/exports
を編集.
/backup/linux linux(rw,sync,no_sbtree_check)
ブート時にサービスを起動させる.
sudo update-rc.d rpcbind enable sudo update-rc.d nfs-common enable sudo update-rc.d nfs-kernel-server enable
クライアント
サービスのインストール.
sudo apt-get install nfs-common
/etc/fstab
の編集.
raspi:/backup /backup nfs defaults 0 0
MiniDLNA (UPNP/DLNA)
サービスのインストール.
sudo apt-get install minidlna
コンフィグレーションファイル, /etc/minidlna.conf
の編集.
media_dir=V,/mnt/media
コンフィグレーションファイルのリロード.
sudo service minidlna force-reload
HDD の回転数
ついでに,HDD が使われていない時に回転を止めるようなスクリプト.
sdparm
ツールのインストール.
sudo apt-get install sdparm
スクリプト
INTERVAL 秒ことにディスクの状態をチェックして,もし変化がなければ spindown.
#!/bin/sh if [ $# -lt 2 ]; then echo "usage: usbhdd_spindown.sh [UUID] [INTERVAL]" exit 0 fi disk=`findfs UUID="$1"` if [ -z $disk ]; then echo "could not find UUID $1" exit 0 fi disk=`echo "$disk" | sed -e "s@/dev/@@"` interval=$2 state=`grep " $disk " /proc/diskstats` count=$interval sleep_time=20 up=1 while [ true ]; do sleep $sleep_time count=$(($count - $sleep_time)) newstate=`grep " $disk " /proc/diskstats` if [ "$state" = "$newstate" ]; then if [ $count -lt 0 ]; then count=$interval if [ $up -gt 0 ]; then sync state=`grep " $disk " /proc/diskstats` sdparm --readonly --command=stop /dev/$disk > /dev/null 2>&1 up=$? fi fi else count=$interval state="$newstate" up=1 fi done
/etc/inittab
に起動時に実行するように記述.
# spindown usb hdd USR0:2:once:/usr/local/bin/usbhdd_spindown.sh AFB6-9DF4 120
0 件のコメント:
コメントを投稿