Constructie

Installeer utility's uit e2fsprogs

Download het broncodepakket van e2fsprogs vanaf http://sourceforge.net/projects/e2fsprogs/

bash# cd /usr/src/e2fsprogs-1.35
bash# export CC="gcc -mcpu=i386"
bash# ./configure --host=i386-pc-linux-gnu
bash# make
bash# cd e2fsck
bash# cp e2fsck.shared ~/fasen/sbin/e2fsck
bash# ln -s e2fsck ~/fasen/sbin/fsck.ext2
bash# cd ../misc
bash# cp fsck mke2fs ~/fasen/sbin
bash# ln -s mke2fs ~/fasen/sbin/mkfs.ext2

Installeer utility's uit util-linux

Haal de laatste util-linux broncode op uit ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/

bash# cd /usr/src/util-linux-2.12h

Gebruik een teksteditor voor het aanbrengen van de volgende wijzigingen in MCONFIG:

bash# ./configure
bash# make
bash# cp disk-utils/mkfs ~/fasen/sbin
bash# cp fdisk/fdisk ~/fasen/sbin
bash# cp login-utils/agetty ~/fasen/sbin
bash# ln -s agetty ~/fasen/sbin/getty
bash# cp login-utils/login ~/fasen/bin
bash# cp misc-utils/kill ~/fasen/bin
bash# cp mount/mount ~/fasen/bin
bash# cp mount/umount ~/fasen/bin
bash# cp mount/swapon ~/fasen/sbin
bash# cp sys-utils/dmesg ~/fasen/bin

Controleer op library vereisten

bash# ldd ~/fasen/bin/* | more
bash# ldd ~/fasen/sbin/* | more
bash# ls ~/fasen/lib

Alle afhankelijkheden onthuld door de opdracht ldd zijn voor library's die reeds aanwezig zijn in het fasengebied, dus hoeft er niets nieuws te worden gekopieerd.

Strip binary's om ruimte te besparen

bash# strip ~/fasen/bin/*
bash# strip ~/fasen/sbin/*

Maak extra apparaatbestanden aan

bash# mknod ~/fasen/dev/ram0 b 1 0
bash# mknod ~/fasen/dev/fd0 b 2 0
bash# mknod ~/fasen/dev/null c 1 3

Maak de bestanden fstab en mtab aan

bash# cd ~/fasen/etc

Gebruik een editor als vi, emacs of pico voor het aanmaken van het volgende bestand en sla het op als ~/fasen/etc/fstab.

proc        /proc   proc   defaults   0   0
/dev/ram0   /       ext2   defaults   1   1

Maak een leeg mtab bestand aan.

bash# echo -n >mtab

Schrijf een script voor het controleren en mounten van lokale bestandssystemen

Gebruik een editor voor het aanmaken van het volgende shellscript en sla het op als ~/fasen/etc/init.d/local_fs:

#!/bin/sh
#
# local_fs - controleer en mount lokale bestandssystemen
#
PATH=/sbin:/bin ; export PATH

fsck -ATCp
if [ $? -gt 1 ]; then
echo "Errors in filesystem(s)! Manual intervention needed."
  /bin/sh
else
echo "Remounting / read-write."
  mount -n -o remount,rw /
  echo -n >/etc/mtab
  mount -f -o remount,rw /
  echo "Mounting local filesystems."
  mount -a -t nonfs,nosmbfs
fi
#
# einde local_fs

Stel de uitvoerpermissies in op het script.
bash# chmod +x local_fs

Maak een gecomprimeerd rootdisk image aan

bash# cd /
bash# dd if=/dev/zero of=/dev/ram7 bs=1k count=4096
bash# mke2fs -m0 /dev/ram7 4096
bash# mount /dev/ram7 /mnt
bash# cp -dpR ~/fasen/* /mnt
bash# umount /dev/ram7
bash# dd if=/dev/ram7 of=~/fase4-image bs=1k count=4096
bash# gzip -9 ~/fase4-image

Schrijf het rootdisk image naar diskette

Doe de diskette met het label "rootdisk" in station fd0.

bash# dd if=~/fase4-image.gz of=/dev/fd0 bs=1k