GRUB + Debian GNU/Linux 3.0r2 on Compact Flash ============================================== - Debian GNU/Linux 3.0r2 ベース - Compact Flash bootable (HD不用) - MicroPC Geode/Eden にて動作 - システムサイズ  Compact Flash 128MB (100MB使用) Memory 128MB (システム最低30MB, RAMDISKとして32MB使用) - Compact Flashの書き換え回数制限対応 - no swap - /tmp, /var(一部), /data 等の RAM DISK(tmpfs)使用 - root filesystem の noatime mount - 完全RAM DISK運用ではないので、終了時にはshutdownしてください。 - Debianのパッケージにて自由にカスタマイズ/アップデート可能 - MicroPCシリーズと組み合わせる事により、「組込み以上、PC未満」なシステムを実現。 - ユーザに無理を強いらないディスクレスLinux。HDが無い事を意識させません。 - 小型システム開発の敷居を格段に下げます。 Bootable CFの作り方 =================== % wget http://www.takemaru.com/download/minideb128_20040126.img.gz % gunzip minideb128_20040126.img.gz % su root # dd if=./minideb128_20040126.img of=/dev/hdc Login ===== login : root password : Debian ネットワーク設定変更 ==================== 下記の設定ファイルを手動で書き換えて下さい。 デフォルトでは192.168.1.100というアドレスにしています。 # vi /etc/hosts # vi /etc/hostname # vi /etc/resolv.conf # vi /etc/network/interfsces # vi /etc/networks # sync; sync; sync; reboot Debian パッケージ管理 ===================== Debianのパッケージ管理がそのまま使えますので、システムを自由に拡張できます。 Ethernetに接続され、外部にアクセス可能なことが条件です。  # dpkg -l (インストールされているパッケージ一覧) # apt-get install PKG_NAME (パッケージのインストール) # apt-get --purge remove PKG_NAME (パッケージ削除) # apt-get update (パッケージ情報の最新化) # apt-get -u upgrade (システムの最新化) # apt-cache search KEYWORD (KEYWORDを含むパッケージ探し) システムの構成詳細 ================== takemaru@debian:~$ df -k Filesystem 1k-blocks Used Available Use% Mounted on /dev/hdc1 121203 100654 14291 88% / tmpfs 32768 1092 31676 4% /dev/shm /dev/shm/tmp 32768 1092 31676 4% /tmp /dev/shm/tmp 32768 1092 31676 4% /var/tmp /dev/shm/lock 32768 1092 31676 4% /var/lock /dev/shm/log 32768 1092 31676 4% /var/log /dev/shm/run 32768 1092 31676 4% /var/run /dev/shm/data 32768 1092 31676 4% /data takemaru@debian:~$ mount /dev/hdc1 on / type ext2 (rw,noatime,errors=remount-ro) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,size=32m) /dev/shm/tmp on /tmp type none (rw,bind) /dev/shm/tmp on /var/tmp type none (rw,bind) /dev/shm/lock on /var/lock type none (rw,bind) /dev/shm/log on /var/log type none (rw,bind) /dev/shm/run on /var/run type none (rw,bind) /dev/shm/data on /data type none (rw,bind) takemaru@debian:~$ free total used free shared buffers cached Mem: 238548 29020 209528 0 2008 20200 -/+ buffers/cache: 6812 231736 Swap: 0 0 0 takemaru@debian:~$ ps -ef | sort UID PID PPID C STIME TTY TIME CMD root 1 0 2 11:02 ? 00:00:03 init [2] root 2 1 0 11:02 ? 00:00:00 [keventd] root 3 0 0 11:02 ? 00:00:00 [ksoftirqd_CPU0] root 4 0 0 11:02 ? 00:00:00 [kswapd] root 5 0 0 11:02 ? 00:00:00 [bdflush] root 6 0 0 11:02 ? 00:00:00 [kupdated] root 7 1 0 11:02 ? 00:00:00 [i2oevtd] root 109 1 0 11:02 ? 00:00:00 [eth0] root 161 1 0 11:03 ? 00:00:00 /sbin/syslogd root 164 1 0 11:03 ? 00:00:00 /sbin/klogd root 170 1 0 11:03 ? 00:00:00 /usr/sbin/inetd root 174 1 0 11:03 ? 00:00:00 /usr/sbin/cron root 177 1 0 11:03 tty1 00:00:00 /sbin/getty 38400 tty1 root 178 1 0 11:03 tty2 00:00:00 /sbin/getty 38400 tty2 takemaru@debian:~$ cat /etc/fstab # /etc/fstab: static file system information. # # /dev/hdc1 / ext2 errors=remount-ro,noatime 0 1 proc /proc proc defaults 0 0 tmpfs /dev/shm tmpfs size=32m 0 0 takemaru@debian:~$ cat /etc/init.d/mountall.sh # # mountall.sh Mount all filesystems. # # Version: @(#)mountall.sh 2.83-2 01-Nov-2001 miquels@cistron.nl # . /etc/default/rcS # # Mount local file systems in /etc/fstab. For some reason, people # might want to mount "proc" several times, and mount -v complains # about this. So we mount "proc" filesystems without -v. # [ "$VERBOSE" != no ] && echo "Mounting local filesystems..." mount -avt nonfs,nosmbfs,noncpfs,noproc mount -at proc mkdir /dev/shm/tmp mkdir /dev/shm/lock mkdir /dev/shm/log mkdir /dev/shm/run mkdir /dev/shm/data mount --bind /dev/shm/tmp /tmp mount --bind /dev/shm/tmp /var/tmp mount --bind /dev/shm/lock /var/lock mount --bind /dev/shm/log /var/log mount --bind /dev/shm/run /var/run mount --bind /dev/shm/data /data chmod -R 1777 /tmp chmod -R 1777 /var/tmp # # We might have mounted something over /dev, see if /dev/initctl is there. # if [ ! -p /dev/initctl ] then rm -f /dev/initctl mknod -m 600 /dev/initctl p fi kill -USR1 1 # # Execute swapon command again, in case we want to swap to # a file on a now mounted filesystem. # doswap=yes case "`uname -r`" in 2.[0123].*) if grep -qs resync /proc/mdstat then doswap=no fi ;; esac if [ $doswap = yes ] then swapon -a 2> /dev/null fi : exit 0