このページは、Debian Live System を使ったライブ・システム構築のメモで、Debian GNU/Linux testing (lenny) あるいは unstable (sid) 上での作業を前提としています。
詳しくは本家の説明 http://wiki.debian.org/DebianLive などを参考にしてください。
//#nomenubar
松本成司 Seiji Matsumoto (matsu AT johnen.shinshu-u.ac.jp)

&color(#f00,#fff){このページの内容はlenny用の古い情報なので、squeeze用の[[DebianLive/Build-HOWTO]]をごらんください};

このページは、Debian Live System を使ったライブ・システム構築のメモです。
Debian GNU/Linux stable (lenny)%%, testing (squeeze) あるいは unstable (sid)%% 上での作業を前提としています (squeeze,sid で作業する場合は[[こちらのメモ>DebianLive/SqueezeMemo]]もご覧ください)。
詳しくは[[本家の説明:http://wiki.debian.org/DebianLive]] や live-helper の manpage などを参考にしてください。
基本的には apt-get (あるいは aptitude) というコマンドを使ったことのある Debian あるいは Ubuntu のユーザ向けの情報ですが、「Debian って何???」という方はまず、[[Debian GNU/Linux のホームページ:http://www.jp.debian.org/]]あたりを読んでみてください。

[[簡易版を用意しました>DebianLive/Build-HOWTO-for-the-Impatient]]。うだうだした説明は必要ないという方は[[そちら>DebianLive/Build-HOWTO-for-the-Impatient]]をまずご覧ください。(2008-10-24)

目次
#contents

* 下準備 [#j68bb16f]
* 準備と練習 [#n73e39b7]

** live-helper のインストール [#f7d92f35]
** 準備 [#j68bb16f]

*** live-helper のインストール [#f7d92f35]

 # apt-get install live-helper live-initramfs

live-helper をインストールすると lh_config や lh_build といったライブシステムをビルドするための一連のツールやマニュアルが使えるようになります。
live-helper だけでなく live-initramfs もインストールしておきます。

** apt-cacher のインストール [#r7d84d55]

通常のインストールと同様に、ビルドを実行するとパッケージの自動ダウンロードから始まるので、何度もライブシステムをビルドする場合には、proxy ソフトの apt-cacher をインストールしておくと便利です。
*** apt-cacher のインストール (オプショナル) [#nf26d7cc]

通常のインストールと同様に、ビルドを実行するとパッケージの自動ダウンロードから始まります。
このとき一つの作業ディレクトリで作業している限りは deb ファイルが自動的にキャッシュに残るので、たとえ設定&ビルドを繰り返す場合でもダウンロードは繰り返しませんが、例えば複数台のマシンで作業させたり、すでにダウンロードした deb ファイルがたくさんあってそれらを使いたい場合には、proxy ソフトの apt-cacher をインストールしておくと便利です。

 # apt-get install apt-cacher

とりあえずデフォルトのままでも動くと思います。ポートの変更やアクセス制限などの設定が必要であれば /etc/apt-cacher/apt-cacher.conf を編集します。
インストール後、/etc/default/apt-cacher というファイルを編集して AUTOSTARTの値を0から1に変更しておきます。
 AUTOSTART=1
そして apt-cacher を再起動。
 # /etc/init.d/apt-cacher restart
とりあえずこれで動くはずです。
ポートの変更やアクセス制限などの設定が必要であれば /etc/apt-cacher/apt-cacher.conf を編集します。

デフォルトの設定の場合、
 http://localhost:3142/
でアクセスできればOK。
にアクセスできればOK。

もし /var/cache/apt/archives/ 以下に deb ファイルを残していれば、ダウンロード時間の節約のために apt-cacher-import.pl という付属のツールで apt-cacher にインポートしておきます。

 # /usr/share/apt-cacher/apt-cacher-import.pl -r /var/cache/apt/archives/

設定の問題なのかどうかわかりませんが apt-cacher 経由で cache にないパッケージをダウンロードするとスピードがとても遅くなってしまうので、このツールはとても重宝します。
設定の問題なのかどうかわかりませんが apt-cacher 経由で cache にないパッケージをダウンロードするとスピードがかなり遅くなってしまうので、このツールはとても重宝します。 
例えば筆者の場合、作業マシンの /etc/apt/sources.list にはあえてこの proxy を指定せず、作業マシンのアップデート後は apt-get clean ではなく apt-get autoclean でダウンロードした deb を残して apt-cacher にインポートしています (おそらくもっと快適な方法があるかもしれません)。

デフォルトでは apt-cacher は WWWサーバのユーザ権限で (www-data として) 動くので、インポートした deb ファイルも一応 chown しておきます (これは必要なし?)
ところでデフォルトでは apt-cacher は WWWサーバのユーザ権限で (www-data として) 動くので、インポートした deb ファイルも一応 chown しておきます。

 # chown www-data:www-data /var/cache/apt-cacher/var/cache/apt-cacher/packages/*.deb
 # chown -R  www-data:www-data /var/cache/apt-cacher/packages/

** qemu のインストール [#a0622e6c]
*** qemu のインストール  (オプショナル) [#h4ea419e]

できたイメージ を CD に焼き付ける前にテストしてみるために qemu もインストールしておきます。

 # apt-get install qemu

* 試しにビルドしてみる [#naef5521]
*** wodim のインストール  (オプショナル) [#fb1630d4]

wodim は cdrecord の後継となる CD/DVD ライティング・ツールです。他のツールがすでにインストールされている場合や CD に焼き付けない場合には不要です。

 # apt-get install wodim

** 試しにビルドしてみる [#naef5521]

作業するためのディレクトリを適当に作って、そこに移動します。

 $ mkdir debian-live
 $ cd debian-live
 $ su

ディレクトリ名は何でもかまいません。
以下は root で (あるいは sudo で) 作業します。

以下は root で作業します (sudo でもうまく行く?)。
実はここで

ここで「作業します」と書いたものの、実は
 $ su
 # lh_config && lh_build

という一行の命令だけで、なんと Debian Live の ISO イメージができてしまうのですが、せっかく apt-cacher もインストールしたので、以下それを利用するための設定を行います。lh_config は一般ユーザでも実行可能のようですが、以下の例では root で実行しています。
という命令一発だけで、なんと Debian Live の ISO イメージができてしまいます。

しかし、せっかく apt-cacher もインストールしたので、ミラーサイトの設定をするまで lh_build でビルドするのは少しおあずけにします。
lh_build は root の権限が必要ですが、lh_config は一般ユーザでも実行可能です。

まず、

 # lh_config
 $ lh_config

を実行します。
これで、カレントディレクトリの下に config/ と scripts/ というディレクトリができているか確認します (以下のようにさらにオプションで種々の指定をする場合は、実はこのステップは必要ありません)。
これで、カレントディレクトリの下に config/ と scripts/ というディレクトリができているか確認します (以下のようにさらにオプションで種々の指定をする場合は、実はこのステップは必要ありません)。squeeze,sid上で作業している場合は、scripts/ の代わりに auto/ というディレクトリができます。

この後、config/ 以下のファイルを直接編集しなくても lh_config コマンドで種々の設定が行えます。テストビルドなので、とりあえずミラーサイトだけ指定しておきます。
以下の例では ftp.jp.debian.org をミラーサイトに指定しています (近くのミラーサイトに置き換えてください)。
 # lh_config --mirror-bootstrap "http://localhost:3142/ftp.jp.debian.org/debian/"
 # lh_config --mirror-chroot "http://localhost:3142/ftp.jp.debian.org/debian/"
 # lh_config --mirror-binary "http://ftp.jp.debian.org/debian/"
ところで squeeze, sidの live-helper ではコマンドが変更になり、lh_config の代わりに lh config になりました (lh_config や以下の lh_build, lh_clean などのコマンドが廃止されて %%lh%% lb というコマンドに統一され、config, build, clean などは %%lh%% lb の最初の引数になりました)。以下は lenny 用の説明ですが、squeeze,sid 上で作業する場合にはコマンドを適当に置き換えてください。 (%%2009年12月16日追加%% 2010年10月10日訂正)

lh_config の後にオプションを続けて指定すれば、この例のように3回 lh_config を実行する必要はありません。
config/ 以下にミラーサイトの設定を初め、ビルドのための種々の設定ファイルが置かれるわけですが、基本的にはそれらのファイルを直接編集しなくても lh_config コマンドだけで種々の設定が行えるようになっています。

テストビルドなので、とりあえずミラーサイトだけ指定しておきます。
以下の例ではローカルの apt-cacher 経由で ftp.jp.debian.org をミラーサイトに指定しています (近くのミラーサイトに置き換えてください)。
 $ lh_config --mirror-bootstrap "http://localhost:3142/ftp.jp.debian.org/debian/"
 $ lh_config --mirror-chroot "http://localhost:3142/ftp.jp.debian.org/debian/"
 $ lh_config --mirror-binary "http://ftp.jp.debian.org/debian/"

lh_config の後にオプションを続けて指定すれば、この例のように3回 lh_config を実行する必要はありません。最後の --mirror-binary オプションは出来上がったイメージでのミラーサイトの指定なので proxy を使わないで、直接ミラーサイトを指定しておきます。

これでビルドします。

 $ su
 # lh_build

少し時間がかかりますが、これでカレントディレクトリに binary.iso というファイルができればビルド成功です。
少し時間がかかりますが、これでカレントディレクトリに binary.iso というファイルができればビルド成功です。(squeeze,sid上で作業する場合は lh_build の代わりに %%lh build%% lb build を使います)。

qemu でテストしてみます。
最近の Core2 Duo クラスのCPUを搭載したマシンの場合 (もちろんメモリ容量やハードディスクのスピードにもよりますが)、debファイルのダウンロード時間を除けば (つまりローカルのキャッシュに debファイルがあれば)、コーヒーブレイク程度の時間で終了するはずです。

 $ qemu -cdrom binary.iso
** イメージのテスト&焼き付け [#r5f10599]

このISOイメージを cdrecord などで CD に焼き付ければ、ライブCDのできあがりです。
できた ISOイメージを早速 qemu でテストしてみます。これはrootでなくてもできます。

 $ qemu -m 256 -cdrom binary.iso

メモリの値は作業マシンのスペックを考慮して -m オプションで適当に指定してください (この例では 256MB)。デフォルトは 128MBなのでこれだとちょっと少ないかもしれません。
ちなみにマウスのフォーカスを元のマシンに戻すのは Ctrl+Alt 。

このISOイメージを wodim や cdrecord などのツールで CD に焼き付ければ、ライブCDのできあがりです。
例えば、

 $ cdrecord -eject -data binary.iso
 $ wodim -eject binary.iso

* カスタマイズ [#t7db9dea]
** 各種パラメータの指定、パッケージの指定 [#h6d2ef5b]

** 言語の指定、ブート時のパラメータ指定 [#s965fda0]
 # lh_config --language ja
 # lh_config --bootappend-live "locale=ja_JP.UTF-8 keyb=jp kmodel=jp106"
*** 言語の指定、ブート時のパラメータ指定 [#s965fda0]
 $ lh_config --language ja
 $ lh_config --bootappend-live "locale=ja_JP.UTF-8 keyb=jp kmodel=jp106"

keyb=jp は X では有効ですがコンソールでは無視されてしまうようです。
また、kmodelの指定がないと xorg.conf で XkbModel として jp106 が採用されないようです。
また、kmodelの指定がないと xorg.conf で XkbModel として jp106 が採用されないようです。%%(squeeze では keyb や kmodel は無視され klayout=jp だとうまくいきました -- 2010年4月2日追記)%% (squeeze ではオプション名が変更になり keyboard=layouts=jp keyboard-model=jp とします。keyboard-layoutsが複数になっていることに注意。2010年10月10日訂正・追記)

** ディストリビューション、セクションを指定 [#sa910981]
sid上でlennyのライブシステムを作りたい場合やその逆の場合に必要です。

*** ディストリビューション、セクションを指定 [#sa910981]
lenny上でsid のライブシステムを作りたい場合など、作業マシンのバージョンと違うバージョンのライブシステムを作りたい場合に必要です。
また contrib や non-free のパッケージをインストールする場合にはセクションも指定しておきます。

 # lh_config -d lenny
 # lh_config --categories "main contrib non-free"
 $ lh_config --distribution sid
 $ lh_config --categories "main contrib non-free"

** パッケージ、パッケージリストの指定とカスタマイズ [#fba0488c]
この例では sid を指定しました (lenny にしたい場合は lh_config --distribution lenny)。また、squeeze/sid上で作業する場合には、--categories の代わりに --archive-areas というオプションを使ってください。
g++ や nqc を使うだけであれば non-free は必要ないのですが、日本語のPDFファイルの閲覧には、non-free に属する Adobe CMAP データが必要です。

例えば、デスクトップ環境の KDE に加え NQC と g++ をインストールしたい場合は、
*** パッケージ、パッケージリストの指定とカスタマイズ [#fba0488c]

 # lh_config --packages-lists=kde --packages="nqc g++"
例えば、デスクトップ環境の KDE に加え NQC と g++ と w3m をインストールしたい場合は、

のように指定します。この例のように --packages ではパッケージ名をスペースで区切って並べていけば複数個指定できる一方、--packages-lists で指定できるファイル名 (リスト名) は一つだけです。
 $ lh_config --packages-lists kde
 $ lh_config --packages "nqc g++ w3m"

のように指定します。もちろん一度に
 $ lh_config --packages-lists kde --packages "nqc g++ w3m"
のように指定しても大丈夫です。

この例のように --packages ではパッケージ名をスペースで区切って並べていけば複数個指定できます%%が、--packages-lists で指定できるファイル名 (リスト名) は一つだけです%%(--packages-lists でも同様に複数個指定できます)。
このリスト名は /usr/share/live-helper/lists/ にあるものから選ぶか、あるいはそれらを参考にして独自に作成することもできます。その場合にはリストファイルを、config/chroot_local-packageslists/ の下に適当な名前で保存しておきます。

また、--packages で個々のパッケージを指定する場合でも、lh_config --pakages="..." を走らせる度に設定が上書きされてしまうので、たくさんパッケージを指定したい場合には  --packages-lists を使ったほうが便利です。

ところで /usr/share/live-helper/lists/ 以下の例をみても分かるように、リストは他のリストを include できます。

以下は、Debian Wiki の日本語環境の説明
http://wiki.debian.org/JapaneseEnvironment
を参考にして作成した Xfce + NQC + 日本語環境 +α のオリジナル・リストの例です。

 # DEBIANLIVE/config/chroot_local-packageslists/xfce-nqc-ja  - package list for live-helper(7)
 
 ## LH: Xfce Debian
 #include <xfce>
 
 # miscellaneous Xfce4 packages
 xfce4-goodies
 xfce4-places-plugin 
 thunar-volman
 xfmedia
 
 # NQC, g++, Ruby
 # NQC, g++
 nqc
 g++
 ruby
 
 # japanese env
 uim
 uim-anthy
 unifont
 xfonts-a12k12
 xfonts-intl-japanese
 xfonts-intl-japanese-big
 xfonts-unifont 
 ttf-sazanami-gothic
 ttf-sazanami-mincho
 ttf-vlgothic
 xpdf-japanese
 w3m
 lv
 nkf
 
 # misc
 iceweasel-l10n-ja
 mozilla-plugin-gnash
 xterm
 less
 openssh-client

このリストを

 config/chroot_local-packageslists/xfce-nqc-ja

このリストを config/chroot_local-packageslists/xfce-nqc-ja
というファイルに保存すれば

 # lh_config --packages-lists=xfce-nqc-ja
 $ lh_config --packages-lists xfce-nqc-ja

でパッケージリスト指定ができます。
必要なパッケージをすべてこのリストに入れておくと --packages で追加パッケージを指定する必要はありません。
上で書いたように必要なパッケージをすべてこのリストに入れておくと --packages で追加パッケージを指定する必要はありません。

もちろん上記リストに含まれる日本語関連のパッケージだけを別リストとして
 config/chroot_local-packageslists/japanese
に保存して
 xfce-nqc-ja
の中では単に
config/chroot_local-packageslists/japanese
というファイルに保存して
config/chroot_local-packageslists/xfce-nqc-ja
では単に
 #include <xfce>
 #include <japanese>
と include するだけにしたほうがすっきりするかもしれません。
 nqc
 g++
 ...

** パッケージインストール後の設定 [#t421448b]
のように japanese を include して使う、あるいは include せずに独立したパッケージリストとして複数のファイルに分けて保存して、

*** ローカルファイルのコピー [#d2927528]
 $ lh_config --packages-lists "xfce japanese mylist1 mylist2 ..."

カスタマイズした設定ファイルや Debian のパッケージ管理ツールで管理されていないファイルは、あらかじめ
のような感じで lh_configコマンドで直接複数のパッケージリストのファイル名を指定する、というのが正統な(?)方法だと思います。

 config/chroot_local-includes/

にディレクトリ構造を保ったまま入れておきます。
*** 独自のリポジトリを追加 [#qe397947]
debian公式パッケージ以外のパッケージをインストールしたい場合には、追加のリポジトリを指定します。以下は、[[wicd:http://wicd.sourceforge.net/]]という無線LANの設定ツールを追加する場合の例です (wicd は sid には公式パッケージとして含まれますが、残念ながら lenny には含まれていません)。

例えば、カスタマイズした /etc/bash.bashrc (システムワイドな .bashrc ファイル) を使いたい場合には、config/chroot_local-includes/etc/ というディレクトリを作って
まず、config/chroot_sources/
というディレクトリに、wicd.chroot と wicd.binary という名のファイルを作り、それぞれの中にリポジトリを指定します (どちらのファイルも中身は同じ)。
 deb http://apt.wicd.net hardy extras
ファイル名は、foo.chroot, foo.binary のようなものであれば何でもかまいません。

 config/chroot_local-includes/etc/bash.bashrc
次に、gpgキーを wicd.chroot.gpg, wicd.binary.gpg という名前でそのディレクトリにコピーします。これだけでそのリポジトリに含まれるパッケージを利用できます。

として保存しておきます。そうすればデフォルトの bash.bashrc が上書きされます。
** パッケージインストール後の設定 [#t421448b]

*** ローカルファイルのコピー [#d2927528]

カスタマイズした設定ファイルや Debian のパッケージ管理ツールで管理されていないファイルは、あらかじめ config/chroot_local-includes/ というディレクトリにディレクトリ構造を保ったまま入れておきます。

例えば、カスタマイズした /etc/bash.bashrc (システムワイドな .bashrc ファイル) を使いたい場合には、config/chroot_local-includes/etc/ というディレクトリを作って
config/chroot_local-includes/etc/bash.bashrc
として保存しておきます。そうすればデフォルトの /etc/bash.bashrc が上書きされます。

この機能の応用として、ユーザの初期設定のファイルを
 config/chroot_local-includes/etc/skel/
以下に入れておいたり、非Debianパッケージを
 config/chroot_local-includes/usr/local/
以下に入れておけば、現在使用しているシステムを簡単にライブシステムに反映させることができます。
config/chroot_local-includes/etc/skel/
の中に入れておいたり、非Debianパッケージを
config/chroot_local-includes/usr/local/
の中に入れておけば、現在使用しているシステムを簡単にライブシステムに反映させることができます。

//*** ローカルなdebファイルのインストール
//ローカルな (非公式な) deb ファイルをインストールしたい場合には、deb ファイルを
// config/binary_local-debs/
//に入れておくとビルド時にインストールしてくれます。


*** シェル・コマンドの実行 [#n348e8a3]

インストール終了後、シェルコマンドを走らせたい場合には、シェルスクリプトとして
config/chroot_local-hooks/ というディレクトリの中に適当な名前をつけて保存しておきます。

 debian-live/config/chroot_local-hooks/

以下に適当な名前をつけて保存しておきます。

例えば、uim の表示をパネル内に表示したい場合には

 #!/bin/sh
 
 test -x /usr/bin/im-switch || exit 0
 im-switch -s uim-systray
 update-alternatives --set xinput-ja_JP /etc/X11/xinit/xinput.d/uim-systray

のような中身のファイルを、例えば

 config/chroot_local-hooks/90-uim

のような中身のファイルを、
config/chroot_local-hooks/90-uim
というファイル名で保存して

 # chmod +x config/chroot_local-hooks/90-uim
 $ chmod +x config/chroot_local-hooks/90-uim

で実行可能にしておきます。
で実行可能にしておきます (ファイル名は適当に決めてください)。

** 再ビルド [#ff273bb9]

設定をしたあと、再度ISOイメージをビルドする際には lh_clean というコマンドで作業ディレクトリをきれいにしておきます
設定をしたあと、再度ISOイメージをビルドする際には lh_clean というコマンドで作業ディレクトリをきれいにしておきます。
ただし lh_clean では config/ 以下のローカルファイルは削除されないので、不必要になったローカルな(=自分でコピーした)ファイルなどは手で削除する必要があります。 

 $ su
 # lh_clean --all
 # lh_build

これでオリジナルのライブCDのイメージ (binary.iso) ができるはずです。

* USBメモリ用のライブシステムの作成 [#ba4dd651]

** USBメモリ用のディスクイメージの作成 [#q34cdb2d]

基本的な設定は ISOイメージの場合と同じです。

バイナリイメージとして usb-hdd を指定します。
バイナリイメージとして usb-hdd を指定します (デフォルトでは iso になっています)。

 # lh_config -b usb-hdd
 $ lh_config --binary-images usb-hdd

ブート時のパラメータとして persistent と noprompt を追加しておきます。
ブート時のパラメータとして persistent を追加しておけばデータの保存が可能になります。

 lh_config --bootappend-live "locale=ja_JP.UTF-8 keyb=jp kmodel=jp106 persistent noprompt"
 lh_config --bootappend-live "locale=ja_JP.UTF-8 keyb=jp kmodel=jp106 persistent quickreboot"

(quickrebootというオプションを指定することで再起動時にメディアの取り出しの確認を省略することができます)

ISOイメージを作成した後、usb-hdd のディスクイメージをビルドするには、

 # lh_clean --binary
 # lh_build

とします。lh_clean -all できれいに掃除するよりもビルドする時間が少し短縮されます。

ビルドに成功すると、今度は binary.iso のかわりに binary.img というファイルができます。

** qemuでテスト [#se11582f]

 $ qemu -m 256 -hda binary.img

** USBメモリへの書き込み [#t967b989]

dd コマンドを使ってこのディスクイメージを USBメモリに書き込みます。
USBメモリ内のデータはすべて消去されてしまうので注意してください。
このとき USBメモリはマウントしていない状態で書き込みます。
もしUSBメモリのデバイス名が、/dev/sdb だとすると、

 # dd if=binary.img of=/dev/sdb

でイメージをコピーできます。このイメージはパーティション情報まで含んだイメージなので、書き込み先が /dev/sdb1 ではなくて /dev/sdb になっていることを注意してください。
でイメージをコピーできます (bs=1024k などのオプションをつければコピーのスピードが速くなると思います)。このイメージはパーティション情報まで含んだイメージなので、書き込み先が /dev/sdb1 ではなくて /dev/sdb になっていることに注意してください。

イメージのコピーが終了した時点で、USBメモリにはイメージ用にパーティションが一つ切られて (/dev/sdb1)、残りは空き領域となっています。さらに cfdisk などのツールを使ってその空き領域に Linux のパーティションを追加し、そのボリューム名を home-rw にすることで、起動時にそのパーティションを /home として自動的にマウントしてくれます。
イメージのコピーが終了した時点で、USBメモリには新しいパーティションが一つ切られて (例えば /dev/sdb1)、残りは空き領域となっています。
この状態でも、すぐにUSB起動ディスクとして使えますが、せっかくUSBメモリを使うので残りの領域を個人のデータ保存用にセットアップしておきましょう。

そのためには cfdisk などのツールを使ってその空き領域に Linux のパーティションを追加し、そのボリューム名を home-rw にします。そうすることで起動時にそのパーティションを /home として自動的にマウントしてくれます。

 # cfdisk /dev/sdb
 # mkfs.ext3 /dev/sdb2 -L home-rw

これでライブUSBメモリのできあがりです。簡単!

ちなみに再び ISO イメージを作成する時には
再び ISO イメージを作成する時には lh_build する前に

 $ lh_config --binary-images iso

のあと

 $ su
 # lh_clean --binary
 # lh_config -b iso

を忘れずに。


* 参考リンク [#n52d67d1]

- http://wiki.debian.org/DebianLive (本家)
- [[Debian Live 3分クッキング:http://cliplife.jp/clip/?content_id=d068osmn]] (Debian開発者のやまねさんによるプレゼン)
//- [[Debian Live 3分クッキング:http://cliplife.jp/clip/?content_id=d068osmn]]
- [[Debian Live 3分クッキング:http://cliplife.goo.ne.jp/play/clip/2hT8dT1Y0CXL]] (Debian開発者のやまねさんによるプレゼン)


2008年10月21日からのこのページのだいたいの訪問者数:
本日&counter(today);
昨日&counter(yesterday);
合計&counter(all);


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS