セットアップ CD (2005 年度情報実験機用) の作成方法

[BACK]



概要

情報実験 (INEX) では, 受講者は授業の前半はセットアップ済みの UNIX 系 OS を用いて実習を行う.

以下ではその初期状態の UNIX 環境を整えるためのセットアップ CD の作成方法を記す.

ポリシー

整える UNIX 環境のポリシーを箇条書きにすると,

なお, セットアップ CD を作成するのは, 個々の計算機の環境が ばらつかないためである. Debian も sarge になり, インストールも 随分と簡単になってきたので, 簡単にドキュメントを作成して, それに沿って VTA の皆さんにインストールを行ってもらっても いいのかもしれない. その代わり, TA が作成された個々の環境を チェックする手間は少々増えると思われる.

KNOPPIX による情報実験機セットアップ CD

2005 年度は 1 CD Linux である KNOPPIX [日本語版] を用いた. KNOPPIX はそのイメージを展開し, そのファイルを編集後に iso イメージとして再構築することが可能なため, 情報実験用に カスタマイズしたものを bootable CD にすることができる.

さらに, その CD の内容を HDD にインストールするためのユーティリティ も揃っているため, 受講生が数ヶ月間使うという面でも向いている. (たった数日ならば bootable CD 自体を用いると良いだろう).

また KNOPPIX はベースに Debian を利用しており, ディスクへのインストール を行うとほとんど Debian と同じように動作する (Debian パッケージの インストールやアンインストールも, ピュアな(?) Debian を利用するのと 全く同じように操作可能). これまで Debian を使ってきた経験も 長いのでいろいろ楽と思う.

なお欠点 (?) として, KNOPPIX は高密圧縮された約 650MB のデータを 約 2.0 GB に解凍し, PC のメモリ上に OS を展開するため, ある程度 大きなメモリ (無い場合はスワップ領域) を必要とする. そのため 古い PC では起動そのものに非常に時間がかかることも予想されるが, 少なくとも 2005 年度の情報実験機はそれなりに高性能なので, これに関しては問題ないと考える.

2006 年度以降にこれを呼んでいる方へ

もしも 2006 年度以降にも KNOPPIX を利用しようと考えている方 がいるのであれば, 2005 年度に作成したイメージや CD を 利用することで, 下記の作業をいくつかショートカットできる. 詳しくは最後尾の来年度以降の再利用に関してを参照していただきたい.

参考書籍

下記の作成に関しては以下の書籍を参考にした. この書籍と全く同様の内容に関しては本の該当箇所を指定するに留める. EPnetFaN 書籍としても購入したので, 参照してもらいたい.

準備

KNOPPIX CD

今回は 参考書籍 に付属されていた CD (KNOPPIX 3.8 日本語版) を用いた. Web からイメージをダウンロードする際には <URL:http://www.knopper.net/knoppix-mirrors> から 適当なミラーサーバを選び, iso イメージをダウンロードして欲しい.

iso イメージを焼く方法については, <URL:http://www.ep.sci.hokudai.ac.jp/~inex/y2004/1210/Debian_install/makedisk.html> を参照して欲しい.

リマスタリングのための計算機

KNOPPIX のイメージを展開し, リマスタリング (イメージの再構築) 行うための計算機が必要である. 参考書籍の「HACK #94」によれば, その計算機は以下の条件を 必要とする.

基本的に情報実験機でスワップパーティションかスワップファイルを 作成すれば問題ない.

なお, 実メモリとスワップのチェックは free コマンドを用いればよい.

$ free

スワップの作成に関しては Linux 資格 LPIC を受けよう LV1 第4回: デバイス、ファイルシステム、FHS編 を参考にして欲しい. もちろん 参考書籍 を参考にするのも 有効である.

起動してリマスタリング準備

KNOPPIX CD を CD または DVD ドライブに入れてコンピュータ を起動する. 以下のような boot: プロンプトには何も入力せずに Enter を押す.

boot:

あとは自動的に X まで起動するはずである.

リマスタリングで用いるデバイスに関する注意

以下では, リマスタリングに使用するデバイスを /dev/hda1 とする. デバイスが異なる環境で リマスタリングを行う際には置き換えて読むこと.

ソースファイルシステムの準備

/dev/hda1 に KNOPPIX CD 上のファイルシステム全体を コピーする. なお, デスクトップ上の hda1 アイコンを クリックしてもマウントはされるが, その場合一度 unmount してから以下の作業を開始すること

# mount /dev/hda1 /mnt/hda1
# cd /mnt/hda1
# mkdir source
# mkdir source/KNOPPIX
# cp -Rpv /KNOPPIX/* source/KNOPPIX

コピーには, ディスクの回転速度にもよるが, 約 10 分強の時間がかかる.

chroot でのルートディレクトリ変更

chroot とは, ルートディレクトリを一時的に変更するためのコマンドである. これを用いて一時的にコピーしたファイルシステムをシステム本体と みなし, カスタマイズを行う.

なお, 以下では chroot でルートを変更して行う作業とそうでないもの (デスクトップ環境のカスタマイズは現在稼動しているシステム上で 行う必要がある).

