[BACK]
情報実験 (INEX) では, 受講者は授業の前半はセットアップ済みの UNIX 系 OS を用いて実習を行う.
以下ではその初期状態の UNIX 環境を整えるためのセットアップ CD の作成方法を記す.
整える UNIX 環境のポリシーを箇条書きにすると,
なお, セットアップ CD を作成するのは, 個々の計算機の環境が ばらつかないためである. Debian も sarge になり, インストールも 随分と簡単になってきたので, 簡単にドキュメントを作成して, それに沿って VTA の皆さんにインストールを行ってもらっても いいのかもしれない. その代わり, TA が作成された個々の環境を チェックする手間は少々増えると思われる.
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 年度以降にも KNOPPIX を利用しようと考えている方 がいるのであれば, 2005 年度に作成したイメージや CD を 利用することで, 下記の作業をいくつかショートカットできる. 詳しくは最後尾の来年度以降の再利用に関してを参照していただきたい.
下記の作成に関しては以下の書籍を参考にした. この書籍と全く同様の内容に関しては本の該当箇所を指定するに留める. EPnetFaN 書籍としても購入したので, 参照してもらいたい.
今回は 参考書籍 に付属されていた 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 での移動を行う. 移動後は, /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
$ 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 にマウント済です
もう一つは, 以下のようなエラーが出る場合である.
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
# apt-get clean
# 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
# cd master # rm -f KNOPPIX/md5sums # find -type f -not -name md5sums \ -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums
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/
2005 年度の情報実験機 3n+1, 3n+2 ならば, ほぼ 5 分で完了.
再起動し, knoppix の boot プロンプトに以下のように 入力. 想定通りに起動するかチェックする.
knoppix bootfrom=/dev/hda1/knoppix.iso
KNOPPIX 本体で CD を焼くことも可能なのかも知れないが, ここでは他の PC にイメージをコピーしてそれをライティングソフトで 焼くことを考える.
サイズがそれなりに大きくなるものの, samba でのコピーなら それほど時間がかからないので, samba サーバを起動して, 移動する.
詳しくは参考書籍の Hack #41 を参照すれば良いが, 以下に簡単に手引を書く.
「K メニュー」→「KNOPPIX」→「Services」→「Start Samba Server」
パスワードを聞かれるので入力する. 最後に読み書きさせるか と問われるが, No を選択する.
後は CD イメージをもらう側の PC で KNOPPIX が起動している PC と同じネットワークセグメントに移動し, マイネットワークで 「検索」で「Knoppix」を探せば見つかるはずである. ユーザ名は knoppix, パスワードは先に入力したものである.
他の PC にて CD を入れてブートしてみる. 当然, BIOS の boot priority の 1st を CD にしておくことを 忘れずに.
起動できたら第1段階は OK. 次はそのイメージを HDD にインストール できるかをチェックする. インストールも出来たらほぼ完了.
いよいよ本格的なイメージ作成に入る.
chroot 下での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]
KNOPPIX CDを先ほどリマスタリングを行った計算機の ドライブにいれ, 電源を投入する. 起動してリマスタリング準備 を再び行い, リマスタリングの 準備を整える. なお先ほどカスタマイズを行った部分 ( システムの縮小化 )に関しては /dev/hda1 の source/KNOPPIX 以下にそのまま反映されているので, それを そのまま利用する.
/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 ダウンロードセンター より, 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
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 は元々インストールされているものの, セキュリティの 問題から鍵が生成されておらず, 外部からのログインができない. 以下のコマンドで sshd を起動するよう設定し, 外部からの ssh ログインを可能にする. ちなみに, /usr/sbin への パスが通っていない場合は, 以下のようにパスを通してから実行
# export PATH=$PATH:/usr/sbin:/sbin # dpkg-reconfigure ssh
/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 が 100 になってしまう. KDE デフォルトと同じ dpi 75 にするには, /usr/X11R6/lib/X11/xinit/xserverrc を以下のように書き換えると良い.
#!/bin/sh exec /usr/bin/X11/X -dpi 75 -nolisten tcp
非 chroot な稼動中のシステム上での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]
ポリシー よりできるだけシンプルなデスクトップにすべく, KDE のデスクトップをカスタマイズする.
もちろん他のウィンドウマネージャを編集する手もあったが, 作業コストの問題からこの方法を選んだ.
なお, この作業は chroot 以下ではなく, 稼動中のシステム上で行うので, chroot しているのであれば別のウィンドウを立ち上げてその中で作業 するか, もしくはchroot 脱出すること.
デフォルトだと, ユーザーを作成した際に, /etc/skel 以下から 様々なファイルがコピーされる. 不要な以下を削除する.
$ cd /home/knoppix/Desktop $ rm Trash/.directory Trash/* $ rm sample_japanese/.dictory sample_japanese/* $ rmdir Trash sample_japanese $ rm * .directory $ cd ..
デスクトップのアイコンや下部の「パネル」の掃除を行う.
ゴミ箱は毎回 X の起動時に$HOME/Desktop に作成されてしまうので, KDE の設定ファイルを変更して, 作成場所を変更し, 隠してしまう.
$ vi /home/knoppix/.kde/share/config/kdeglobals
以下の部分を
[Paths] Trash=$HOME/Desktop/Trash/
以下のように変更する.
[Paths] Trash=$HOME/.Trash
KDE デスクトップ下部のパネルの内, コンソール (konsole) 以外を すべて削除する. 削除する方法はボタン上で右クリックし, 「…ボタンを削除」を選択する.
コンソールボタンは, 右クリックして「プロパティ」を選択し, 「アプリケーション」で「コマンド」の部分の konsole を 消して, kterm を入れる. そこで「OK」を押すのだが, アイコンがダサくなってしまう. 再度プロパティを選択し, 「一般」でアイコン本体をクリックし, 先の konsole の アイコンに戻す.
このままでは終了できないので, 先ほどまでボタンがあったところで 右クリックし, 「追加」→「アプレット」→「ロック/ログアウト アプレット」 を選択し, ログアウト用のボタンを作成しておく.
更にログアウトボタンを右クリックして「セッション管理の設定」を 選択し, 「シャットダウンオプションの提供」のチェックを外し, 「ログイン時」は「空のセッションで開始」にして, 「デフォルトのシャットダウンオプション」を「現在のセッションの終了」 にする.
ちなみに, 一番左の 「K メニュー」は kmenuedit コマンドで, 「KNOPPIX」の「KNOPPIX の設定の保存」は saveconfig で 可能であるので, 利用したい場合はそれらのコマンドで代替する.
各アイコンの位置だが, 「ロック/ログアウト アプレット」は一番左, その次に「kterm」, 4 つのウインドウの上の配置については 右側の言語設定のすぐ左に持ってくる. 現在開いているウィンドウ一覧は「kterm」のすぐ右に持ってくる.
デスクトップ上で右クリックにいろいろ余計な(?)動作が存在するので, 可能なことを少なくする.
まず kmenuedit コマンドを実行し, 最低限必要なアイコンを作成する. (ほとんど趣味)
「設定」を開き, 右クリックして「新規項目」を選択, 「項目名」は, 「デスクトップの設定」とする. アイコンは 一つ上の「設定」と同じにする. コマンドは以下の一行 (改行して表示してあるが, 一行で入力すること
kcmshell [kdeinit] kcmshell --caption デスクトップ kde-background kde-desktopbehavior kde-desktop kde-screensaver kde-display
この 2 つの設定が終了したら, 「ファイル」→「保存」する.
次に, 実際に右クリックの動作を変更する. デスクトップ上で 右クリックし「デスクトップの設定」を選択する. 「動作」を選択して 「マウスボタンの動作」で「右ボタン」を「カスタムメニュー1」にする. そして右の編集ボタンをクリックし, 既にある「コンソール」を削除して 「新規」で, 上記で作成した Kanji Terminal と 「デスクトップの設定」を 選択する.
始めは cdrom や /UNIONFS 以下の壁紙を利用していたりするので, 新たに CD イメージを作成した際, 壁紙が有効にならない可能性がある. そのため, /usr/share/wallpapers 以下の壁紙を選択しておく. このディレクトリならば, CD イメージ化した後にも反映される.
右クリックして「デスクトップの設定」を選択し, 「背景」の「画像」で 右側のフォルダの形をしたボタンを選択して, 今回は以下の画像を 選択する.
/usr/share/wallpapers/only_k.jpg
最後に「OK」を選択して完了.
$ mozilla-firefox
Mozilla を一度起動し, デフォルトページを inex にする. /home/knoppix/.mozilla/firefox/3d4ef4xp.default/prefs.js に 初期ページの設定が書き込まれるはずである.
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 を起動し, 「編集」→「設定」 →「プライバシー」→「すべてをクリア」で情報を クリアしておくこと.
最近のファイル, みたいなのを削除する
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 はいろいろ親切設定なので, オリジナルはバックアップとして別に移動し, 簡単なものに変更する.
$ 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
$ 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
非 chroot な稼動中のシステム上での作業 [参照: chroot でのルートディレクトリ変更 | chroot 脱出]
$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/
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/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". ************
デフォルトはいろいろ設定しすぎなので, オリジナルはバックアップとして別に移動し, 簡単なものに変更する.
# 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
勝手に言語環境を設定されるので, 全部コメントアウト
# vi /etc/environment #LANG="ja_JP.eucJP" #LANGUAGE="ja" #LC_MESSAGES=""
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 の作成を担当したものの 趣味による)
X の起動時に -dpi が 75 に設定されているか. 以下のコマンドを入力して -dpi よりも後ろの数字が 75 になっている ことを確認.
$ ps aux | grep /usr/bin/X11/X
2006 年度以降, KNOPPIX をセットアップ CD として利用するならば, 2005 年度に作成した CD もしくはその iso イメージをそのまま 利用可能である. 基本的には ポリシー に従うとして, 以下で必ず必要になる作業と, 年度ごとに変更を必要とするような部分のみを 記す. 基本的には上記の作業へのリンクである.
userdel -r
コマンドを利用すると楽だろう.では, 頑張ってくだされ〜. (こんな奇特なことする人もう居ないか…?)