Monthly Archives: 6月 2013

Kali Linux 日本語版カスタムISOの自作方法

先ほど公開した日本語化版Kali LinuxのISOについてKali LinuxのISOのカスタム方法について日本語のサイトでまとめられているところがなかったので公式のISO作成方法(英語)を元にKali Linuxの日本語版のISO作成方法について簡単にメモしておきます

作成に関してはKali LinuxのVMWare版を使用すると効率的に作業できるかと思います

必要なパッケージをインストールします
# apt-get install git live-build cdebootstrap kali-archive-keyring
GITからISO作成の各種パラメータなどが書かれたものをクローンします
# git clone git://git.kali.org/live-build-config.git
クローンしたディレクトリに移ります
# cd live-build-config
シンボリックを作っていないとエラーが出るので作っておきます
# ln -sf wheezy /usr/share/live/build/data/debian-cd/kali

以上が初期設定です。下記より自分の好みに合わせた設定を行うために各種ファイルを作成します

カスタムする際にインストールする必要のあるパッケージリストを作成します
# vi config/package-lists/package-add.list.chroot

# japanese IME
ibus
ibus-anthy
uim
uim-anthy

# Japanese Font
fonts-ipafont
ttf-vlgothic

# Japanese Man
manpages-ja
manpages-ja-dev

# Japanese Doc
doc-linux-ja-text
doc-linux-ja-html

# Japanese Browser
iceweasel-l10n-ja

# Browser Flash Plugin
flashplugin-nonfree

# VPN
network-manager-openvpn-gnome
network-manager-pptp-gnome

# Editor
gedit

Skypeなど追加したいパッケージがapt-getで提供されておらずdebパッケージで存在する場合は下記のディレクトリに投げ込んでおくとビルド時に自動でインストールされます
# ls config/package-lists/packages/

日本語表示、日本語入力に関する設定を行うシェルスクリプトを作成します
# vi config/hooks/japanese-config.chroot

#!/bin/sh
echo "*****************************************************"
echo "* changing locale.gen japanese config file......... *"
echo "*****************************************************"
sed -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/g' /etc/locale.gen > /tmp/locale.gen_jp
mv -f /tmp/locale.gen_jp /etc/locale.gen
echo "new /etc/locale.gen"
cat /etc/locale.gen

echo "*****************************************************"
echo "* changing default locale japanese config file..... *"
echo "*****************************************************"
{
echo "#  File generated by update-locale"
echo "LANG=ja_JP.UTF-8"
} > /tmp/locale_jp
mv -f /tmp/locale_jp /etc/default/locale
echo "new /etc/default/locale"
cat /etc/default/locale

echo "*****************************************************"
echo "* changing keyboard msp japanese config file....... *"
echo "*****************************************************"
{
echo "# KEYBOARD CONFIGURATION FILE"
echo ""
echo "# Consult the keyboard(5) manual page."
echo "XKBMODEL=\"pc105\""
echo "XKBLAYOUT=\"jp\""
echo "XKBVARIANT=\"\""
echo "XKBOPTIONS=\"\""
echo ""
echo "BACKSPACE=\"guess\""
} > /tmp/keyboard_ja
mv -f /tmp/keyboard_ja /etc/default/keyboard
echo "new /etc/default/keyboard"
cat /etc/default/keyboard

echo "*****************************************************"
echo "* changing im-config config file................... *"
echo "*****************************************************"
im-config -n uim
echo "new /etc/X11/xinit/xinputrc"
cat /etc/X11/xinit/xinputrc

※ このスクリプトは作成中のシステムが入っているディレクトリに”chroot”されている状態で実行されます

カレントディレクトリを移動します
# cd ../

ISO作成やBOOTに関するパラメータの設定をコマンドにて叩きますが今回はConfigオプションが長かったりで毎回打つのは面倒なのでシェルスクリプトに書いておきます
# vi make_iso.sh

#!/bin/sh
# ディレクトリを移動します
cd live-build-config
# 前回のビルド内容が残っていると面倒なので一度クリアします
lb clean
# ブートに関する設定をconfigのオプションに追記して設定します
lb config \
  --bootappend-live "\
    boot=live \
    noconfig=sudo \
    username=root \
    hostname=kali \
    locales=ja_JP.UTF-8 \
    keyboard-model=jp106 \
    keyboard-layouts=jp \
    persistence \
    noeject \
  "
# ISOファイルの作成を開始します
lb build

シェルスクリプトに実行権を与えます
# chmod 755 make_iso.sh
ISOファイル生成を実行します
# ./make_iso.sh
※ 最初に行うビルドはかなり時間がかかります。当方の環境では3~4時間ほどかかりました。

その他設定の仕方を調べたい場合はDebian Live Manualを参照してください。なお、多くの日本語サイトではバージョンの古いlive buildを使ったカスタム法が紹介されていますがパラメータや設定ファイルの名前や書式に互換性がなかったりするのでご注意ください

参考サイト
Debian Live Manual
live-build 作成の半自動化 3

リモートサーバへ差分バックアップ CentOS5

以前使用していたrsyncを用いた差分バックアップスクリプトを書き換える機会があったのでついでに公開しておきます。

#!/bin/bash
#
# バックアップスクリプト(リモートサーバ)
#

#################### 各種環境設定 #######################
# rsyncコマンドのパス
RSYNC_BIN='/usr/bin/rsync'
# sshコマンドのパス
OPSSH_BIN='/usr/bin/ssh'
# バックアップ先のサーバのアドレス
HOST_NAME='example.net'
# バックアップ先のサーバのパス
HOST_PATH='/backup-example.net'
# rsyncコマンドのオプション
RSYNC_OPTION='-avz --delete -e'
# sshコマンドのオプション
OPSSH_OPTION='-i'
# ssh接続で使用する秘密鍵のパス
OPSSH_KEY='/root/.ssh/id_rsa'
# バックアップするディレクトリ
BACK_UP_PATHS='/'
################# バックアップ設定 ######################
# バックアップから除外するディレクトリ一覧
EXCLUDE_PATHS=(\
  '/lib/'\
  '/lib64/'\
  '/dev/'\
  '/proc/'\
  '/sys/'\
  '/misc/'\
  '/mnt/'\
  '/srv/'\
  '/opt/'\
  '/media/'\
  '/selinux/'\
  '/var/log/'\
  '/var/lib/'\
  '/var/run/'\
  '/var/cache/'\
)

#########################################################

# バックアップ除外オプションの作成
for PATH in ${EXCLUDE_PATHS[@]}
do
  EXCLUDE=${EXCLUDE}' --exclude '${PATH}
done

# 実行
${RSYNC_BIN} ${RSYNC_OPTION} \
"${OPSSH_BIN} ${OPSSH_OPTION} ${OPSSH_KEY}" \
${EXCLUDE} ${BACK_UP_PATHS} ${HOST_NAME}:${HOST_PATH}${BACK_UP_PATHS}

CentOS 5 物理メモリに余裕があるのに仮想メモリを使ってしまう 対策

swappinessの値を確認(デフォルト値:60)
この数値を減らせば減らすほど物理メモリを可能なかぎり使用するようになります。
# cat /proc/sys/vm/swappiness
60

下記の設定ファイルを開き追記する
# vi /etc/sysctl.conf
# Controls the swap memory usage
vm.swappiness = 0

設定ファイルのリロード
# sysctl -p

設定が反映されたことを確認
# cat /proc/sys/vm/swappiness
0

参考サイト
カーネルパラメータvm.swappiness によるスワップの最適化