chroot の場合は始めに chroot 下での作業 , 現在稼動している システム上での作業の場合には始めに 非 chroot な稼動中のシステム上 での作業 と明記するので注意されたし.

まず, 起動時に動的に変更されるファイルをコピーし, その後に chroot での移動を行う. 移動後は, /proc を proc ファイルシステム としてマウントする. (これ重要)

# cd /mnt/hda1
# cp /etc/dhcpc/resolv.conf source/KNOPPIX/etc/dhcpc/resolv.conf
# chroot source/KNOPPIX
# mount -t proc /proc proc

なお, この際に sbin などへのパスが通っていないことが考えられる. その場合, /etc/profile などを読み込んでおくと良い.

# . /etc/profile

proc のマウント時の注意

$ mount -t proc /proc proc

でマウントした proc は, df で確認しようとしても, そのままでは proc は表示されない. 確認の際は -a オプションをつけること

$ df -a
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/proc                        0         0         0   -  proc

以下のようなメッセージが表示されたら確認してみること.

mount: /proc は マウント済か proc が使用中です
mount: mtab によると、/proc は proc にマウント済です

/dev/null にアクセスできない問題

もう一つは, 以下のようなエラーが出る場合である.

bash: /dev/null: 許可がありません.

このような場合には, 一旦 /dev/hda1 (もちろんシステムによっては別の デバイスの場合もあるが, ここでは /dev/hda1 を利用していると 仮定する) をアンマウントし, 手動でマウントしなおす.

# umount /dev/hda1
# mount /dev/hda1 /mnt/hda1

情報は <URL:http://knoppix-ml.dennougedougakkai-ndd.org/1001-2000/msg00756.html> より

システムの縮小化

chroot 下での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

まずは一度, 簡単にカスタマイズした後, 一度 iso イメージが 無事に作成できるか確かめる. とりあえず不要そうな パッケージを削除した後にマスタファイルシステムの作成 (練習) にいってみる.

とりあえず重たそうで要らないパッケージの削除

# dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

依存するパッケージと併せて 50.8 MB の節約

# apt-get --purge remove libwine

依存するパッケージと併せて 27.5 MB の節約

# apt-get --purge remove gimp-data

併せて 264 MB の節約. 主に games セクション, sound セクションのパッケー ジや devel セクションの内必要なさそうなもの, サーバアプリケーション関 係のパッケージを削除. テキストを編集するためのパッケージや, imagemagick など最低限のグラフィック関係のツールは残してある.

あと, KDE のシェル(?) である konqueror は敢えて消してある. (cd 使って欲しいから).

# apt-get --purge remove \
  ace-of-penguins airsnort alsa-base alsa-utils apache \
  apache-common apache-utils audacity aumix-gtk autoconf \
  automake1.7 autotools-dev bind9 cdda2wav cddb cdparanoia chromium \
  chromium-data cvs dhcp3-common dhcp3-server ed elinks enigma \
  enigma-data fb-music-low fetchmail flim fortune-mod fortunes-min \
  frozen-bubble frozen-bubble-data gaim gaim-data gif2png giftrans \
  gnuchess gocr gpm gqcam gtans gtk-engines-geramik \
  gtk-engines-geramik-data gtk-engines-qtpixmap \
  gtk2-engines-qtpixmap httptunnel hunt icewm imaze ipchains \
  iptables iptraf isdnvboxclient jackd k3b kamera kasteroids kate \
  kate-plugins katomic kbattleship kdebase \
  kdegraphics-kfile-plugins kdemultimedia-kfile-plugins \
  kdenetwork-kfile-plugins kdevelop3 kdevelop3-data \
  kdevelop3-plugins kfax kget kghostview kgpgcertmanager kiconedit \
  kismet kmahjongg kmail kmailcvt kmix knoppix-terminalserver \
  konq-plugins konqueror kooka korganizer kpaint kppp krdc kreversi \
  krfb ksnapshot ksokoban kteatime ktuberling kuickshow kvdr kview \
  kviewshell kwifimanager lftp libapache-mod-php4 libapache-mod-ssl \
  libcdparanoia0 libcvsservice0 libisccc0 libisccfg0 libkdegames1 \
  libmodplug0 libtiff-tools libtool libxine1 linneighborhood lisa \
  mikmod mobilemesh mpg321 mtr nessus nessusd netris nfs-common \
  nfs-kernel-server nis php4 php4-mysql playmidi pppconfig pppoe \
  pppstatus pptp-linux print-utils-pfeifle radio rdesktop samba \
  samba-common sane semi sfs-client sfs-common smbclient smbfs \
  smpeg-xmms sndconfig-knoppix snort snort-rules-default snortsnarf \
  sound-recorder sox speex squid squid-common startnessus-knoppix \
  sylpheed sylpheed-i18n tcpdump telnetd-ssl thttpd tidy vcdimager \
  vcdtools winesetuptk wireless-tools wl xbattle xboard xboing \
  xchat xchat-common xfig xgalaga xine-ui xmms xmms-cdread \
  xmms-goom xmms-modplug xmms-volnorm xsane xsane-common xskat 

一通りのインストール後にすること

