@ -0,0 +1,256 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
read a b version c < /proc/version |
||||
|
while read device mountpoint status ; do |
||||
|
[ "${status}" == "plain" ] && continue |
||||
|
if [ ${rootfsmounted} -eq 0 -a "${mountpoint}" != "/" ] ; then # we need to have the rootfs mounted for all other filesystems to be mountable |
||||
|
echo "Mounting rootfs (${rootfs}) on /root" |
||||
|
initrd_mount ${rootfs} /root |
||||
|
rootfsmounted=1 |
||||
|
fi |
||||
|
if [ "${status}" == "encrypt" ] ; then # {{{ |
||||
|
echo "Encrypting ${device} on ${mountpoint}" |
||||
|
echo |
||||
|
echo "WARNING! Although this is usually safe you should make sure that your backups" |
||||
|
echo "are recent and working. Just in case something happens (power loss, ...)." |
||||
|
echo "If this process is interrupted your filesystem WILL BE INACCESSIBLE!" |
||||
|
echo |
||||
|
pass1="MEEP" |
||||
|
pass2="MOOP" |
||||
|
while [ "${pass1}" != "${pass2}" ] ; do |
||||
|
echo -n "Please enter the passphrase for encryption: " |
||||
|
read -s pass1 < /dev/console |
||||
|
echo |
||||
|
if [ -z "${pass1:20}" ] ; then |
||||
|
echo "Your passphrase is short and may thus be insecure." |
||||
|
echo -n "Enter it again to use it anyway: " |
||||
|
read -s passa < /dev/console |
||||
|
echo |
||||
|
if [ "${passa}" != "${pass1}" ] ; then |
||||
|
passa="ABCD" |
||||
|
pass1="MEEP" |
||||
|
pass2="MOOP" |
||||
|
continue |
||||
|
fi |
||||
|
passa="ABCD" |
||||
|
fi |
||||
|
echo -n "Please confirm the passphrase: " |
||||
|
read -s pass2 < /dev/console |
||||
|
echo |
||||
|
[ "${pass1}" != "${pass2}" ] && echo "The passphrases do not match!" |
||||
|
done |
||||
|
|
||||
|
pass1="`echo ${pass1} | md5sum`" |
||||
|
pass1=${pass1%% *} |
||||
|
encryptedname=${device//\//_}_encrypted |
||||
|
encryptedname=${encryptedname#_} |
||||
|
echo -n "Setting up encryption now ... " |
||||
|
echo 0 `/sbin/blockdev --getsize ${device}` crypt aes-plain ${pass1} 0 ${device} 0 | /sbin/dmsetup create ${encryptedname} |
||||
|
echo "done" |
||||
|
echo "I will now do a sanity check of the harddisk. This means" |
||||
|
echo "that the encryption process will be simulated by writing" |
||||
|
echo "to /dev/null instead of the encrypted partition." |
||||
|
echo "This ensures that the whole disk is readable and the" |
||||
|
echo "copy process won't fail because of a bad harddisk." |
||||
|
echo |
||||
|
echo -n "Press enter to continue ... " |
||||
|
read </dev/console |
||||
|
if /bin/dd if=/dev/zero of=/dev/null conv=stat count=1 2>/dev/null ; then |
||||
|
echo "Starting dd, this will take some time. Go have some coffee :-)" |
||||
|
dd if=${device} of=/dev/null bs=1k conv=stat # conv=stat is my personal patch -- BRS |
||||
|
error=${?} |
||||
|
else |
||||
|
echo "Starting dd, this will take some time. No output will happen" |
||||
|
echo "while this is running. Go have some coffee :-)" |
||||
|
dd if=${device} of=/dev/null bs=1k |
||||
|
error=${?} |
||||
|
fi |
||||
|
if [ ${error} != 0 ] ; then |
||||
|
echo "An error occured!" |
||||
|
echo "Cowardly refusing to encrypt ${device}!" |
||||
|
/sbin/dmsetup remove ${encryptedname} |
||||
|
echo "Starting a shell" |
||||
|
echo |
||||
|
exec /bin/bash |
||||
|
continue |
||||
|
fi |
||||
|
echo "Now the critical part of the encryption process starts." |
||||
|
echo "I'm now copying the data bytewise from the unencrypted device to the" |
||||
|
echo "encrypted loopdevice. Make absolutely sure that this process won't be" |
||||
|
echo "interrupted!" |
||||
|
echo |
||||
|
echo -n "Press enter to start encrypting ... " |
||||
|
read < /dev/console |
||||
|
if /bin/dd if=/dev/zero of=/dev/null conv=stat count=1 2>/dev/null ; then |
||||
|
echo "Starting dd, this will take some time. Go have some coffee :-)" |
||||
|
dd if=${device} of=/dev/mapper/${encryptedname} bs=1k conv=stat # conv=stat is my personal patch -- BRS |
||||
|
else |
||||
|
echo "Starting dd, this will take some time. No output will happen" |
||||
|
echo "while this is running. Go have some coffee :-)" |
||||
|
dd if=${device} of=/dev/mapper/${encryptedname} bs=1k |
||||
|
fi |
||||
|
echo "Encrypting the data is done." |
||||
|
echo -n "Mounting encrypted ${device} on ${mountpoint} now ... " |
||||
|
if ! initrd_mount /dev/mapper/${encryptedname} /root/${mountpoint} ; then |
||||
|
echo "FAILED" |
||||
|
echo "Couldn't mount /dev/mapper/${encryptedname} on ${mountpoint}" |
||||
|
echo "Starting a shell" |
||||
|
echo |
||||
|
exec /bin/bash |
||||
|
fi |
||||
|
[ "${mountpoint}" == "/" ] && rootfsmounted=1 |
||||
|
echo "done" |
||||
|
echo "Remember to change the status of ${device} to encrypted using stone." |
||||
|
echo "Press enter to continue" |
||||
|
read < /dev/console |
||||
|
continue |
||||
|
fi # }}} |
||||
|
if [ "${status}" == "decrypt" ] ; then # {{{ |
||||
|
echo "Decrypting ${device} on ${mountpoint}" |
||||
|
echo |
||||
|
echo "WARNING! Although this is usually safe you should make sure that your backups" |
||||
|
echo "are recent and working. Just in case something happens (power loss, ...)." |
||||
|
echo "If this process is interrupted your filesystem WILL BE INACCESSIBLE!" |
||||
|
echo |
||||
|
pass1="MEEP" |
||||
|
pass2="MOOP" |
||||
|
while [ "${pass1}" != "${pass2}" ] ; do |
||||
|
echo -n "Please enter the passphrase for decryption: " |
||||
|
read -s pass1 < /dev/console |
||||
|
echo |
||||
|
echo -n "Please confirm the passphrase: " |
||||
|
read -s pass2 < /dev/console |
||||
|
echo |
||||
|
[ "${pass1}" != "${pass2}" ] && echo "The passphrases do not match!" |
||||
|
done |
||||
|
pass1="`echo ${pass1} | md5sum`" |
||||
|
pass1=${pass1%% *} |
||||
|
encryptedname=${device//\//_}_encrypted |
||||
|
encryptedname=${encryptedname#_} |
||||
|
|
||||
|
echo -n "Setting up decryption now ... " |
||||
|
echo 0 `/sbin/blockdev --getsize ${device}` crypt aes-plain ${pass1} 0 ${device} 0 | /sbin/dmsetup create ${encryptedname} |
||||
|
echo "done" |
||||
|
echo "I will now do a sanity check of the harddisk. This means" |
||||
|
echo "that the encryption process will be simulated by writing" |
||||
|
echo "to /dev/null instead of the encrypted partition." |
||||
|
echo "This ensures that the whole disk is readable and the" |
||||
|
echo "copy process won't fail because of a bad harddisk." |
||||
|
echo |
||||
|
echo -n "Press enter to continue ... " |
||||
|
read </dev/console |
||||
|
if /bin/dd if=/dev/zero of=/dev/null conv=stat count=1 2>/dev/null ; then |
||||
|
echo "Starting dd, this will take some time. Go have some coffee :-)" |
||||
|
dd if=${device} of=/dev/null bs=1k conv=stat # conv=stat is my personal patch -- BRS |
||||
|
error=${?} |
||||
|
else |
||||
|
echo "Starting dd, this will take some time. No output will happen" |
||||
|
echo "while this is running. Go have some coffee :-)" |
||||
|
dd if=${device} of=/dev/null bs=1k |
||||
|
error=${?} |
||||
|
fi |
||||
|
if [ ${error} != 0 ] ; then |
||||
|
echo "An error occured!" |
||||
|
echo "Cowardly refusing to decrypt ${device}!" |
||||
|
echo "Starting a shell." |
||||
|
echo |
||||
|
exec /bin/bash |
||||
|
continue |
||||
|
fi |
||||
|
echo "Now the critical part of the decryption process starts." |
||||
|
echo "I'm now copying the data bytewise from the encrypted device to the" |
||||
|
echo "unencrypted loopdevice. Make absolutely sure that this process won't be" |
||||
|
echo "interrupted!" |
||||
|
echo |
||||
|
echo -n "Press enter to start decrypting ... " |
||||
|
read < /dev/console |
||||
|
if /bin/dd if=/dev/zero of=/dev/null conv=stat count=1 2>/dev/null ; then |
||||
|
echo "Starting dd, this will take some time. Go have some coffee :-)" |
||||
|
dd if=/dev/mapper/${encryptedname} of=${device} bs=1k conv=stat # conv=stat is my personal patch |
||||
|
else |
||||
|
echo "Starting dd, this will take some time. No output will happen" |
||||
|
echo "while this is running. Go have some coffee :-)" |
||||
|
dd if=/dev/mapper/${encryptedname} of=${device} bs=1k |
||||
|
fi |
||||
|
echo "Decrypting the data is done." |
||||
|
echo -n "Shutting down encryption ... " |
||||
|
/sbin/dmsetup remove ${encryptedname} |
||||
|
echo -n "done" |
||||
|
echo -n "Mounting ${device} on ${mountpoint} now ... " |
||||
|
if ! initrd_mount ${device} /root/${mountpoint} ; then |
||||
|
echo "FAILED" |
||||
|
echo "Couldn't mount ${device} on ${mountpoint}" |
||||
|
echo "Starting a shell" |
||||
|
echo |
||||
|
exec /bin/bash |
||||
|
fi |
||||
|
[ "${mountpoint}" == "/" ] && rootfsmounted=1 |
||||
|
echo "done" |
||||
|
echo "Remember to change the status of ${device} to 'plain' using stone." |
||||
|
echo "Press enter to continue" |
||||
|
read < /dev/console |
||||
|
continue |
||||
|
fi # }}} |
||||
|
if [ "${status}" == "swap" ] ; then # {{{ |
||||
|
echo "Creating encrypted swap on ${device}" |
||||
|
echo "setting up encryption" |
||||
|
echo -n "gathering entropy ... " |
||||
|
ent="" |
||||
|
while [ -z "${ent:128}" ] ; do |
||||
|
read -n 1 e < /dev/random |
||||
|
[ "${e}" == "\n" ] && continue |
||||
|
ent="${ent}${e}" |
||||
|
echo -n "." |
||||
|
done |
||||
|
ent="`echo ${ent} | md5sum`" |
||||
|
ent=${ent%% *} |
||||
|
echo |
||||
|
echo -n "setting up encryption ... " |
||||
|
encryptedname=${device//\//_}_encrypted |
||||
|
encryptedname=${encryptedname#_} |
||||
|
echo 0 `/sbin/blockdev --getsize ${device}` crypt aes-plain ${ent} 0 ${device} 0 | /sbin/dmsetup create ${encryptedname} |
||||
|
echo "done" |
||||
|
echo -n "creating swapspace ... " |
||||
|
if /sbin/mkswap /dev/mapper/${encryptedname} >/dev/null 2>&1 ; then |
||||
|
echo "success" |
||||
|
echo -n "activating swapspace ... " |
||||
|
if /sbin/swapon /dev/mapper/${encryptedname} ; then |
||||
|
echo "success" |
||||
|
else |
||||
|
echo "failed" |
||||
|
echo "booting without swap!" |
||||
|
fi |
||||
|
else |
||||
|
echo "failed" |
||||
|
echo "booting without swap!" |
||||
|
fi |
||||
|
fi # }}} |
||||
|
if [ "${status}" == "encrypted" ] ; then # {{{ |
||||
|
run=1 |
||||
|
while [ ${run} -eq 1 ] ; do |
||||
|
echo "Please enter the passphrase for ${device} on ${mountpoint}" |
||||
|
echo -n "Passphrase: " |
||||
|
read -s passphrase < /dev/console |
||||
|
echo |
||||
|
passphrase="`echo ${passphrase} | md5sum`" |
||||
|
passphrase=${passphrase%% *} |
||||
|
encryptedname=${device//\//_}_encrypted |
||||
|
encryptedname=${encryptedname#_} |
||||
|
echo 0 `/sbin/blockdev --getsize ${device}` crypt aes-plain ${passphrase} 0 ${device} 0 | /sbin/dmsetup create ${encryptedname} |
||||
|
if initrd_mount /dev/mapper/${encryptedname} /root/${mountpoint} < /dev/console ; then |
||||
|
run=0 |
||||
|
echo "Success" |
||||
|
else |
||||
|
/sbin/dmsetup remove ${encryptedname} |
||||
|
echo "Couldn't mount ${device} on ${mountpoint}" |
||||
|
echo -n "Continue without it [y/n] ? " |
||||
|
read -n 1 yn < /dev/console |
||||
|
echo |
||||
|
[ "${yn}" == "y" ] && run=0 |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
[ "${mountpoint}" == "/" ] && rootfsmounted=1 |
||||
|
continue |
||||
|
fi # }}} |
||||
|
done < /etc/dm/mounts |
@ -0,0 +1,11 @@ |
|||||
|
/etc/conf/dm/initrd_dm /etc/conf/dm |
||||
|
/etc/conf/dm/mounts /etc/dm/mounts |
||||
|
/bin/dd /bin/dd |
||||
|
/sbin/swapon /sbin/swapon |
||||
|
/sbin/mkswap /sbin/mkswap |
||||
|
/bin/grep /bin/grep |
||||
|
/bin/sed /bin/sed |
||||
|
/bin/cat /bin/cat |
||||
|
/usr/bin/md5sum /bin/md5sum |
||||
|
/sbin/blockdev /sbin/blockdev |
||||
|
/sbin/dmsetup /sbin/dmsetup |
@ -0,0 +1,7 @@ |
|||||
|
/etc/conf/initrd/linuxrc /linuxrc |
||||
|
/bin/ln /bin/ln |
||||
|
/bin/rm /bin/rm |
||||
|
/sbin/udev /sbin/udev |
||||
|
/sbin/udevstart /sbin/udevstart |
||||
|
/sbin/udevd /sbin/udevd |
||||
|
/etc/udev /etc/udev |
@ -0,0 +1,76 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
initrd_mount() { # {{{ |
||||
|
dev=${1} |
||||
|
mntpoint=${2} |
||||
|
|
||||
|
/sbin/fsck -C -a ${dev} |
||||
|
fsckrc=${?} |
||||
|
if [ ${fsckrc} -eq 8 ] ; then |
||||
|
return 1 |
||||
|
fi |
||||
|
if [ $(( ${fsckrc} & ~3 )) != 0 ] ; then |
||||
|
echo " **" |
||||
|
echo " ** Filesystem ${dev} || error=${?} failed (returncode=${fsckrc})." |
||||
|
echo " ** Please repair the broken disk(s) manually." |
||||
|
echo " **" |
||||
|
exec /bin/bash |
||||
|
elif [ $(( ${fsckrc} & 2 )) != 0 ] ; then |
||||
|
echo " **" |
||||
|
echo " ** fsck has requested the system to be rebooted." |
||||
|
echo " ** Running a shell." |
||||
|
echo " **" |
||||
|
echo |
||||
|
exec /bin/bash |
||||
|
fi |
||||
|
|
||||
|
mount -n ${dev} ${mntpoint} |
||||
|
return ${?} |
||||
|
} # }}} |
||||
|
|
||||
|
PATH="/sbin:/usr/sbin:/bin/:/usr/bin" |
||||
|
|
||||
|
rootfs="" |
||||
|
rootfsmounted=0 |
||||
|
|
||||
|
mount -n -t tmpfs none /tmp |
||||
|
mount -n -t proc none /proc |
||||
|
mount -n -t sysfs none /sys |
||||
|
mount -n -t ramfs none /dev |
||||
|
/sbin/udevd & |
||||
|
/sbin/udevstart |
||||
|
cd /dev |
||||
|
rm -rf fd |
||||
|
ln -sf /proc/self/fd |
||||
|
cd / |
||||
|
|
||||
|
while read dev mntpoint fstype options fsck1 fsck2 ; do |
||||
|
[ "${mntpoint}" == "/" ] && rootfs=${dev} |
||||
|
[ -n "${rootfs}" ] && break |
||||
|
done < /etc/fstab |
||||
|
|
||||
|
echo "loading kernel modules" |
||||
|
. /etc/conf/kernel |
||||
|
|
||||
|
for x in /etc/conf/* ; do |
||||
|
[ "${x}" == "/etc/conf/kernel" ] && continue |
||||
|
echo "Running ${x} ..." |
||||
|
. ${x} |
||||
|
done |
||||
|
|
||||
|
if [ ${rootfsmounted} -eq 0 ] ; then |
||||
|
echo "Mounting rootfs (${rootfs}) on /root" |
||||
|
initrd_mount ${rootfs} /root |
||||
|
rootfsmounted=1 |
||||
|
fi |
||||
|
|
||||
|
echo "starting init in /root" |
||||
|
echo "parameters passed to init: ${@}" |
||||
|
cd /root |
||||
|
mkdir -p /root/initrd |
||||
|
mount -n --move /tmp /root/tmp |
||||
|
mount -n --move /proc /root/proc |
||||
|
mount -n --move /sys /root/sys |
||||
|
mount -n --move /dev /root/dev |
||||
|
/sbin/pivot_root . initrd |
||||
|
exec chroot . /sbin/init "${@}" |
@ -0,0 +1,99 @@ |
|||||
|
#!/bin/sh |
||||
|
|
||||
|
kernel=`uname -r` |
||||
|
tmpdir=`mktemp -d` |
||||
|
|
||||
|
if [ -n "$1" ]; then |
||||
|
if [ -d "/lib/modules/$1" ]; then |
||||
|
kernel="$1" |
||||
|
else |
||||
|
echo "Can't open /lib/modules/$1: No such directory." |
||||
|
echo "Usage: $0 [ kernel-version ]" |
||||
|
exit 1 |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
echo "Creating /boot/initrdnew-${kernel}.img ..." |
||||
|
mkdir -p $tmpdir/etc/conf |
||||
|
grep '^modprobe ' /etc/conf/kernel | grep -v 'no-initrd' | \ |
||||
|
sed 's,[ ]#.*,,' | \ |
||||
|
while read a b ; do |
||||
|
b="`find /lib/modules/$kernel -name "$b.o" -o -name "$b.ko"`" |
||||
|
#b=${b//`uname -r`/$kernel} # substitute autodetected value by correct value |
||||
|
echo "Adding $b." |
||||
|
mkdir -p $tmpdir/${b%/*} |
||||
|
cp $b $tmpdir/$b |
||||
|
echo "/sbin/insmod $b $c" >> $tmpdir/etc/conf/kernel |
||||
|
done |
||||
|
mkdir -p $tmpdir/dev $tmpdir/root $tmpdir/tmp $tmpdir/proc $tmpdir/sys |
||||
|
mknod $tmpdir/dev/ram0 b 1 0 |
||||
|
mknod $tmpdir/dev/null c 1 3 |
||||
|
mknod $tmpdir/dev/zero c 1 5 |
||||
|
mknod $tmpdir/dev/tty c 5 0 |
||||
|
mknod $tmpdir/dev/console c 5 1 |
||||
|
# this copies a set of programs and the necessary libraries into a |
||||
|
# chroot environment |
||||
|
|
||||
|
targetdir=$tmpdir |
||||
|
programs="/bin/bash /bin/bash2 /bin/sh /bin/ls /sbin/pivot_root /sbin/insmod /sbin/insmod.old /bin/mount /bin/umount /usr/bin/chroot /etc/fstab /bin/mkdir" |
||||
|
|
||||
|
libs="" |
||||
|
for x in $programs ; do |
||||
|
[ -e $x ] || continue |
||||
|
mkdir -p $targetdir/${x%/*} |
||||
|
cp -a $x $targetdir/$x |
||||
|
file $x | grep -q ELF || continue |
||||
|
libs="$libs `ldd $x 2>/dev/null | grep -v 'not a dynamic executable' | sed -e 's,^[\t ]*,,g' | cut -f 3 -d' '`" |
||||
|
done |
||||
|
|
||||
|
for x in /etc/conf/initrd/initrd_* ; do |
||||
|
[ -f $x ] || continue |
||||
|
while read file target ; do |
||||
|
if [ -d $file ] ; then |
||||
|
find $file -type f | while read f ; do |
||||
|
tfile=${targetdir}/${target}/${f#$file} |
||||
|
[ -e $tfile ] && continue |
||||
|
mkdir -p ${tfile%/*} |
||||
|
cp $f $tfile |
||||
|
libs="$libs `ldd $f 2>/dev/null | grep -v 'not a dynamic executable' | sed -e 's,^[\t ]*,,g' | cut -f 3 -d' '`" |
||||
|
done |
||||
|
fi |
||||
|
[ -f $file ] || continue |
||||
|
mkdir -p $targetdir/${target%/*} |
||||
|
cp $file $targetdir/$target |
||||
|
file $file | grep -q ELF || continue |
||||
|
libs="$libs `ldd $file 2>/dev/null | grep -v 'not a dynamic executable' | sed -e 's,^[\t ]*,,g' | cut -f 3 -d' '`" |
||||
|
done < $x |
||||
|
done |
||||
|
|
||||
|
while [ -n "$libs" ] ; do |
||||
|
oldlibs=$libs |
||||
|
libs="" |
||||
|
for x in $oldlibs ; do |
||||
|
mkdir -p $targetdir/${x%/*} |
||||
|
cp $x $targetdir/$x |
||||
|
file $x | grep -q ELF || continue |
||||
|
for y in `ldd $x 2>/dev/null | grep -v 'not a dynamic executable' | sed -e 's,^[\t ]*,,g' | cut -f 3 -d' '` ; do |
||||
|
[ ! -e "$targetdir/$y" ] && libs="$libs $y" |
||||
|
done |
||||
|
done |
||||
|
done |
||||
|
|
||||
|
# This works, but only for initrd images < 4 MB |
||||
|
itmp=`mktemp` |
||||
|
#/boot/initrdnew-${kernel}.img.tmp \ |
||||
|
dd if=/dev/zero of=${itmp} count=8192 bs=1024 > /dev/null 2>&1 |
||||
|
mke2fs -m 0 -N 5120 -F ${itmp} > /dev/null 2>&1 |
||||
|
mntpoint="`mktemp -d`" |
||||
|
mount -o loop ${itmp} $mntpoint |
||||
|
rmdir $mntpoint/lost+found/ |
||||
|
cp -a $tmpdir/* $mntpoint/ |
||||
|
umount -d $mntpoint |
||||
|
rmdir $mntpoint |
||||
|
|
||||
|
gzip -9 < ${itmp} > /boot/initrdnew-${kernel}.img |
||||
|
rm -f ${itmp} |
||||
|
|
||||
|
rm -rf $tmpdir |
||||
|
echo "Done." |
||||
|
|
@ -0,0 +1,10 @@ |
|||||
|
rockinitrd_main() { |
||||
|
mkdir -p $root/etc/conf/initrd |
||||
|
install -m 644 ${confdir}/initrd_base.txt $root/etc/conf/initrd/initrd_base |
||||
|
install -m 755 ${confdir}/linuxrc $root/etc/conf/initrd/linuxrc |
||||
|
install -m 755 ${confdir}/mkinitrdnew.sh $root/sbin/mkinitrdnew.sh |
||||
|
} |
||||
|
|
||||
|
autoextract=0 |
||||
|
srctar="none" |
||||
|
custmain="rockinitrd_main" |
@ -0,0 +1,43 @@ |
|||||
|
|
||||
|
[COPY] --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
||||
|
[COPY] |
||||
|
[COPY] This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
||||
|
[COPY] Please add additional copyright information _after_ the line containing |
||||
|
[COPY] the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
||||
|
[COPY] the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
||||
|
[COPY] |
||||
|
[COPY] ROCK Linux: rock-src/package/blindcoder/rockinitrd/rockinitrd.desc |
||||
|
[COPY] ROCK Linux is Copyright (C) 1998 - 2005 Clifford Wolf |
||||
|
[COPY] |
||||
|
[COPY] This program is free software; you can redistribute it and/or modify |
||||
|
[COPY] it under the terms of the GNU General Public License as published by |
||||
|
[COPY] the Free Software Foundation; either version 2 of the License, or |
||||
|
[COPY] (at your option) any later version. A copy of the GNU General Public |
||||
|
[COPY] License can be found at Documentation/COPYING. |
||||
|
[COPY] |
||||
|
[COPY] Many people helped and are helping developing ROCK Linux. Please |
||||
|
[COPY] have a look at http://www.rocklinux.org/ and the Documentation/TEAM |
||||
|
[COPY] file for details. |
||||
|
[COPY] |
||||
|
[COPY] --- ROCK-COPYRIGHT-NOTE-END --- |
||||
|
|
||||
|
[I] The new ROCK initrd code |
||||
|
|
||||
|
[T] The new ROCK initrd is designed to ease the creation of an initrd based |
||||
|
[T] upon some ideas discussed on the RLML early 2005. These include: |
||||
|
[T] - fsck of rootfs and starting of network, sshd and sending of email in |
||||
|
[T] case of error |
||||
|
[T] - encrypted rootfs |
||||
|
|
||||
|
[U] http://www.rocklinux.org/ |
||||
|
|
||||
|
[A] Benjamin Schieder <blindcoder@scavenger.homeip.net> |
||||
|
[M] Benjamin Schieder <blindcoder@scavenger.homeip.net> |
||||
|
|
||||
|
[C] base/boot |
||||
|
|
||||
|
[L] GPL |
||||
|
[S] Beta |
||||
|
[V] 20050720 |
||||
|
[P] X -----5---9 800.000 |
||||
|
|