Here is another idea how you can do it.
Instead of making squashfs of the root filesystem, you could create an ext2 image file large enough to hold the stuff (about 700MB at the moment), and put the content of squashfs there, uncompressed. Name the image file as "fd64-620.sfs" and put it in initrd, and then "cpio -o -H newc | gzip" as usual to produce the initrd stuff.
This is "more compatible" than the above because it still runs with basesfs, but the basesfs is uncompressed. The entire initrd is still compressed but it will be decompressed only once during boot-up. In my brief test this seems to have a better boot speed.
Note: just because the extension is "SFS", it doesn't mean it has to be squashfs file
Instruction:
1. Open terminal (call this as terminal #1), launch sandbox.sh, choose the layers you want to include in the "remaster". Only include pup_ro layers onwards, *DO NOT* include the bottom 2 layers (pup_init and kernel-modules).
2. Open another terminal (call this as terminal #2)
3. Type the commands in the following script one-by-one inside terminal #2 - important, in terminal #2, NOT in the sandbox itself.
4. Replace /path/to/original/initrd with - well, the path your original initrd. Its contents will be changed so make sure you have a handy backup copy, and it must be on a writable medium.
5. Replace /tmp/initrd-XXXXX with the random path generated by filemnt.
6. At the end of the script, the your /path/to/original/initrd would have been updated, which then you can use for making iso etc.
7. Close terminal #1 and #2.
Code: Select all
#/bin/sh
# undo sandbox modifications
cp /etc/profile etc/profile
cp /etc/shinit etc/shinit
cp /usr/bin/xwin usr/X11R7/bin/xwin
cp /usr/bin/wmexit usr/X11R7/bin/wmexit
cp /usr/bin/X usr/X11R7/bin/X
rm etc/BOOTSTATE
# make the imagefile
head -c 700M /dev/zero > /tmp/fd64-620.sfs
mke2fs /tmp/fd64-620.sfs
# mount the image file
mount -o loop /tmp/fd64-620.sfs /mnt/data
# copy the files
find | grep -Ev '^./usr/lib/|^./usr/X11R7/lib/|^./dev/|^./tmp/|^./proc/|^./sys/|^./aufs/' | cpio -p /mnt/data
# umount the imagefile
umount -d /mnt/data
# open the original initrd
filemnt /path/to/original/initrd
# replace the fd64-200.sfs with
cp /tmp/fd64-620.sfs /tmp/initrd-XXXXX # where XXXX is the location in which filemnt has opened the initrd
# re-pack initrd
/tmp/initrd-XXXXX/repack-initrd # you will end up with 700+ MB of initrd, in the original /path/to/original/initrd location
# gzip the initrd
gzip /path/to/original/initrd
EDIT: Typed the script but forgot to include the instruction, doh!
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]