KNOPPIX From Scratch

この文書は2008年(regret制作時)に書かれた文書です。

この手順は書きかけであり、cloopやsquashfsの圧縮イメージ作成、最終的なディスクイメージなどの作成は書かれていませんし、KNOPPIXも6になったので、そのままではイメージの作成はできません。

debootstrapを使いKNOPPIXをリマスタリングせず、新規イメージから作成する方法。

  • 作業はすべてKNOPPIX上からおこないます。
  • ブートローダーはgrubを使います。

ハードディスク上に以下の形で作業ディレクトリを用意します。

pwd
|--source (ソースイメージディレクトリ)
|   \--KNOPPIX
|--master (マスタリング作業用ディレクトリ)
|   |--KNOPPIX
|   |   \modules
|   \--boot
|       \grub
|--miniroot (minirt作業用ディレクトリ)
|   |--miniroot
|   |   |-
|   |   |-
|   |   |-
|   |   |-
|   |   |-
|    \--tmp
|
\--knoppixfiles (knoppixのパッケージを置いておく)

作業ディレクトリを作る

# mkdir -p source/KNOPPIX master/KNOPPIX/modules master/boot/grub miniroot/miniroot miniroot/tmp knoppixfiles

KNOPPIXパッケージを再構築する

# cd knoppixfiles
# dpkg-repack `dpkg -l | grep -i knoppix | cut -f 3 -d' '`
# dpkg-repack hw

debootstrapでシステムのベースを作る

# debootstrap sid source/KNOPPIX http://ftp.jp.debian.org/debian

ベースシステムの作業

  • apt-lineを追加
# sed -i 's#jp.debian.org/debian/ sid main$#& contrib non-free#g' source/KNOPPIX/etc/apt/sources.list
# cat << EOF > source/KNOPPIX/etc/apt/sources.list.d/knoppix.list
# KNOPPIX Sources
deb-src http://debian-knoppix.alioth.debian.org ./
# KNOPPIX Precompiled binaries
deb http://debian-knoppix.alioth.debian.org ./
EOF

chrootでベースシステムに降りる

# chroot -i HOME=/root source/KNOPPIX/ --login

chrootでの作業

  • ユーザーknoppixを作成してグループに追加
# useradd -m knoppix
# usermod -G dialout,fax,voice,cdrom,floppy,tape,sudo,audio,dip,video,games,users,usb,scanner,camera,fuse
  • /etc/initのリンクを作る
# ln -s /etc/init /sbin/init
  • /var/tmpを削除して/tmpにシンボリックリンクを張る
# rm -r /var/tmp
# ln -s /var/tmp /tmp
  • hwclockを実行する
# hwclock --hctosys --localtime

/etc/adjtimeの3行めが「LOCAL」になっていないとローカルタイムをUTCと認識されて9時間進んでしまうため。

  • udevでネットワークデバイスが生成されないようにする

/etc/udev/rules.d/z45_persistent-net-generator.rulesを削除。

# rm /etc/udev/rules.d/z45_persistent-net-generator.rules

/etc/udev/rules.d/z25_persistent-net.rulesの中身を空にする。

# rm /etc/udev/rules.d/z25_persistent-net.rules
# touch /etc/udev/rules.d/z25_persistent-net.rules
  • /etc/security/limits.confを有効にする(regret限定)

/etc/pam.d/suのpam_limits.soの部分のコメントを外す

# Sets up user limits, please uncomment and read /etc/security/limits.conf
# to enable this functionality.
# (Replaces the use of /etc/limits in old login)
session    required   pam_limits.so ←ここ