非依存ライブラリの削除

依存されていないライブラリを消すため, 以下のコマンドを 実行. 特にクリティカルなパッケージはないはずだが, 一応 確認した後 Y を押す.

非依存パッケージのリスト表示 (サイズつき)

# deborphan -z | sort -n

合計何バイトの節約になるのかチェック. 今回は 19.3 MB の節約

# deborphan | xargs apt-get --purge remove

以下で実行.

# deborphan | xargs apt-get -y --purge remove

ダウンロードした deb パッケージの削除

# apt-get clean

chroot 脱出

# umount /proc
# exit

マスタファイルシステムの作成 (練習)

システムの縮小化でも述べたが, とりあえず無事に iso イメージが作成可能か調べてみる.

# cd /mnt/hda1
# mkdir master
# rsync -av --exclude "/KNOPPIX/KNOPPIX" /cdrom/ master/
# mkisofs -R -U -V "Knoppix_INEX_2005_TEST" -P "inex@ep.sci.hokudai.ac.jp" \
  -hide-rr-moved -cache-inodes -no-bak -pad \
  source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > \
  master/KNOPPIX/KNOPPIX

2005 年度の情報実験機 3n+1, 3n+2 ならば, だいたい 40 分をみていれば作成できる.

壁紙の変更

/usr/share/wallpapers から適当に見繕って, master/KNOPPIX/background.jpg に上書き

# cp /usr/share/wallpapers/only_k.jpg master/KNOPPIX/background.jpg

md5sums の作成

# cd master
# rm -f KNOPPIX/md5sums
# find -type f -not -name md5sums \
  -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums

KNOPPIX/md5sums が作成されていることを確認し, 親ディレクトリへ戻る.

# cd ..

CD イメージの作成

# mkisofs -pad -l -r -J -v -V "KNOPPIX" \
  -no-emul-boot -boot-load-size 4 -boot-info-table -b \
  boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
  -hide-rr-moved -o knoppix.iso master/

2005 年度の情報実験機 3n+1, 3n+2 ならば, ほぼ 5 分で完了.

iso イメージのチェックと CD ライティング

iso イメージがまともかどうかのチェック

再起動し, knoppix の boot プロンプトに以下のように 入力. 想定通りに起動するかチェックする.

knoppix bootfrom=/dev/hda1/knoppix.iso

iso イメージを CD に焼く

KNOPPIX 本体で CD を焼くことも可能なのかも知れないが, ここでは他の PC にイメージをコピーしてそれをライティングソフトで 焼くことを考える.

サイズがそれなりに大きくなるものの, samba でのコピーなら それほど時間がかからないので, samba サーバを起動して, 移動する.

詳しくは参考書籍の Hack #41 を参照すれば良いが, 以下に簡単に手引を書く.

「K メニュー」→「KNOPPIX」→「Services」→「Start Samba Server」

パスワードを聞かれるので入力する. 最後に読み書きさせるか と問われるが, No を選択する.

後は CD イメージをもらう側の PC で KNOPPIX が起動している PC と同じネットワークセグメントに移動し, マイネットワークで 「検索」で「Knoppix」を探せば見つかるはずである. ユーザ名は knoppix, パスワードは先に入力したものである.

CD でのブートを試してみる

他の PC にて CD を入れてブートしてみる. 当然, BIOS の boot priority の 1st を CD にしておくことを 忘れずに.

起動できたら第1段階は OK. 次はそのイメージを HDD にインストール できるかをチェックする. インストールも出来たらほぼ完了.

いよいよ本格的なイメージ作成に入る.

システムの本格的カスタマイズ

chroot 下での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

KNOPPIX CDを先ほどリマスタリングを行った計算機の ドライブにいれ, 電源を投入する. 起動してリマスタリング準備 を再び行い, リマスタリングの 準備を整える. なお先ほどカスタマイズを行った部分 ( システムの縮小化 )に関しては /dev/hda1 の source/KNOPPIX 以下にそのまま反映されているので, それを そのまま利用する.

ソースリストを epftp に

/etc/apt/sources.list を以下のものに置き換える.

# mv /etc/apt/sources.list /etc/apt/sources.list_org
# vi /etc/apt/sources.list

deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian sarge main contrib non-free
deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian-jp sarge-jp main contrib non-free
deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian-non-US sarge/non-US main contrib non-free
deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian sarge-proposed-updates main contrib non-free
deb ftp://ftp.ep.sci.hokudai.ac.jp/pub/Linux/Debian/debian-security sarge/updates main contrib non-free

リストを更新

# apt-get update

アップグレード

以下のアップグレードには大体 30 分ほどかかる.

# apt-get upgrade --show-upgraded

Reading Package Lists...
Building Dependency Tree...
The following packages have been kept back:
  ipppd isdnactivecards isdnutils-base isdnutils-xtools
  libwvstreams4.0-base libwvstreams4.0-extras lilo mgp mknbi tasksel
  vdr
