Загружаемся с LiveCD или по сети
Делаем все необходимые настройки
Устанавливаем необходимое ПО
далее создаем папку в которой будет храниться новый образ KNOPPIX
mkdir /ramdisk/tmp/source
Копируем текущую систему в папку source
cp -Rp /KNOPPIX/* source
cp -Rp /KNOPPIX/.bash_profile source
если устанавливали дополнительное ПО то копируем папки куда ставили ПО
например:
cp -Rp /opt/* source/opt/
cp -Rp /usr/java source/usr/
копируем сделанные настройки
cp -Rp /home/dsl/.* source/etc/skel/
так же настройки можно добавить в
/etc/skel/.bashrc
далее собираем образ
mkisofs -R source | create_compressed_fs – 65536 > KNOPPIX
копируем его на носитель
Далее собираем initrd.gz
для этого распаковываем minirt24.gz
gunzip initrd.gz
losetup /dev/loop0 initrd
mount -t ext2 /dev/loop0 /mnt
в папке /mnt получаем содержание initrd
копируем в другую папку(initrd-tree)
Отключение:
umount /mnt
losetup -d /dev/loop0
В папке
cdrom/KNOPPIX/
заменяем файл KNOPPIX вновь созданным
перед директорие й initrd-tree кладем скрипт
makeext2initrd.sh
#!/bin/sh
PWD="`pwd`"
SOURCE_TREE="$PWD/initrd-tree"
OUTPUT_IMAGE="$PWD/initrd.gz"
KERNEL_VERSION="$(uname -r)"
#PUPPYVERSION="`cat $SOURCE_TREE/PUPPYVERSION`"
# Calculate size needed for initrd:
#SIZE=`du -s -k $SOURCE_TREE | tr "\t" " " | cut -f 1 -d ' '`
SIZE=100000
# Add a bit of padding:
PAD=900 #600 #600 #160 #98 THIS IS WEIRD HAD TO INCREASE THIS FROM 160 TO 600 v2.12!!!
TRIMOFF=800
#if [ -f $SOURCE_TREE/pup_$PUPPYVERSION.sfs ];then #v2.16rc
#humongous, padding needs to be adjusted...
#PAD=3100 #1800
#TRIMOFF=0
#fi
#SIZE=`expr $SIZE + $PAD`
TMPSIZE=98000
echo "tmp size=${TMPSIZE}"
#TMPSIZE=`expr $TMPSIZE + 500`
mkdir /tmp/tmpfs
mount tmpfs /tmp/tmpfs -t tmpfs -o size=${TMPSIZE}k
mkdir /tmp/tmpfs/mntpt
echo "Size of ext2 filesystem is ${SIZE}KB"
# Make an empty file of the proper size:
dd if=/dev/zero of=/tmp/tmpfs/initrd-tmp bs=1k count=$SIZE #2> /dev/null
sync
# Create a filesystem on it:
mke2fs -m 0 -F /tmp/tmpfs/initrd-tmp #1> /dev/null 2> /dev/null
sync
# Fix broken ext2fs defaults:
tune2fs -c 0 -i 0 -m 0 /tmp/tmpfs/initrd-tmp #1> /dev/null 2> /dev/null
sync
# Mount the initrd-to-be:
losetup /dev/loop0 /tmp/tmpfs/initrd-tmp
mount -t ext2 /dev/loop0 /tmp/tmpfs/mntpt
# Populate the initrd image:
( cd $SOURCE_TREE
cp -a * /tmp/tmpfs/mntpt
)
#v2.16rc...
#rm -f /tmp/tmpfs/mntpt/init
#ln -s sbin/init /tmp/tmpfs/mntpt/linuxrc
#if [ -d /tmp/tmpfs/mntpt/dev0 ];then
# rmdir /tmp/tmpfs/mntpt/dev
# mv /tmp/tmpfs/mntpt/dev0 /tmp/tmpfs/mntpt/dev
#fi
#mkdir /tmp/tmpfs/mntpt/.root_ro
#mkdir /tmp/tmpfs/mntpt/.root_rw
## Make sure we have any block devices that might be needed:
#SLOPPY_DEV_LIST=$(cat /proc/partitions)
#for device in $SLOPPY_DEV_LIST ; do
# if [ ! -r $SOURCE_TREE/dev/$device -a -b /dev/$device ]; then
# cp -a /dev/$device $SOURCE_TREE/dev
# fi
#done
# Unmount the initrd and move it into place:
sync
umount /dev/loop0
rmdir /tmp/tmpfs/mntpt
#gzip -9 /tmp/tmpfs/initrd-tmp
#rm -f $OUTPUT_IMAGE
#mv /tmp/tmpfs/initrd-tmp.gz $OUTPUT_IMAGE
sync
#attempt size reduction, that huge empty space...
rm -f initrd
rm -f initrd.gz
DOWNSIZE=98000
sync
resize2fs -pf /tmp/tmpfs/initrd-tmp $DOWNSIZE
sync
dd if=/tmp/tmpfs/initrd-tmp of=initrd bs=1k count=$DOWNSIZE
sync
e2fsck -y -f initrd
sync
rm -f /tmp/tmpfs/initrd-tmp
gzip -9 initrd
sync
umount /tmp/tmpfs
rmdir /tmp/tmpfs
#v2.15 save the size, needed by createpuppy...
echo -n "$SIZE" > /tmp/initrdsize.txt
sync
####END####
запускаем его и получаем файл initrd.gz
переименовываем в minirt24.gz
кладем в vmlinuz
и грузимся по сети
все готово
Делаем все необходимые настройки
Устанавливаем необходимое ПО
далее создаем папку в которой будет храниться новый образ KNOPPIX
mkdir /ramdisk/tmp/source
Копируем текущую систему в папку source
cp -Rp /KNOPPIX/* source
cp -Rp /KNOPPIX/.bash_profile source
если устанавливали дополнительное ПО то копируем папки куда ставили ПО
например:
cp -Rp /opt/* source/opt/
cp -Rp /usr/java source/usr/
копируем сделанные настройки
cp -Rp /home/dsl/.* source/etc/skel/
так же настройки можно добавить в
/etc/skel/.bashrc
далее собираем образ
mkisofs -R source | create_compressed_fs – 65536 > KNOPPIX
копируем его на носитель
Далее собираем initrd.gz
для этого распаковываем minirt24.gz
gunzip initrd.gz
losetup /dev/loop0 initrd
mount -t ext2 /dev/loop0 /mnt
в папке /mnt получаем содержание initrd
копируем в другую папку(initrd-tree)
Отключение:
umount /mnt
losetup -d /dev/loop0
В папке
cdrom/KNOPPIX/
заменяем файл KNOPPIX вновь созданным
перед директорие й initrd-tree кладем скрипт
makeext2initrd.sh
#!/bin/sh
PWD="`pwd`"
SOURCE_TREE="$PWD/initrd-tree"
OUTPUT_IMAGE="$PWD/initrd.gz"
KERNEL_VERSION="$(uname -r)"
#PUPPYVERSION="`cat $SOURCE_TREE/PUPPYVERSION`"
# Calculate size needed for initrd:
#SIZE=`du -s -k $SOURCE_TREE | tr "\t" " " | cut -f 1 -d ' '`
SIZE=100000
# Add a bit of padding:
PAD=900 #600 #600 #160 #98 THIS IS WEIRD HAD TO INCREASE THIS FROM 160 TO 600 v2.12!!!
TRIMOFF=800
#if [ -f $SOURCE_TREE/pup_$PUPPYVERSION.sfs ];then #v2.16rc
#humongous, padding needs to be adjusted...
#PAD=3100 #1800
#TRIMOFF=0
#fi
#SIZE=`expr $SIZE + $PAD`
TMPSIZE=98000
echo "tmp size=${TMPSIZE}"
#TMPSIZE=`expr $TMPSIZE + 500`
mkdir /tmp/tmpfs
mount tmpfs /tmp/tmpfs -t tmpfs -o size=${TMPSIZE}k
mkdir /tmp/tmpfs/mntpt
echo "Size of ext2 filesystem is ${SIZE}KB"
# Make an empty file of the proper size:
dd if=/dev/zero of=/tmp/tmpfs/initrd-tmp bs=1k count=$SIZE #2> /dev/null
sync
# Create a filesystem on it:
mke2fs -m 0 -F /tmp/tmpfs/initrd-tmp #1> /dev/null 2> /dev/null
sync
# Fix broken ext2fs defaults:
tune2fs -c 0 -i 0 -m 0 /tmp/tmpfs/initrd-tmp #1> /dev/null 2> /dev/null
sync
# Mount the initrd-to-be:
losetup /dev/loop0 /tmp/tmpfs/initrd-tmp
mount -t ext2 /dev/loop0 /tmp/tmpfs/mntpt
# Populate the initrd image:
( cd $SOURCE_TREE
cp -a * /tmp/tmpfs/mntpt
)
#v2.16rc...
#rm -f /tmp/tmpfs/mntpt/init
#ln -s sbin/init /tmp/tmpfs/mntpt/linuxrc
#if [ -d /tmp/tmpfs/mntpt/dev0 ];then
# rmdir /tmp/tmpfs/mntpt/dev
# mv /tmp/tmpfs/mntpt/dev0 /tmp/tmpfs/mntpt/dev
#fi
#mkdir /tmp/tmpfs/mntpt/.root_ro
#mkdir /tmp/tmpfs/mntpt/.root_rw
## Make sure we have any block devices that might be needed:
#SLOPPY_DEV_LIST=$(cat /proc/partitions)
#for device in $SLOPPY_DEV_LIST ; do
# if [ ! -r $SOURCE_TREE/dev/$device -a -b /dev/$device ]; then
# cp -a /dev/$device $SOURCE_TREE/dev
# fi
#done
# Unmount the initrd and move it into place:
sync
umount /dev/loop0
rmdir /tmp/tmpfs/mntpt
#gzip -9 /tmp/tmpfs/initrd-tmp
#rm -f $OUTPUT_IMAGE
#mv /tmp/tmpfs/initrd-tmp.gz $OUTPUT_IMAGE
sync
#attempt size reduction, that huge empty space...
rm -f initrd
rm -f initrd.gz
DOWNSIZE=98000
sync
resize2fs -pf /tmp/tmpfs/initrd-tmp $DOWNSIZE
sync
dd if=/tmp/tmpfs/initrd-tmp of=initrd bs=1k count=$DOWNSIZE
sync
e2fsck -y -f initrd
sync
rm -f /tmp/tmpfs/initrd-tmp
gzip -9 initrd
sync
umount /tmp/tmpfs
rmdir /tmp/tmpfs
#v2.15 save the size, needed by createpuppy...
echo -n "$SIZE" > /tmp/initrdsize.txt
sync
####END####
запускаем его и получаем файл initrd.gz
переименовываем в minirt24.gz
кладем в vmlinuz
и грузимся по сети
все готово