How I remastered a full install of Puppy-431

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
User avatar
CatDude
Posts: 1563
Joined: Wed 03 Jan 2007, 17:49
Location: UK

How I remastered a full install of Puppy-431

#1 Post by CatDude »

Hi

I have seen a few posts asking how to remaster a full install of Puppy-431, so i decided to have a go at it myself.

In the past i have successfully used Dougals remaster script, as described here: How to remaster a Puppy live cd from a full hd install?
unfortunately this method did not work (for me at least), so i looked for alternative ways of doing things.

Using a variation on the methods described in the following thread: HOW-TO: Do a full manual remaster without Unleashed
i managed to successfully remaster a FULL Install of Puppy-431.

###### THE FOLLOWING IS UNDERTAKEN ENTIRELY AT YOUR OWN RISK ######
(although there isn't really that much of one, as far as i can see)

Requirements:
  • A FULL install of Puppy-431 (i used: pup-431.iso)
    Another Linux partition on which to build the remaster.
    Either the LiveCD or a copy of the pup-431.iso
OK, so you have got your FULL install exactly how you like it,
what do you need to do now ?

If you have added extra icons on the desktop, you will need to edit: /root/Choices/ROX-Filer/globicons
adding something like this:

Code: Select all

  <rule match="/usr/bin/gimp">
    <icon>/usr/local/lib/X11/pixmaps/gimp48.png</icon>
  </rule>
for each of the icons you have added,
otherwise the icons will not display in the remaster.

If you have also added your own wallpaper/background image,
you will need to go to: /usr/share/backgrounds
and either delete or rename the original default.jpg image.
Next rename your current wallpaper/background image to default.jpg,
then just to be on the safe side, reload it via the wallpaper/background chooser in the menu.

As i personally had added wbar into my FULL install,
i needed to edit BOTH: /root/.jwmrc and /etc/xdg/templates/_root_.jwmrc
by adding the following:

Code: Select all

<Group>
<Class>wbar</Class>
<Name>wbar</Name>
<Option>nolist</Option>
</Group>
to stop wbar from opening in a window.
As shown in the image In This Post

Right then, enough of the preliminaries,
the following is the way i went about things. (change paths to suit your setup)


All of the following was done from the FULL install.

Step 1.
Creating our working directories.
  • I created TWO directories on the Linux partition (in my case, that is sdb8)
    /mnt/sdb8/SFS
    /mnt/sdb8/ISO
    My FULL install is on sda13 (not important, just for your information.)
Step 2.
Getting the required files.
  • Put the LiveCD (puppy-431) into a drive and mount it,
    now copy all of the files into /mnt/sdb8/ISO
    When its finished copying them, you can unmout the LiveCD again, and remove it from the drive.
    Whilst you are at it, delete the file /mnt/sdb8/ISO/boot.cat
Step 3.
Putting together the new pup-431.sfs file.
  • Open TWO ROX-Filer windows,
    one at /mnt/sdb8/SFS and the other at /mnt/sdb8/ISO
    Click on the file /mnt/sdb8/ISO/pup-431.sfs
    in the ROX-Filer window that opens, click on the "Eye" icon to show hidden files (IMPORTANT)

    Next select all Ctrl + a (or click on the icon next the the Eye)
    now hold down the Ctrl key and left clck on each of the following directories (to unselect them)
    root
    usr
    var
    let go of the Ctrl key and left click (and hold down) on one of the remaining highlighted directories,
    now Drag & Drop them into /mnt/sdb8/SFS and choose Copy from the popup menu.

    When its finished copying them, you can once again click on the file /mnt/sdb8/ISO/pup-431.sfs
    that will unmount it.
    We do not require /mnt/sdb8/ISO/pup-431.sfs any more, so go ahead and delete it.
Step 4.
Getting the remainder of the required files.
  • With TWO ROX-Filer windows open,
    one at /mnt/sdb8/SFS and the second at the / of your FULL install.
    In this second ROX-Filer window, click on the "Eye" icon to show hidden files (IMPORTANT)

    Now hold down the Ctrl key and left clck on each of the following directories (to select them)
    root
    usr
    var
    let go of the Ctrl key and left click (and hold down) on one of the highlighted directories,
    now Drag & Drop them into /mnt/sdb8/SFS and choose Copy from the popup menu.

    When its finished copying them,
    you can left click anywhere away from any directories in the / of your FULL install. (to unselect the directories)
Now is a good time to go into: /root/.packages
in here you will find files from any packages you have installed,
files similar to these: (these are what i put into my FULL install)
  • gimp-2.4.0-rc3.files
    imlib2-1.4.0.files
    patched-wbar-1.3.3.files
    stripped-python2.5+wbarconf-0.0.1.files
If you open all of these files in a text editor (Geany whatever)
you will see exactly what files were installed (and where they were installed to)

Most files get installed into /root and /usr although some may be installed elsewhere,
my gimp for example also put some in /etc

Also i edited some files earlier, one of which was /etc/xdg/templates/_root_.jwmrc
so i need to copy that (and the gimp files) into their respective directories in /mnt/sdb8/SFS

YOU need to check that you have copied ALL of the files mentioned in your particular whatever-package.files
into their respective directories in /mnt/sdb8/SFS (or whatever yours is called)


Step 5.
Creating the new pup-431.sfs file.
  • In a ROX-Filer window at /mnt/sdb8 (or whatever your partition is)
    right click away from any icons, and select: Window > Terminal Here
    and enter the following command: (change SFS to whatever your directory is called)

    Code: Select all

    mksquashfs SFS pup-431.sfs
    You will end up with a new file: /mnt/sdb8/pup-431.sfs
Step 6.
Creating a new ISO file.
  • Copy (or move) the file /mnt/sdb8/pup-431.sfs into /mnt/sdb8/ISO

    Once again
    In a ROX-Filer window at /mnt/sdb8 (or whatever your partition is)
    right click away from any icons, and select: Window > Terminal Here
    and enter the following command:

    Code: Select all

    mkisofs -D -R -o 431firm.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ISO
    In the above command, 431firm.iso is the name i gave my new ISO file
    and ISO (at the end) is the name of the directory containing all of the files for the new ISO.
That's it,
you can now either burn a new LiveCD or make a manual frugal install.

NOTE:
The command suggested by MU failed for me,
the resulting ISO contained files that had had permission/owner and/or name changes. (see naming-permissions-oddity.png)

Image frugal-from-full.jpg is a screenshot of a frugal install made from the remaster,
i know you wouldn't have desktop icons with wbar, it was just for this test.


Hope this is helpful
CatDude
.
[img]http://www.smokey01.com/CatDude/.temp/sigs/acer-futile.gif[/img]

User avatar
trapster
Posts: 2117
Joined: Mon 28 Nov 2005, 23:14
Location: Maine, USA
Contact:

#2 Post by trapster »

Seems simple enough....just create a script for it and we'll be all set to go.
:lol: :lol: :lol: :shock: :shock: :shock:
trapster
Maine, USA

Asus eeepc 1005HA PU1X-BK
Frugal install: Slacko
Currently using full install: DebianDog

User avatar
Octave G.
Posts: 2
Joined: Tue 03 Jan 2012, 17:07
Location: milano, italia

still good with Lucid 528.004 A.D. 2012

#3 Post by Octave G. »

This tutorial is still good. With minimal changes I was able to remaster my MonsterPup (more than 1 GB of stuff, with Iron browser, Libre Office, Java, Acrobat 9.0, Skype, Pidgin, GoldenDict and a lot of dictionaries - all things that I need for work) from a full (hard-disk) installation. My original Puppy was Lucid Puppy 528.004.
The only adjustments I had to do were:
* no need at all to change the name of background to default.jpg. If you do so, you'll get the default background of your version (maybe it could work if you change also /usr/share/backgrounds_original.
* at step 4. i added also my /opt directory.
* when you prepare your remastered pup.sfs it's fundamental to keep the name of the original sfs (in my case: lupu_528.sfs).
* after the «mkisofs -D -R -o 431firm.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ISO» operation, you have to change permissions of boot.cat (it needs writing for the user and execution for everybody). [i had to do it directly on the ISO, using ISOmaster].
* Puppy's BootFlash failed to create my USB-live (maybe the ISO was too large). So I switched to Ubuntu, on the other partition, I opened sudo-Nautilus and sudo-Unetbootin (Puppy loves only roots) and everything went ok.

* The only thing that was different from my master
Pup was the icons theme (I had Smooth Color, but at first my remaster appeared with Crystal, dunno why). [Now, I know why: because the icon theme of choice is written in /etc/desktop-icon-theme]

Thank you, CatDude!

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

Re: still good with Lucid 528.004 A.D. 2012

#4 Post by greengeek »

Octave G. wrote:* when you prepare your remastered pup.sfs it's fundamental to keep the name of the original sfs (in my case: lupu_528.sfs).
Ok, I'm unlikely to get a response from Octave.G, but can anyone tell me what steps I need to take in order to successfully change the name of the sfs? (I want to make some "risky" changes to my remastered sfs and do not want to get it confused with the original sfs). eg: I want to end up with something like pup431DANGEROUS.sfs

I have a feeling I need to make changes to the initrd.gz as well maybe???

Nice tutorial BTW Catdude.

User avatar
RetroTechGuy
Posts: 2947
Joined: Tue 15 Dec 2009, 17:20
Location: USA

Re: still good with Lucid 528.004 A.D. 2012

#5 Post by RetroTechGuy »

greengeek wrote:
Octave G. wrote:* when you prepare your remastered pup.sfs it's fundamental to keep the name of the original sfs (in my case: lupu_528.sfs).
Ok, I'm unlikely to get a response from Octave.G, but can anyone tell me what steps I need to take in order to successfully change the name of the sfs? (I want to make some "risky" changes to my remastered sfs and do not want to get it confused with the original sfs). eg: I want to end up with something like pup431DANGEROUS.sfs

I have a feeling I need to make changes to the initrd.gz as well maybe???

Nice tutorial BTW Catdude.
How about copying a set of files to another folder (e.g. /home/lupu528 copied to /home/dangerous) and then make your mods in "dangerous".

Modify your grub menu.lst to have an entry to look in one or the other. Your regular boot will point to lupu528, if you select "dangerous", you off into the wild yonder... If the mod fails, you copy the original .sfs over to the dangerous folder, and try again.
[url=http://murga-linux.com/puppy/viewtopic.php?t=58615]Add swapfile[/url]
[url=http://wellminded.net63.net/]WellMinded Search[/url]
[url=http://puppylinux.us/psearch.html]PuppyLinux.US Search[/url]

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#6 Post by greengeek »

Thanks RTG - the problem is that I want the name of the new sfs that I create to be noticeably different to the name of the original sfs that I used as the donor for my new puppy. The reason for this is so that if I distribute my new puppy there will be no confusion with the original puppy.

I can see that I need to change the sfs name written inside the /etc/DISTRO SPECS file but that alone does not work. Maybe I also need to make a change within the vmlinux?? (maybe a recompile or something?)

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#7 Post by Karl Godt »

GG : You need to adjust also /DISTRO_SPECS file inside the initrd.gz .

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#8 Post by greengeek »

Hi Karl,
thanks for the reply -
When you say Ineed to change the /DISTRO_SPECS file inside the initrd.gz I am not sure what you mean. Is there another file inside the initrd that I do not see? In order to look inside the initrd I am using the script "editinit" from rcrsn51s post here:
http://www.murga-linux.com/puppy/viewtopic.php?t=57380
When I look inside the initrd I do not see anything that contains the current title of the sfs file (eg: puppy_precise_5.6.1.sfs). Instead I see a lot of things that look like "generic" descriptions of the puppy name data field, but relating to the /etc/DISTRO_SPECS file. Stuff like this:

Code: Select all

#100911 simple filenames specified in DISTRO_SPECS: DISTRO_ZDRVSFS, DISTRO_PUPPYSFS...
ZDRVSFS="$DISTRO_ZDRVSFS"
PUPXXXSFS="$DISTRO_PUPPYSFS"
#DEVXSFS="$DISTRO_DEVXSFS"
IDSTRING="$DISTRO_IDSTRING" #from DISTRO_SPECS, string appended to kernel.qky, vmlinuz, puppy.sfs, zdrv.sfs, devx.sfs (see 3builddistro).
#[ "`echo "$PUPXXXSFS" | grep '_[0-9][0-9][0-9]\.sfs'`" != "" ] && NAMETYPE='traditional' #has version info.
[ "`echo "$PUPXXXSFS" | grep '[0-9]\.sfs'`" != "" ] && NAMETYPE='traditional' #110422 has version info.
It looks as if initrd goes looking for the correct data to be specified in the /etc/DISTRO_SPECS before it declares that the correct .sfs has been found. I have tried changing the "puppy_precise_5.6.1.sfs" name in the /etc/DISTRO_SPECS file to puppy_precise_GG5.6.1.sfs but it did not find the sfs so I wonder if I have upset the format of the expected data? Maybe there should be no alphabetical characters in the numeric suffix (version) field.

I also wonder about the "$DISTRO_IDSTRING" in the code above as it suggests that this is a 32bit alpha-numeric ID-string that might need to be appended to the vmlinuz somehow. Maybe I need to change that ID-STRING if I change the sfs name?

If I am using the "puppy_precise_5.6.1.sfs" would you expect that string to appear somewhere in the initrd?

I'm getting the feeling I may be using the wrong method of viewing the initrd contents.

EDIT : It seems the answer is that the "init" file I was editing is only one component of the initrd.gz
It was necessary for me to also edit another DISTRO_SPECS file that is inside the initrd.gz by using RSH's edit_initrd_gz pet available here:
http://murga-linux.com/puppy/viewtopic.php?t=80878

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#9 Post by Karl Godt »

The DISTRO-SPECS file should be topmost next to /init in the initrd.gz

DISTRO_IDSTRING is not used , as you see it commented in the /init . That was a temporary experiment in late 2010 I think .
Attachments
DISTRO_SPECS_of_initrd.gz.jpg
(39.37 KiB) Downloaded 1044 times

Post Reply