The following packages will be upgraded:
  acpi alevt alien anthy anthy-el apache2-utils apmd apt apt-utils
  aspell-bin aspell-en autofs bacula-client bacula-common
  bacula-console bacula-fd bb binutils binutils-dev bittorrent
  bsdutils bzip2 cdbackup colorgcc comerr-dev cpp-3.3 cupsys
  cupsys-bsd cupsys-client dash dbus-1 debhelper dictionaries-common
  diffstat doc-base dosfstools dpkg dpkg-dev dselect e2fslibs
  e2fsprogs efax-gtk ethereal ethereal-common ettercap-common
  ettercap-gtk fakeroot findutils fluxbox foomatic-bin foomatic-db
  foomatic-db-engine foomatic-db-gimp-print foomatic-db-hpijs
  foomatic-filters g++-3.3 gcc-3.3 gcc-3.3-base gcj-3.3 gdb gettext
  gettext-base gettext-el gij-3.3 gksu glibc-doc gnupg grep-dctrl
  grub gsfonts gzip hdparm hicolor-icon-theme hostap-utils hostapd
  hotplug hpijs html2text icewm-common ifupdown ijsgimpprint
  imagemagick initrd-tools ipsec-tools irb1.8 jfbterm kaddressbook
  kalarm kandy karm kde-i18n-ja kdeaddons-kfile-plugins kdelibs-bin
  kdelibs-data kdelibs4 kdelibs4-dev kdepim-kfile-plugins
  kdepim-kio-plugins kernel-package klogd knode knotes kompare
  konsolekalendar kontact kpf kpilot kstars kstars-data ksync ktnef
  lesstif2 libanthy0 libapm1 libapr0 libarts1 libarts1-dev libartsc0
  libartsc0-dev libaudiofile-dev libaudiofile0 libblkid1 libbz2-1.0
  libbz2-dev libc6 libc6-dev libcomerr2 libcupsimage2 libcupsys2-dev
  libcupsys2-gnutls10 libcurl3 libdbd-mysql-perl libdm0 libdps1
  libexpat1 libexpat1-dev libfreetype6 libfreetype6-dev libgcc1
  libgcj-common libgcj4 libgcj4-awt libgcj4-common libgcj4-dev
  libgcrypt11 libgcrypt11-dev libgdk-pixbuf2 libgimpprint1
  libgksu1.2-0 libgksuui1.0-0 libglib2.0-0 libglib2.0-data
  libglib2.0-dev libgnutls11 libgnutls11-dev libgphoto2-2
  libgphoto2-port0 libgpmg1 libgtk2.0-0 libgtk2.0-bin
  libgtk2.0-common libice-dev libice6 libieee1284-3 libjpeg-progs
  libjpeg62 libjpeg62-dev libkcal2a libkdeedu1 libkdenetwork2
  libkdepim1 libkleopatra0a libkrb53 libldap2 libltdl3 libmad0
  libmad0-dev libmagick6 libmysqlclient12 libopenexr2 libpcre3
  libpcre3-dev libqt3-compat-headers libqt3-headers libqt3-mt-dev
  libqt3c102-mt libreadline-ruby1.8 libruby1.8 libsane
  libsary-ruby1.8 libsensors3 libsm-dev libsm6 libsmbclient
  libspeex1 libss2 libstdc++5 libstdc++5-3.3-dev libsuikyo-ruby1.8
  libtiff4 libuim0 liburi-perl libusb-0.1-4 libusb-dev libuuid1
  libwmf-bin libwmf0.2-7 libx11-6 libx11-dev libxaw7 libxaw7-dev
  libxext-dev libxext6 libxft-dev libxft1 libxft2 libxi-dev libxi6
  libxml2 libxml2-utils libxmu-dev libxmu6 libxmuu-dev libxmuu1
  libxp-dev libxp6 libxpm-dev libxpm4 libxrandr-dev libxrandr2
  libxslt1.1 libxt-dev libxt6 libxtrap-dev libxtrap6 libxtst-dev
  libxtst6 libxv-dev libxv1 libzvbi-common libzvbi0 locales login
  logrotate mc mdadm menu mew mew-bin minicom modconf
  module-assistant mozilla-firefox mozilla-firefox-locale-de-de
  mozilla-thunderbird mozilla-thunderbird-locale-de
  mozilla-thunderbird-offline mutt mysql-client mysql-common
  mysql-server nasm nedit nmap passwd php4-common pkg-config pm-dev
  pnm2ppa po-debconf powermgmt-base ppp pppoeconf prime-dict pump
  python python-tk python2.3 python2.3-tk qt3-dev-tools raidtools2
  rcs rsync ruby1.8 sane-utils sharutils snort-common sslwrap
  stunnel sudo suikyo-elisp suikyo-table symlinks sysklogd
  telnet-ssl tethereal tftp tftpd-hpa twm uim-common uim-utils
  uim-xim unzoo usbutils util-linux util-linux-locales vim
  vim-common vim-gtk vim-scripts vimpart vorbis-tools vpnc wget
  whois x-dev xbase-clients xdm xfonts-100dpi
  xfonts-100dpi-transcoded xfonts-75dpi xfonts-75dpi-transcoded
  xfonts-base xfonts-base-transcoded xfonts-scalable xfree86-common
  xfs xlibmesa-dri xlibmesa-gl xlibmesa-gl-dev xlibmesa-glu
  xlibmesa-glu-dev xlibs xlibs-data xlibs-dev xlibs-static-dev
  xlibs-static-pic xnest xserver-common xserver-xfree86 xterm xutils
  zile zlib1g zlib1g-dev
