Raspbian 初期設定編
●まずはraspi-config
$ sudo raspi-config
とりあえずアップデート
[
8 Advanced Options ] - [
A7 Update ]
コンソールログインを選択
[
3 Enable Boot to Desktop/Scratch ] - [
Console Text console, requiring login (default) ]
言語設定でjaを追加
[
4 Internationalisation Options ] - [
I1 Change Locale ]
[*] en_US.UTF-8 UTF-8
[*] ja_JP.UTF-8 UTF-8
Default locale ⇛ [ ja_JP.EUC-JP ]
タイムゾーン(東京に設定)
[
4 Internationalisation Options ] - [
I2 Change Timezone ]
[ Asia ] - [ Tokyo ]
メモリ使用量(コンソールのみなので最小に)
[ 8 Advanced Options ] - [ A3 Memory Split ]
[ 16 ]
で終了。一旦リブート。
●自分ユーザー作成&piユーザー削除
$ sudo adduser [hogehoge]
ユーザ `[hogehoge]' を追加しています...
新しいグループ `[hogehoge]' (nnnn) を追加しています...
新しいユーザ `[hogehoge]' (nnnn) をグループ `[hogehoge]' として追加しています...
ホームディレクトリ `/home/[hogehoge]' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しいUNIXパスワードを入力してください:
[ パスワード ]
新しいUNIX パスワードを再入力してください:
[ パスワード ]
passwd: パスワードは正しく更新されました
[hogehoge] のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
フルネーム []:
[ ]
部屋番号 []:
[ ]
職場電話番号 []:
[ ]
自宅電話番号 []:
[ ]
その他 []:
[ ]
以上で正しいですか? [Y/n]
$ sudo visudo
[hogehoge] ALL=(ALL) ALL
を追加
リブート
$ sudo reboot
新しく作った自分アカウントでログイン
> ssh [hogehoge]@192.168.xxx.xxx
アカウントpiの削除
$ sudo userdel -r pi
$ sudo visudo
pi ALL=(ALL) NOPASSWD: ALL
を削除
●ntpクライアントの入れ替え
ntpを消してntpdateをインストール
$ sudo apt-get remove ntp
$ sudo apt-get install ntpdate
ntpサーバを国内サーバに変更
$ sudo vi /etc/default/ntpdate
# NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org ...
NTPSERVERS="0.ntp.nict.jp 1.ntp.jst.mfeed.ad.jp 2.ntp.ring.gr.jp"
時刻合わせを毎時に
$ sudo crontab -e
0 * * * * /etc/network/if-up.d/ntpdate > /dev/null 2>&1
●USBフラッシュ延命対策
USBフラッシュ延命にswapの停止と、
logファイルをRAMディスクに最低限のみ出力するようにする。
swap停止
$ sudo dphys-swapfile swapoff
$ sudo dphys-swapfile uninstall
$ sudo apt-get remove dphys-swapfile
RAMディスクを使用するように
$ sudo vi /etc/fstab
次の3行を追加
tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0
ログファイル出力抑止
auth, syslog, messagesのみに
$ sudo vi /etc/rsyslog.conf
###############
#### RULES ####
###############
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
# cron.* /var/log/cron.log
# daemon.* -/var/log/daemon.log
# kern.* -/var/log/kern.log
# lpr.* -/var/log/lpr.log
# mail.* -/var/log/mail.log
# user.* -/var/log/user.log
#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
# mail.info -/var/log/mail.info
# mail.warn -/var/log/mail.warn
# mail.err /var/log/mail.err
#
# Logging for INN news system.
#
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice -/var/log/news/news.notice
#
# Some "catch-all" log files.
#
# *.=debug;\
# auth,authpriv.none;\
# news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
#
# Emergencies are sent to everybody logged in.
#
*.emerg :omusrmsg:*
#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8
# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
# you must invoke `xconsole' with the `-file' option:
#
# $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
# busy site..
#
# daemon.*;mail.*;\
# news.err;\
# *.=debug;*.=info;\
# *.=notice;*.=warn |/dev/xconsole
出力時にディレクトリがないとエラーになるログがあるので
ログ初期設定用のスクリプトを作成する
$ sudo vi /etc/init.d/make-logfile
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: make-varlog-files
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Required-Start:
# Required-Stop:
# Short-Description: Create /var/log/... files on tmpfs at startup
# Description: Create /var/log/... files needed by system daemon
### END INIT INFO
#
# main()
#
case "${1:-''}" in
'start')
mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/apt
mkdir -p /var/log/fsck
mkdir -p /var/log/mrtg
mkdir -p /var/log/ntpstats
mkdir -p /var/log/samba
mkdir -p /var/log/squid3
chown root.adm /var/log/mrtg
chown ntp.ntp /var/log/ntpstats
chown root.adm /var/log/samba
chown proxy.proxy /var/log/squid3
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp
;;
'stop')
;;
'restart')
;;
'reload'|'force-reload')
;;
'status')
;;
*)
echo "Usage: $SELF start"
exit 1
;;
esac
デフォルトランレベルの起動リンクを作成
$ sudo chmod 755 /etc/init.d/make-logfile
$ sudo update-rc.d make-logfile defaults 01 10
●不要デーモン停止
$ sudo update-rc.d -f triggerhappy remove
$ sudo update-rc.d -f alsa-utils remove
$ sudo update-rc.d -f lightdm remove
$ sudo update-rc.d -f motd remove
$ sudo update-rc.d -f plymouth remove
●マルチキャストDNS
$ sudo apt-get install avahi-daemon
これで母艦から[ $ ssh raspi.local ]な感じでログインできる。
●Raspbianアップデート
国内サーバーにリポジトリをミラーリングしてくれてる奇特な方がおられるので、
せっかくなので利用させていただく。
https://twitter.com/kfujieda/status/301119397064486912
$ sudo vi /etc/apt/sources.list
## deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb http://ftp.jaist.ac.jp/raspbian/ wheezy main contrib non-free rpi
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get autoremove
●suのパスワード設定と、普段アカウントにwww-dataグループを追加
$ sudo passwd
新しいUNIXパスワードを入力してください: [ パスワード ]
新しいUNIX パスワードを再入力してください: [ パスワード ]
passwd: パスワードは正しく更新されました
$ sudo usermod -G www-data hogehoge