#!/bin/bash
#
# При написването на този скрипт е ползван програмен код от скриптовете на
# Knoppix, Slackware-Live и Linux-Live (SLAX).
#
#				 Валентин Стойков <valentin_stoykov()mail!bg>

PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /etc/rc.d/functions

NEWROOT=/newroot

# Монтиране на tmpfs файлова система на /newroot
echo "creating root filesystem in $NEWROOT"
mkdir $NEWROOT
mount -t tmpfs -o size=90% tmpfs $NEWROOT

if [ ! "$?" = "0" ]; then
  echo "Greshka pri montiraneto na tmpfs!"
  while [ 1 = 1 ]; do bash; done
fi


echo "creating directories..."
mkdir -p $NEWROOT/{cloop,cdrom,bin,boot,mnt/ramdisk,lib,opt,proc,sbin,tmp,usr/bin,usr/sbin,usr/local,home/guest,root}
mkdir -p $NEWROOT/home/ftp/upload
chown -R ftp.ftp $NEWROOT/home/ftp

mkdir -p $NEWROOT/usr/local/{bin,etc,include,info,lib,man,sbin,src,root,tmp,www}
mkdir -p $NEWROOT/usr/local/man/{cat,man}{1,2,3,4,5,6,7,8,9,n}

mkdir -p $NEWROOT/var/{empty,tmp,log/samba,lock/subsys}
mkdir -p $NEWROOT/var/{cache,run/proftpd,spool}
mkdir -p $NEWROOT/var/lib/{pcmcia,slocate,xdm,xkb,gdm}
ln -s /usr/scrollkeeper $NEWROOT/var/lib/ #това е важно за GNOME
mkdir -p $NEWROOT/var/man/cat{1,2,3,4,5,6,7,8,9,n}
mkdir -p $NEWROOT/var/spool/{mail,cron/crontabs,mqueue,clientmqueue,lpd}
ln -s log $NEWROOT/var/adm
ln -s mail $NEWROOT/var/spool/mail

mkdir $NEWROOT/var/run/samba/
mkdir $NEWROOT/var/run/privoxy
mkdir $NEWROOT/var/log/privoxy
touch $NEWROOT/var/log/privoxy/jarfile
chown root.privoxy $NEWROOT/var/log/privoxy/jarfile
chmod 660 $NEWROOT/var/log/privoxy/jarfile
touch $NEWROOT/var/log/privoxy/logfile
chown root.privoxy $NEWROOT/var/log/privoxy/logfile
chmod 660 $NEWROOT/var/log/privoxy/logfile

cp -a /linuxrc* $NEWROOT
cp -a /mkxf86config.bash $NEWROOT

cp -a /bin $NEWROOT
cp -a /etc $NEWROOT
cp -a /lib $NEWROOT
cp -a /sbin $NEWROOT
cp -a /usr $NEWROOT

cp -a /dev $NEWROOT

echo "tmpfs /     tmpfs defaults 0 0" >$NEWROOT/etc/fstab
echo "proc  /proc proc  defaults 0 0" >>$NEWROOT/etc/fstab
echo "devpts /dev/pts devpts gid=5,mode=620 0 0" >>$NEWROOT/etc/fstab
echo "/dev/ram0 /mnt/ramdisk ext2 defaults 0 0" >>$NEWROOT/etc/fstab

echo "tmpfs /     tmpfs rw 0 0" >$NEWROOT/etc/mtab
echo "/dev/ram0 /mnt/ramdisk ext2 rw 0 0" >>$NEWROOT/etc/mtab

echo "Predi da se promeni root direktriqta, shte se startira bash"
bash


echo "changing root directory..."
cd $NEWROOT
/sbin/pivot_root . mnt/ramdisk
exec /usr/bin/chroot . /linuxrc2 <dev/console >dev/console 2>&1

header "ERROR!"
echo "You are not supposed to be here, something went wrong!"
echo "calling /mnt/usr/bin/chroot failed?"
echo "Press Ctrl+Alt+Del for reboot."
bash

# край на файла
