coLinux作業
Last-modified: 2006-04-18 (火) 20:56:09 (6576d)
※※このサイトは2012年頃より更新を停止しています。※※
coLinux作業
ここでは、coLinuxを使用するに当たって行った作業の履歴を、自分のために、ひいてはどなたかの参考にもなりうるように残してみたいと思います。
常套句ですが、「この通りにやればできる」というものではありません。参考にされる際には、自己責任で行ってください。
(記:2005年9月ごろ)
環境
機種 | Endeavor MT7000 (Epson Direct) |
OS | Windows XP Home Edition Version 2002 Service Pack 2 |
CPU | Celeron(R) CPU 1.80GHz |
メモリ | 1.82GHz、256MB RAM |
HD構成 | C:10.0GB D:5.99GB E:21.2GB |
その他 | セキュリティソフト無し |
下準備
ホストマシン(WindowsXP)上に準備するものです。
- 2Gバイトサイズのイメージファイルを2つ準備する。
一つは / 用。
もう一つは /home 用。
それぞれのイメージを別々のパーティションとしてマウントすることが出来る。
こうしておいた方が、ホームディレクトリのバックアップや他サーバへ移動が楽で、何かとkimita的に便利なので。- windowsのフリーソフトにも作成できるものがあるみたいなのでそれを使ってもいい。
別のlinux端末があればそこで作ってFTPで持ってくるとか。
cygwinとか入ってればそれで下記のような感じでddコマンド使って作成、windows上に持ってくる。$ dd if=/dev/zero of=/tmp/home2G.img bs=1024 count=2000 $ dd if=/dev/zero of=/tmp/root2G.img bs=1024 count=2000 ※inputを/dev/zeroから、outputを/tmp/home2G.imgおよび/tmp/root2G.imgへ、byteサイズ1024単位で2000回という意味でいいはず
- windowsのフリーソフトにも作成できるものがあるみたいなのでそれを使ってもいい。
- 上記と同様にしてswap用のイメージファイルも作っておく
- swapイメージは、coLinuxをインストールするPCのが搭載しているメモリ容量と相談する。
一般的にswapパーティションのサイズは搭載メモリの1.5〜2倍ぐらい見込んでおけってゆうよね?
よってcoLinuxが使う最大メモリ容量の2倍以上準備しておけばいいと思う。
例えば俺の場合、デスクトップPCではメモリが256MB積んであるんだけど、coLinuxに64MBぐらい割り当てたいので128MB以上は欲しい。
で、ディスクに余裕があったので256MBを用意した。$ dd if=/dev/zero of=/tmp/256Mb bs=1024 count=256
- swapイメージは、coLinuxをインストールするPCのが搭載しているメモリ容量と相談する。
coLinuxをインストール
メモ置き場さん - http://scratchpad.fc2web.com/index.html
主に上記サイトを参考にして以降の作業を行う。
- インストール
ここ - https://sourceforge.net/project/showfiles.php?group_id=98788
から0.6.2-colinux-2.6.10を持ってきてインストール。- select components to installとかゆわれたら
ここでは下記を選択した。- colinux
- colinux Virtual Ethernet Driver (TAP-Win32)
- Root Filesystem image Download
※仮想ネットワークドライバについて
このあたり参照して、自分の環境・目的にに合ったドライバを選択して設定してください。
- Destination Folderとか聞かれたら
C:\Program Files\coLinux
- rootfilesystemとか言われたら
Choose a distribution: Debian (21 Mb, extracts to 1Gb) Location preference: Asia
- select components to installとかゆわれたら
- Debian-3.0r2.ext3-mit-backports.1gb.bz2を解凍。
出来たフォルダをDebianに変える。
さらにその中のrootfilesystemの長い名前をDebian-3.0r2.imgに直す。 - C:\Program Files\coLinux\フォルダ直下のdefult.colinux.xmlという設定ファイルをコピーしてファイル名を例えばhoge.colinux.xmlにして下記のように編集。
<?xml version="1.0" encoding="UTF-8"?> <colinux> <block_device index="0" path="\DosDevices\C:\Program Files\coLinux\Debian\Debian-3.0r2.img" enabled="true" /> <block_device index="1" path="\DosDevices\C:\Program Files\coLinux\swap\256Mb" enabled="true" /> <block_device index="2" path="\DosDevices\C:\Program Files\coLinux\Debian\root2G.img" enabled="true" /> <block_device index="3" path="\DosDevices\C:\Program Files\coLinux\Debian\home2G.img" enabled="true" /> <cofs_device index="0" path="\DosDevices\C:\" type="flat" enabled="true" /> <bootparams>root=/dev/cobd0</bootparams> <initrd path="initrd.gz" /> <image path="vmlinux" /> <memory size="64" /> <network index="0" name="TAP-Win32" type="tap" /> </colinux>
準備してあったswapファイルイメージとroot2G.imgおよびhome2G.imgを、設定ファイルの記述に合うように配置。 - ファイル配置が済んだら、コマンドプロンプトを起動して下記のように入力してEnterしてとりあえず起動してみる。
C:\Program Files\coLinux>colinux-daemon -c hoge.colinux.xml
「Cooperative Linux console」ってタイトルの窓が現れてログインプロンプトまで行ったら起動OK。
起動が確認できたら、とりあえず
ユーザ:root
パスワード:root
でログイン。
初期状態ではキーボードがUS配列扱いなのでビビる。
コマンド「# dpkg-reconfigure console-data」で日本語配列に変更。画面が英語だけど適当に読んで。
さらにrootパスワードを納得のいくものに変更。
そしてcofsがちゃんと機能するかチェック。
んでinittabのrunレベルを一般的な3に直しておいてシャットダウン。
下記が起動確認後の作業。colinux login: root Password: ←入力しても何も表示されないがEnterキー押下でチェックされる。 colinux:~# dpkg-reconfigure console-data ※最初の「keymap変更するぞ、いいんだな?」って問いには<OK>でEnterかSpaceキー ※「policyはどうしたい?」って聞かれたら「Select keymap from arch list」を選択して<OK> ※「layout familyはどうするよ?」って聞かれたら「qwerty」を選択して<OK> ※国名がずらずら表示されたらjapaneseを選択して<OK> ※「variantはどっちがいい?」って聞かれたら「Standard」を選択して<OK> Looking for keymap to install: jp106 Loading /etc/console/boottime.kmap.gz colinux:~# passwd Enter new UNIX password: ←ここも上記と同様表示されない Retype new UNIX password: ←ここも同上 passwd: password updated successfully colinux:~# mount -t cofs cofs0:"Program Files" /mnt colinux:~# ls -la /mnt/ ※ずらずらとホストマシン(Windows)のC:\Program Files\直下のファイル名が表示されたらOK colinux:~# umount /mnt/ colinux:~# nano /etc/inittab ※「id:2:initdefault:」っていう行があるので「id:3:initdefault:」に直す ※nanoエディタの使い方は、エディタ開いたときの画面下部にあり。 ※Ctrl+oで変更を保存、Ctrl+xでエディタ終了 colinux:~# shutdown -h now
- Windowsのサービスとして登録しておく
コマンドプロンプトで下記コマンドにてサービス登録。C:\Documents and Settings\username>cd C:\Prog*\coLi*\ ←ワイルドカード使ってるだけ C:\Program Files\coLinux>colinux-daemon --install-service -c hoge.colinux.xml Cooperative Linux Daemon, 0.6.2 Compiled on Sat Feb 5 10:19:28 2005 daemon: installing service 'Cooperative Linux' daemon: service command line: "C:\Program Files\coLinux\colinux-daemon.exe" --run-service "Cooperative Linux" -d -c "hoge.colinux.xml" daemon: setting restart options daemon: service installed. C:\Program Files\coLinux>
- rootfilesystemの引越し
次に、rooffilesystem内のデータを全て別イメージファイルへ引越しする。
coLinuxインストール直後のrootfilesystemのイメージは1GBしか無く、GUI環境をインストールすると要領が足りなくなるよう。
そのためrootfilesystem内のデータを下準備で行っておいた2Gbyteのイメージファイルへ丸ごとコピー、つまり引越しする。- hoge.colinux.xmlのbootparams行を下記のように編集
befor:<bootparams>root=/dev/cobd0</bootparams> after:<bootparams>root=/dev/cobd0 single</bootparams>
これにより、coLinuxがシングルユーザモードで起動するようになる。
※この引越し作業はシングルユーザモードで行います。 - 先ほど登録したサービスからでいいのでcoLinuxを起動する
1.スタートボタン>設定>コントロールパネルを選択
2.管理ツールダブルクリック
3.サービスをダブルクリック
4.開いた窓でCooperative Linuxを選択してサービス開始
5.C:\Program Files\coLinux\colinux-console-nt.exeをダブルクリックしてConsoleを立ち上げる。//ブートメッセージ後、下記のようなメッセージで入力待ちになってれば //シングルユーザモードで起動しています。 Give root password for maintenance (or type Control-D for normal startup): ←rootパスワード入力してEnter
- コマンドラインで作業
2Gのイメージファイルをext3でフォーマットしてマウント、そして必要ファイルをユーザ/属性/タイムスタンプそのままに全部をコピーする。colinux:~# mkdir /mnt/cobd2 /mnt/cobd3 colinux:~# mkfs.ext3 /dev/cobd2 ←hoge.colinux.xmlに記述したroot2G.img をext3でフォーマットする mke2fs 1.37 (21-Mar-2005) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 256000 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user First data block=0 16 block groups 32768 blocks per group, 32768 fragments per group 16000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. colinux:~# mount -t ext3 /dev/cobd2 /mnt/cobd2 EXT3 FS on cobd2, internal journal EXT3-fs: mounted filesystem with ordered data mode. colinux:~# kjournald starting. Commit interval 5 seconds ←ここで処理が止まってるように見える場合はEnterを押せばよい。 colinux:~# mkfs.ext3 /dev/cobd2 ←同様にhome2G.img をext3でフォーマットする mke2fs 1.37 (21-Mar-2005) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 256000 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user First data block=0 16 block groups 32768 blocks per group, 32768 fragments per group 16000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. colinux:~# mount -t ext3 /dev/cobd3 /mnt/cobd3 EXT3 FS on cobd3, internal journal EXT3-fs: mounted filesystem with ordered data mode. colinux:~# kjournald starting. Commit interval 5 seconds ←ここで処理が止まってるように見える場合はEnterを押せばよい。 colinux:~# mkdir /mnt/cobd2/mnt /mnt/cobd2/proc /mnt/cobd2/home colinux:~# cd / colinux:/# ls -l sys/devices/serio0/drvctl colinux:/# chmod 600 sys/devices/serio0/drvctl ←ファイルコピー処理時にパーミッションエラーになるので前もって直しておく colinux:/# cp -a bin boot cdrom dev etc floppy initrd lib media opt root sbin sys tmp usr var /mnt/cobd2/ colinux:/# cp -a /home/* /mnt/cobd3/ colinux:/# cd /mnt/cobd2/etc colinux:/mnt/cobd2/etc# vi fstab ←エディタでfstabの内容を下記のような記述に編集する。 /dev/cobd0 / ext3 errors=remount-ro 0 1 /dev/cobd1 none swap sw 0 0 /dev/cobd2 /home ext3 errors=remount-ro 0 1 proc /proc proc defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 colinux:/mnt/cobd2/etc# mv mtab mtab.disable ←既存環境のmtabをリネームしておく colinux:/mnt/cobd2/etc# cd / colinux:/# umount /mnt/cobd2 colinux:/# umount /mnt/cobd3 colinux:/# shutdown -h now
- 設定ファイルhoge.colinux.xmlを正式版に修正する
block_deviceの項とbootparamsの項を下記のように修正する。<?xml version="1.0" encoding="UTF-8"?> <colinux> <block_device index="0" path="\DosDevices\C:\Program Files\coLinux\Debian\root2G.img" enabled="true" /> <block_device index="1" path="\DosDevices\C:\Program Files\coLinux\swap\256Mb" enabled="true" /> <block_device index="2" path="\DosDevices\C:\Program Files\coLinux\Debian\home2G.img" enabled="true" /> <cofs_device index="0" path="\DosDevices\C:\" type="flat" enabled="true" /> <bootparams>root=/dev/cobd0</bootparams> <initrd path="initrd.gz" /> <image path="vmlinux" /> <memory size="64" /> <network index="0" name="TAP-Win32" type="tap" /> </colinux>
- 再度サービスから起動
これで今後は / がroot2G.imgを、/homeがhome2G.imgをマウントするようにしてcoLinuxが起動してくれるでしょう。
- hoge.colinux.xmlのbootparams行を下記のように編集
- ネットワーク設定
※書きかけ
ちょいメモ
subversion と apache と Eclipse
参考1 / 参考2 とかとかとか。
subversion試すなら、相性的にはapache2との方がいい見たいね。
じゃーapache2にしてみよか?
でもなんで今apache1.3系にしてるんだっけ?あ、そうか、php4入れたら勝手になったのか。
どうしよう、php5にしちまうか。
ほんでapache2もmysqlも入れ直して、subversionとEclipseでコードいじって遊ぶか。
canna
GUIの準備として各ユーザで
$ set-language-env
をやったら、そこで作成される.cannaを自分好みのやつに直す。
(もしくは /etc/canna/default.canna を /usr/share/canna/ 配下のどれかへのシンボリックリンクにしてしまう)
exim4
なんだこれ?
mysql絡みのパッケージを入れようとしたらconfigurationが始まった。
なにやらメールの送受信についての質問をしてきてるようだが。
proftpd
ローカルLAN内だけの利用を想定しての、加えるべき設定。
- diff /etc/proftpd.conf /etc/proftpd.conf.org
6c6 < ServerName "My_ftp_server" --- > ServerName "Debian" 20c20 < ListOptions "-la" --- > ListOptions "-l" 57,70d56 < <Limit LOGIN> < Order allow, deny < Allow from 127.0.0.1, 192.168.0.0/24 < Deny from all < </Limit LOGIN> < < <Directory /*> < AllowOverwrite on < </Directory> < < DefaultRoot ~ < AllowStoreRestart on < AllowRetrieveRestart on < 76,86d61 < # Log < LogFormat allinfo "%t : %u (%a [%h]) : [%s], %T, %m (%f)" < LogFormat write "%t : %u : %F (%a)" < LogFormat read "%t : %u : %F (%a)" < LogFormat auth "%t : %u (%a [%h])" < < ExtendedLog /var/log/proftpd/all.log ALL allinfo < ExtendedLog /var/log/proftpd/write.log WRITE write < ExtendedLog /var/log/proftpd/read.log READ read < ExtendedLog /var/log/proftpd/auth.log AUTH auth < 89,93d63 < <Anonymous ~ftp> < <Limit LOGIN> < DenyAll < </Limit LOGIN> < </Anonymous>
- /etc/logrotate.d
関連情報:http://www.aconus.com/%7Eoyaji/router/ftp.htm
配下に下記のようにproftpdを作成する# vi /etc/logrotate.d/proftpd /var/log/proftpd/all.log /var/log/proftpd/auth.log /var/log/proftpd/read.log /var/log/proftpd/write.log { # ftpd doesn't handle SIGHUP properly nocompress }
- /etc/logrotate.d