Viitor_initrd/init
kueller 1ece702d38 /dev mount wird nicht mehr abgemelded, sondern in das spÀtere System gemoved
git-svn-id: svn://svn.compuextreme.de/Viitor/V963/Viitor_initrd@6267 504e572c-2e33-0410-9681-be2bf7408885
2011-11-21 10:47:44 +00:00

147 lines
4.3 KiB
Plaintext
Executable File

#!/bin/busybox ash
#Framework, welches ein komplettes Linux System aus den Sourcen erstellt
#dieses Framework wird im CVS Repository
#:pserver:cvs.tramp-bbs.de:/opt/cvs zur Verfügung gestellt
#
#Lage dieser Datei im Archiv: $Source$
#
#(c) 2003 Harald Kueller, Germany
#This program is free software; you can redistribute it and/or
#modify ist under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version
#2 of the License, or (at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#See the GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not write to the Free Software Foundation,
#Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#Beschreibung:linuxrc initrd script
#Starup Script fuer initrd betrieb von einer CDROM
#
#Aufrufparameter:
#
#Letzte Änderung von: $Author: kueller $
#Datum der letzten Änderung: $Date: 2008-03-31 14:59:18 +0200 (Mo, 31 Mär 2008) $
#Version der Datei: $Revision: 4152 $
#
#$Log$
#Revision 1.6 2007/04/30 21:29:26 kueller
#Probleme mit neuer Version von udev korrigiert
#
#Revision 1.5 2007/04/12 22:04:52 segler
#S0 added at getty starts for enabling serial console for monitorless installation
#
#Revision 1.4 2006/07/07 21:29:50 kueller
#Anpassung von devicenamen an udev. abschaltung von devfs
#
#Revision 1.3 2006/07/06 18:47:16 kueller
#Boot vorgang verbessert. startup wird mittels /etc/init.d/rc scripten
#gemacht. Ausserdem werden Gettys auf console 1-6 gestartet. Start
#ist von normalem boot fast nicht mehr zu unterscheiden, auch wenn ich
#den init immer noch nicht zum laufen bekommen hab.
#
#Revision 1.2 2006/01/13 16:57:04 kueller
#Vorbereitung fuer Viitor_Setup. Bugfix beim vgchange kommando.
#
#Revision 1.1.1.1 2006/01/12 13:20:21 kueller
#New added for cdrom bootup
#
#
cd /bin
./busybox ln -s busybox ln
cd /bin
./busybox echo "Generating links in /bin for busybox"
for i in [ [[ acpid addgroup adduser ar arp arping ash awk \
basename brctl bunzip2 bzcat cat chgrp chmod chown \
chvt clear cp cpio cut date dc dd deallocvt delgroup \
deluser depmod df diff dirname dmesg du echo ed egrep \
eject env expand expr false fgrep find free fsck \
fuser getopt grep gunzip gzip head hostname id install\
ip ipaddr iplink iproute iptunnel kbd_mode kill killall\
last less linuxrc loadkmap logger login ls lsmod \
lzmacat makedevs md5sum mdev mesg mkdir mkfifo mknod \
mktemp more mount mountpoint mt mv netstat nice nohup \
nslookup passwd patch pidof ping pkill printf ps pwd \
rdev realpath renice reset rm rmdir sed setconsole \
setkeycodes sh showkey sleep sort split stat strings \
stty su sync tail tar tee telnet test tftp top touch \
traceroute true tty tunctl umount uname uncompress uniq \
unzip uptime usleep vi wc wget which who whoami xargs \
yes zcat lspci; do
ln -s busybox $i
done
cd - 2>&1 >/dev/null
cd /sbin
echo "Generating linknames in /sbin for busybox"
for i in chroot fbset fdisk getty halt hdparm hwclock ifconfig \
init insmod losetup lsmod mkswap modprobe nameif pivot_root \
poweroff reboot rmmod route runlevel sulogin swapoff swapon \
switch_root sysctl; do
ln -s /bin/busybox $i
done
cd - 2>&1 >/dev/null
runlevel=S
prevlevel=N
umask 022
export runlevel prevlevel
trap ":" INT QUIT TSTP
for i in /proc /sys /mnt; do
if [ ! -d $i ]; then
mkdir $i
fi
done
mount -t proc none /proc
mount -t sysfs none /sys
mount -n -t tmpfs -o mode=0755 udev /dev
mknod /dev/null c 1 3
mknod /dev/console c 5 1
mkdir /dev/pts
mkdir /dev/shm
if [ -d /proc/bus/usb ]; then
mount -t usbfs none /proc/bus/usb
fi
if [ ! -d /var/lock/subsys ]; then
mkdir -p /var/log/subsys
fi
if [ ! -f /etc/fstab ]; then
touch /etc/fstab
fi
/sbin/modprobe usb-storage
/etc/init.d/udev start
/etc/init.d/hotplug start
for i in $(/bin/find /lib/modules -type f -name "*.ko"); do
/sbin/modprobe $(/bin/basename $i|/bin/sed -e "s/\.ko$//")
done
for i in /dev/sr*; do
mount -o ro $i /mnt
if [ -d /mnt/Viitor ]; then
FOUND=1
break
fi
umount /mnt
done
if [ "$FOUND" ]; then
pkill udevd
mount --move /dev /mnt/dev
umount /sys
umount /proc
exec /sbin/switch_root /mnt /sbin/init
else
exec /bin/ash
fi