Er is veel typwerk te doen in deze paragraaf vanwege alle opstartscripts die moeten worden aangemaakt. Met behulp van een muis de tekst uit deze handleiding kopiëren en deze in een teksteditor plakken kan je veel tijd besparen.
Doe de diskette met het label "bootdisk" in het diskettestation en mount het.
bash# mount /dev/fd0 /mnt bash# cd /mnt/boot/grub |
Gebruik je favoriete teksteditor voor het aanmaken van het volgende bestand en sla het op als /mnt/boot/grub/menu.lst:
default 0 timeout 3 title Pocket Linux Boot Disk kernel (fd0)/boot/vmlinuz root=/dev/fd0 load_ramdisk=1 prompt_ramdisk=1 |
Download de laatste broncode van sysvinit van ftp://ftp.cistron.nl/pub/people/miquels/software/
bash# cd /usr/src/sysvinit-2.85/src bash# make CC="gcc -mcpu=i386" bash# cp halt init shutdown ~/fasen/sbin bash# ln -s halt ~/fasen/sbin/reboot bash# ln -s init ~/fasen/sbin/telinit bash# mknod ~/fasen/dev/initctl p |
![]() | Omwille van de snelheid slaan we de stappen voor het controleren van library's en het strippen van binary's over. De library vereisten voor sysvinit zijn zeer minimaal en de Makefile is zo geconfigureerd dat het automatisch de binary's stript. |
Gebruik een teksteditor voor het aanmaken van het volgende bestand en sla het op als ~/fasen/etc/inittab
# /etc/inittab - init daemon configuratiebestand # # Standaardrunlevel id:1:initdefault: # # Systeeminitialisatie si:S:sysinit:/etc/init.d/rc S # # Runlevel scripts r0:0:wait:/etc/init.d/rc 0 r1:1:respawn:/bin/sh r2:2:wait:/etc/init.d/rc 2 r3:3:wait:/etc/init.d/rc 3 r4:4:wait:/etc/init.d/rc 4 r5:5:wait:/etc/init.d/rc 5 r6:6:wait:/etc/init.d/rc 6 # # einde /etc/inittab |
Gebruik een teksteditor om het volgende bestand aan te maken en sla het op als ~/fasen/etc/init.d/rc
#!/bin/sh
#
# /etc/init.d/rc - script voor het wijzigen van het runlevel
#
PATH=/sbin:/bin
SCRIPT_DIR="/etc/rc$1.d"
#
# Controleer of de rcN.d directory werkelijk bestaat.
if [ -d $SCRIPT_DIR ]; then
#
# Voer als eerste de kill scripts uit.
for SCRIPT in $SCRIPT_DIR/K*; do
if [ -x $SCRIPT ]; then
$SCRIPT stop;
fi;
done;
#
# Doe als laatste de Start scripts.
for SCRIPT in $SCRIPT_DIR/S*; do
if [ -x $SCRIPT ]; then
$SCRIPT start;
fi;
done;
fi
#
# einde /etc/init.d/rc |
Maak het bestand uitvoerbaar.
bash# chmod +x ~/fasen/etc/init.d/rc |
Een case statement is toegevoegd zodat het script, afhankelijk van het gegeven opdrachtregelargument, zowel de lokale bestandssystemen kan koppelen als ontkoppelen met respectievelijk de opdrachten mount en umount. Het originele script staat in het "start" deel van de case statement. Het "stop" gedeelte is nieuw.
#!/bin/sh
#
# local_fs - controleer en mount lokale bestandssystemen
#
PATH=/sbin:/bin ; export PATH
case $1 in
start)
echo "Checking integrity of local filesystems."
fsck -ATCp
if [ $? -gt 1 ]; then
echo "Errors in filesystem! Manual intervention needed."
/bin/sh
else
echo "Remounting as read-write."
mount -n -o remount,rw /
echo -n > /etc/mtab
mount -f -o remount,rw /
echo "Mounting local filesystems."
mount -a -t nonfs,smbfs
fi
;;
stop)
echo "Unmounting local filesystems."
umount -a -r
;;
*)
echo "gebruik: $0 start|stop";
;;
esac
#
# einde local_fs |
Gebruik een teksteditor voor het aanmaken van het volgende script en sla het op als ~/fasen/etc/init.d/hostname
#!/bin/sh # # hostname - stel de systeemnaam in op de naam opgeslagen in /etc/hostname # PATH=/sbin:/bin ; export PATH echo "Instellen van de hostnaam." if [ -f /etc/hostname ]; then hostname $(cat /etc/hostname) else hostname gnu-linux fi # # einde hostname |
Gebruik een teksteditor voor het aanmaken van ~/fasen/etc/init.d/halt zoals hieronder weergegeven.
#!/bin/sh # # halt - stop het systeem # PATH=/sbin:/bin ; export PATH echo "Initiating system halt." halt # # einde /etc/init.d/halt |
Maak het volgende script aan en sla het op als ~/fasen/etc/init.d/reboot
#!/bin/sh # # reboot - herstart het systeem # PATH=/sbin:/bin ; export PATH echo "Initiating system reboot." reboot # # einde /etc/init.d/reboot |
Maak alle scripts uitvoerbaar
bash# chmod +x ~/fasen/etc/init.d/* |
bash# cd ~/fasen/etc bash# mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rcS.d bash# cd ~/fasen/etc/rcS.d bash# ln -s ../init.d/local_fs S20local_fs bash# ln -s ../init.d/hostname S30hostname bash# cd ~/fasen/etc/rc0.d bash# ln -s ../init.d/local_fs K10local_fs bash# ln -s ../init.d/halt K90halt bash# cd ~/fasen/etc/rc6.d bash# ln -s ../init.d/local_fs K10local_fs bash# ln -s ../init.d/reboot K90reboot |