345 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.
Need to get 267MB of archives.
After unpacking 12.2MB of additional disk space will be used.
Do you want to continue? [Y/n]

インストール中の質問

設定ファイル`/etc/vim/vimrc'
 ==> これはインストールしてから(あなたかスクリプトによって)変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : この処理をバックグラウンドにし、状況を確認する
 デフォルトでは現在使っている自分のバージョンを残します。
*** vimrc (Y/I/N/O/D/Z) [デフォルト=N] ?             

Y を選択.

一通りのインストール後にすること を行うのを忘れずに.

flash player をインストールする

Flash Player ダウンロードセンター より, install_flash_player_7_linux.tar.gz をダウンロードする. 展開し, 必要なファイルを mozilla-firefox の plugin ディレクトリに 移動する. 確認したいが, chroot 下での作業なので, 実際の確認は マスタファイルシステムの作成 (本番) の後になる. とりあえず, 非 chroot 下以外の稼動中のシステムでも試してみると良いだろう.

$ tar zxvf install_flash_player_7_linux.tar.gz
$ cd install_flash_player_7_linux
# cp libflashplayer.so flashplayer.xpt \
  /mnt/hda1/source/KNOPPIX/usr/lib/mozilla-firefox/plugins/

以下の URL より情報を入手

http://mland98.rc.kyushu-u.ac.jp/cgi-bin/debian/joyful/joyful.cgi

acroread をインストールする

xpdf はフォントが貧弱なので acroread をインストールする. [epnetfan-ml 4891] 参照.

/mnt/hda1 以下の /etc/apt/sources.list に以下の一行を追加する.

deb ftp://ftp.nerim.net/debian-marillat testing main

そして, 以下のように update と install を行う. これで acroread ver 7.0 (英語版) がインストールされる. 英語の PDF のみを見る場合にはこれで十分であろう.

# apt-get update
# apt-get install acroread

日本語フォントのインストール

日本語の PDF を見るためには日本語のフォントも必要になる. 本来はフォントを Adobe のページからダウンロードして必要な場所に 手動で置く必要があるのだが, それらの作業を一括で行ってくれる deb パッケージがあるのでそれを取得する. uploader Debian GNU/Linux スレッドテンプレacroread-japanesefont_7.0.0-0_i386.deb をダウンロードする.

以下のコマンドで, 取得した deb パッケージをインストールする.

# dpkg -i acroread-japanesefont_7.0.0-0_i386.deb

フォントのダウンロードに少々時間がかかるかもしれないが, しばらく待っているとダウンロードしたフォントの展開, および適切な場所への移動等行ってくれる.

後かたづけ

最後に /mnt/hda1 以下の /etc/apt/sources.list から以下の一行を削除する.

deb ftp://ftp.nerim.net/debian-marillat testing main

そして余計な deb のアーカイブを消す.

# apt-get clean

いくつかのツールのインストール

# apt-get install qiv tree qkc

ssh による外部からのログインを可能にする

ssh は元々インストールされているものの, セキュリティの 問題から鍵が生成されておらず, 外部からのログインができない. 以下のコマンドで sshd を起動するよう設定し, 外部からの ssh ログインを可能にする. ちなみに, /usr/sbin への パスが通っていない場合は, 以下のようにパスを通してから実行

# export PATH=$PATH:/usr/sbin:/sbin
# dpkg-reconfigure ssh

ntp サーバの設定

/etc/default/ntpdate に以下の記述を加える. こうしておくことで, /etc/init.d/ntpdate start すれば時間合わせができる.

NTPSERVERS="time-nw.nist.gov"

ネットワーク設定

/etc/network/interface に以下のように記述. DHCP は CD ブートの時には有効であるが, debian システムとして ハードディスクにインストールした際には無効になる. その際, 以下のコメントアウトを外してネットワーク設定を有効にする. なお, 以下の設定は 2005 年度現在での情報実験機周りの ネットワークの状況に拠っているので環境が変わった場合は 書き換えた方が良い.

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
# automatically added when upgrading
auto lo
iface lo inet loopback

# For INEX VTA!!
#
# Please sheck "dmesg". And select only non Gigabig Ethernet device.
#

#auto eth0
#iface eth0 inet static
#        address 192.168.16.???
#        netmask 255.255.255.0
#        network 192.168.16.0
#        broadcast 192.168.16.255
#        gateway 192.168.16.1

#auto eth1
#iface eth1 inet static
#        address 192.168.16.???
#        netmask 255.255.255.0
#        network 192.168.16.0
#        broadcast 192.168.16.255
#        gateway 192.168.16.1

さらに, /etc/resolv.conf が以下のようになっているかチェック.

search ep.sci.hokudai.ac.jp
nameserver 133.87.45.70
nameserver 133.87.45.66
nameserver 133.87.1.11

startx の際の dpi の設定

コンソールログイン時に普通にユーザが startx すると, dpi が 100 になってしまう. KDE デフォルトと同じ dpi 75 にするには, /usr/X11R6/lib/X11/xinit/xserverrc を以下のように書き換えると良い.

#!/bin/sh
exec /usr/bin/X11/X -dpi 75 -nolisten tcp

KDE のデスクトップをシンプルに

非 chroot な稼動中のシステム上での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

ポリシー よりできるだけシンプルなデスクトップにすべく, KDE のデスクトップをカスタマイズする.

もちろん他のウィンドウマネージャを編集する手もあったが, 作業コストの問題からこの方法を選んだ.

なお, この作業は chroot 以下ではなく, 稼動中のシステム上で行うので, chroot しているのであれば別のウィンドウを立ち上げてその中で作業 するか, もしくはchroot 脱出すること.

/etc/skel/Desktop を綺麗に

デフォルトだと, ユーザーを作成した際に, /etc/skel 以下から 様々なファイルがコピーされる. 不要な以下を削除する.

$ cd /home/knoppix/Desktop
$ rm Trash/.directory Trash/*
$ rm sample_japanese/.dictory sample_japanese/*
$ rmdir Trash sample_japanese
$ rm * .directory
$ cd ..

KDE のデスクトップ設定の整理と保存

デスクトップのアイコンや下部の「パネル」の掃除を行う.

ゴミ箱の場所の設定を変更

ゴミ箱は毎回 X の起動時に$HOME/Desktop に作成されてしまうので, KDE の設定ファイルを変更して, 作成場所を変更し, 隠してしまう.

$ vi /home/knoppix/.kde/share/config/kdeglobals

以下の部分を

[Paths]
Trash=$HOME/Desktop/Trash/

以下のように変更する.

[Paths]
Trash=$HOME/.Trash

KDE の「パネル」をシンプルに

KDE デスクトップ下部のパネルの内, コンソール (konsole) 以外を すべて削除する. 削除する方法はボタン上で右クリックし, 「…ボタンを削除」を選択する.

コンソールボタンは, 右クリックして「プロパティ」を選択し, 「アプリケーション」で「コマンド」の部分の konsole を 消して, kterm を入れる. そこで「OK」を押すのだが, アイコンがダサくなってしまう. 再度プロパティを選択し, 「一般」でアイコン本体をクリックし, 先の konsole の アイコンに戻す.

このままでは終了できないので, 先ほどまでボタンがあったところで 右クリックし, 「追加」→「アプレット」→「ロック/ログアウト アプレット」 を選択し, ログアウト用のボタンを作成しておく.

更にログアウトボタンを右クリックして「セッション管理の設定」を 選択し, 「シャットダウンオプションの提供」のチェックを外し, 「ログイン時」は「空のセッションで開始」にして, 「デフォルトのシャットダウンオプション」を「現在のセッションの終了」 にする.

ちなみに, 一番左の 「K メニュー」は kmenuedit コマンドで, 「KNOPPIX」の「KNOPPIX の設定の保存」は saveconfig で 可能であるので, 利用したい場合はそれらのコマンドで代替する.

各アイコンの位置だが, 「ロック/ログアウト アプレット」は一番左, その次に「kterm」, 4 つのウインドウの上の配置については 右側の言語設定のすぐ左に持ってくる. 現在開いているウィンドウ一覧は「kterm」のすぐ右に持ってくる.

右クリックの動作の変更

デスクトップ上で右クリックにいろいろ余計な(?)動作が存在するので, 可能なことを少なくする.

まず kmenuedit コマンドを実行し, 最低限必要なアイコンを作成する. (ほとんど趣味)

この 2 つの設定が終了したら, 「ファイル」→「保存」する.

次に, 実際に右クリックの動作を変更する. デスクトップ上で 右クリックし「デスクトップの設定」を選択する. 「動作」を選択して 「マウスボタンの動作」で「右ボタン」を「カスタムメニュー1」にする. そして右の編集ボタンをクリックし, 既にある「コンソール」を削除して 「新規」で, 上記で作成した Kanji Terminal と 「デスクトップの設定」を 選択する.

KDE 上の壁紙の変更

始めは cdrom や /UNIONFS 以下の壁紙を利用していたりするので, 新たに CD イメージを作成した際, 壁紙が有効にならない可能性がある. そのため, /usr/share/wallpapers 以下の壁紙を選択しておく. このディレクトリならば, CD イメージ化した後にも反映される.

右クリックして「デスクトップの設定」を選択し, 「背景」の「画像」で 右側のフォルダの形をしたボタンを選択して, 今回は以下の画像を 選択する.

/usr/share/wallpapers/only_k.jpg

最後に「OK」を選択して完了.

mozilla-filefox の個人設定

初期画面を INEX に

$ mozilla-firefox

Mozilla を一度起動し, デフォルトページを inex にする. /home/knoppix/.mozilla/firefox/3d4ef4xp.default/prefs.js に 初期ページの設定が書き込まれるはずである.

pdf を acroread で開く

xpdf は日本語表示が弱いので, インストールした acroread で 開くようにしておく. ただし, まだ source/KNOPPIX 以下にインストールした だけであり, デスクトップ /KNOPPIX 以下にはまだインストールされていないはずなので, 以下のような手段をとる.

そして /home/knoppix/.mozilla/firefox/3d4ef4xp.default に移動し, そこの mimeTypes.rdf を以下のように編集する.

vi /home/knoppix/.mozilla/firefox/3d4ef4xp.default

編集前

<RDF:Description RDF:about="urn:mimetype:externalApplication:application/pdf"
                 NC:path="/UNIONFS/usr/bin/gv"
                 NC:prettyName="gv" />

編集後

<RDF:Description RDF:about="urn:mimetype:externalApplication:application/pdf"
                 NC:path="/UNIONFS/usr/bin/acroread"
                 NC:prettyName="acroread" />

後かたづけ

最後に, 一度 firefox を起動し, 「編集」→「設定」 →「プライバシー」→「すべてをクリア」で情報を クリアしておくこと.

デスクトップ環境設定ファイル knoppix.sh と configs.tbz の保存

「最近の...」系の削除

最近のファイル, みたいなのを削除する

rm /home/knoppix/.kde/share/apps/RecentDocuments/*
rm /home/knoppix/.bash_history
rm /home/knoppix/.ssh/known_hosts
rm /home/knoppix/.viminfo
rm /home/knoppix/.emacs.el

設定の保存

saveconfig コマンドで設定を保存する.

$ saveconfig

選択するのは以下の 2 つである. 他のものはちゃんと選択から外すこと.

保存先は /mnt/hda1 にする.

言語関係の設定ファイルの編集

非 chroot な稼動中のシステム上での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

デフォルトの ~/.bashrc や ~/.bash_profile はいろいろ親切設定なので, オリジナルはバックアップとして別に移動し, 簡単なものに変更する.

~/.bash_profile

$ cd /home/knoppix
$ mv .bash_profile .bash_profile_knx_org
$ vi .bash_profile

  # ~/.bash_profile: executed by bash(1) for login shells.
  # see /usr/share/doc/bash/examples/startup-files for examples.
  # the files are located in the bash-doc package.

  # the default umask is set in /etc/login.defs
  #umask 022

  # include .bashrc if it exists
  if [ -f ~/.bashrc ]; then
     . ~/.bashrc
  fi

~/.bashrc

$ cd /home/knoppix
$ mv .bashrc .bashrc_knx_org
$ vi .bashrc

  # ~/.bashrc: executed by bash(1) for non-login shells.
  # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
  # for examples

  # If not running interactively, don't do anything:
  [ -z "$PS1" ] && return

  XIM=kinput2

source/KNOPPIX/etc/skel 以下へのコピー

非 chroot な稼動中のシステム上での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

/mnt/hda1/source/KNOPPIX/etc/skel/ への上書き

$HOME/.kde, $HOME/.mozilla など設定ファイルを /mnt/hda1/source/KNOPPIX/etc/skel/ へ 上書きする.

# rsync --exclude cache-Knoppix --exclude socket-Knoppix \
        --exclude tmp-Knoppix \
        --delete -av /home/knoppix/.kde/ /mnt/hda1/source/KNOPPIX/etc/skel/.kde/
# rsync --delete -av /home/knoppix/Desktop/ /mnt/hda1/source/KNOPPIX/etc/skel/Desktop/
# rsync --delete -av /home/knoppix/.local/ /mnt/hda1/source/KNOPPIX/etc/skel/.local/
# rsync --delete -av /home/knoppix/.mozilla/ /mnt/hda1/source/KNOPPIX/etc/skel/.mozilla

# cp /home/knoppix/.bashrc /mnt/hda1/source/KNOPPIX/etc/skel/
# cp /home/knoppix/.bash_profile /mnt/hda1/source/KNOPPIX/etc/skel/

STAFF, TA ユーザを作成する

chroot 下での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

/mnt/hda1/source/KNOPPIX/etc/skel/ が整理されたので, STAFF と TA のユーザを作成する. 氏名などの情報は epwww から持ってくる. パスワードは適当につけて, 本人たちのみに通知する.

# adduser shosuke
# adduser keikei
# adduser odakker
# adduser morikawa
# adduser totera
# adduser kk

設定がインストール時に無効になるシステム設定への対処

非 chroot な稼動中のシステム上での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

以下のものは, 設定を行なっても iso イメージ → CD → ハードディスクへの インストールとなる過程で無効になってしまうものである. そのため, パッチとその置き換えスクリプトを用意することでさっくりと 更新する. 作成したパッチと置き換えスクリプトは以下に置いてある.

置場は /mnt/hda1/source/KNOPPIX/usr/local/KNOPPIX-INEX-PATCH に置く. 以下の<your ep mail account>をあなたの専攻メールサーバアカウント に変更して, ダウンロードする.

# scp -r \
  <your ep mail account>@www.ep.sci.hokudai.ac.jp:~inex/y2005/urakata/setupCD/KNOPPIX-INEX-PATCH \
  /mnt/hda1/source/KNOPPIX/usr/local/

なおパッチの元ファイルと変更した後のファイルは

に置いてあるので, 変更を行う場合はそちらを参照のこと.

以下に変更の具体的な内容を記すが, これらを知らなくても問題は無いので お時間が無い場合はマスタファイルシステムの作成 (本番) へ行って欲しい.

KDE の初回ウィザードを表示させないために

KDE の初回設定ウィザードが起動されるかどうかは, ~/.kde/share/config/kpersonalizerc による, この中の FirstLogin を false にすることで, ウィザードは起動しなくなる.

$ vi ~/.kde/share/config/kpersonalizerc

コンソールログインにする

再び /mnt/hda1/source/KNOPPIX に chroot したターミナルに 戻る.

/etc/inittab の initdefault を 3 にする.

具体的には以下を

# The default runlevel.
id:5:initdefault:

このようにする.

# The default runlevel.
id:3:initdefault:

その際, /etc/motd も以下のように編集しておく

Welcome to INEX!!

  This machine is set up for your practices.
  On this occasion, please learn a lot of
  knowledge and technologies for the
  computer and the network by all means.
  More power to you!!

*** NOTE ***

If you want to use GUI applications,
please input "startx" and Enter.

But by default, your Japanese environment is not
set up. If you want read and write Japanese,
please input "export LC_ALL=ja_JP.eucJP".

************

言語関係の設定ファイルの編集

/etc/profile

デフォルトはいろいろ設定しすぎなので, オリジナルはバックアップとして別に移動し, 簡単なものに変更する.

# cd /etc
# mv profile profile_knx_org
# vi profile

  # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
  # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

  PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:"
  [ "$UID" = "0" ] && PATH="/sbin:/usr/sbin:/usr/local/sbin:$PATH"

  if [ "$BASH" ]; then
    PS1='\u@\h:\w\$ '
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi

  export PATH PS1

  umask 022

/etc/environment

勝手に言語環境を設定されるので, 全部コメントアウト

# vi /etc/environment

  #LANG="ja_JP.eucJP"
  #LANGUAGE="ja"
  #LC_MESSAGES=""

sudoers の設定

STAFF, TA ユーザを作成するで作成したユーザを sudoers に加えておく.

# visudo

shosuke  ALL=(ALL) ALL
keikei   ALL=(ALL) ALL
odakker  ALL=(ALL) ALL
morikawa ALL=(ALL) ALL
totera   ALL=(ALL) ALL
kk       ALL=(ALL) ALL

マスタファイルシステムの作成 (本番)

非 chroot な稼動中のシステム上での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]

ここまで終わったら, いよいよ本番のマスタファイルシステムを 作成する.

chroot 脱出 で抜け出し, マスタファイルシステムの作成 を参考にシステムを再構築する. この際, 古い /mnt/hda1/KNOPPIX/KNOPPIX と knoppix.iso は一度消す. 具体的には以下の通り.

# umount /proc
# exit

$ cd /mnt/hda1
# rm master/KNOPPIX/KNOPPIX
# rm knoppix.iso
# mkisofs -R -U -V "Knoppix_INEX_2005_ver1" -P "inex@ep.sci.hokudai.ac.jp" \
  -hide-rr-moved -cache-inodes -no-bak -pad \
  source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > \
  master/KNOPPIX/KNOPPIX

必要であれば 壁紙の変更 を行なう.

デスクトップ設定の保存

デスクトップ環境設定ファイル knoppix.sh と configs.tbz の保存 で/mnt/hda1 以下に作成した knoppix.sh と configs.tbz を master/KNOPPIX 以下にコピーする

# cd /mnt/hda1
# cp knoppix.sh configs.tbz master/KNOPPIX/

続いて md5sums の作成, CD イメージの作成 と進む. 具体的には以下の通り.

# cd master
# rm -f KNOPPIX/md5sums
# find -type f -not -name md5sums \
  -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums
# cd ..

# mkisofs -pad -l -r -J -v -V "KNOPPIX" \
  -no-emul-boot -boot-load-size 4 -boot-info-table -b \
  boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
  -hide-rr-moved -o knoppix.iso master/

最後に iso イメージがまともかどうかのチェック した後, iso イメージを CD に焼くして CD でのブートを試してみるする. 気に入らない部分がある場合は 再度カスタマイズを行い, イメージ及び CD を作成する.

ディスクへのインストール

CD ブートによる起動が確認されたら, 次はディスクへの インストールを行ってみる.

インストール手順があるので, そちらを 参考にしてインストールを行う.

確認事項

上記ページの「最終確認」にあわせ, 以下のことも確認してくこと. (以下は 2005 年度にセットアップ CD の作成を担当したものの 趣味による)

来年度以降の再利用に関して

2006 年度以降, KNOPPIX をセットアップ CD として利用するならば, 2005 年度に作成した CD もしくはその iso イメージをそのまま 利用可能である. 基本的には ポリシー に従うとして, 以下で必ず必要になる作業と, 年度ごとに変更を必要とするような部分のみを 記す. 基本的には上記の作業へのリンクである.

では, 頑張ってくだされ〜. (こんな奇特なことする人もう居ないか…?)


最終更新: 2005/08/11, 作成日: 2005/08/09 EPnetFaN © 2005