Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Mon 22 Dec 2014, 05:16
All times are UTC - 4
 Forum index » House Training » HOWTO ( Solutions )
HOWTO create easy multi-boot USB Puppy from Linux
Moderators: Flash, Ian, JohnMurga
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
Page 3 of 6 Posts_count   Goto page: Previous 1, 2, 3, 4, 5, 6 Next
Author Message
rcrsn51


Joined: 05 Sep 2006
Posts: 9373
Location: Stratford, Ontario

PostPosted: Thu 07 Feb 2013, 12:09    Post_subject:  

greengeek wrote:
So are you saying that the boot folder and menu.lst are on HDD, but this grub stanza tells the system that the puppy files are on a usb drive?


Are you asking this because of the UUID entry? Hard drive partitions can also be identified by a UUID.
Back to top
View user's profile Send_private_message 
Scooby

Joined: 03 Mar 2012
Posts: 341

PostPosted: Thu 07 Feb 2013, 12:57    Post_subject:  

kooliepup wrote:
This is a bit of a diversion, which is not intended to demean the project at hand.
I also am keen to see a .pet to enable HDD ISO booting.

Since I wont myself do it this way I cannot test or develop.
Of course it is free for anyone else to take this up.

kooliepup wrote:
My machine does not boot from USB.


You could try plop too boot from cd first and then USB.
but it doesnt work with the automated approach of Easy2Boot.

But I guess this wouldnt be so nice a solution. Harddrive install is better.

Edited_time_total
Back to top
View user's profile Send_private_message 
Scooby

Joined: 03 Mar 2012
Posts: 341

PostPosted: Thu 07 Feb 2013, 13:34    Post_subject:  

gcmartin wrote:



Questions
  1. Would it be favorable to make a PET to ONLY delete the files presented by GRUB4DOS versus trashing all information on the drive?
  2. Is there another system tool to merely prep the boot record of the drive without running GRUB4DOS, such that the drive will be prepared without the effort of GRUB4DOS and without destruction of the drive's current information?
The reason for the questions is that it seems to me that the drive can be setup without the need to destroy the existing data that the drive may already contain so that this thread's can guide appropriately.


Martin after re-reading your post a few times I believe you want to install grub4dos
on internal HD and want to preserve data.

However although the Easy2Boot solution is good to use on HDD I will not make an installer for it.
Since I wont myself do it this way I cannot test or develop.
I will do for USB only.

Of course it is free for anyone else to take this up.

I think its better you search the web for how to install Grub4Dos to hd
for your particular situation

There is information how its done for example on a windows installation
here

Then if you want you can have the system boot the menu.lst of Easy2Boot
Back to top
View user's profile Send_private_message 
trueriver

Joined: 07 Feb 2013
Posts: 30
Location: Manchester, England

PostPosted: Thu 07 Feb 2013, 13:40    Post_subject:  

hi Scooby,

Thanks for the work you have done here! Seems ideal for my case, as I want to run Puppy from a USB stick and do not have a CD drive nor a Windows system to start from. I will run the "second easiest" method from another Linux distro.

Question: Do I use the multi-boot Puppy as a "CD" and use that to do an "install to USB" onto a second USB stick?

Or can I miss out that step, and immediately start using the multi-boot Puppy as my long term Puppy? Would I need to tweak it at all? (I am wonderimg if it might need settings like noatime to avoid wearing out the flash drive, for example)?

Incidentally, any other users like me who are not starting from a working puppy may like to know that the bootlace program (used in the second easiest method) is in the grub4dos zip file downloadable from
grub4dos version 0.4.5c

or check the project's downloads page for an even newer version.

Regards
River~~

edit: updated link to download info for grub4dos (link originally given was to a much older version, sorry)

Edited_times_total
Back to top
View user's profile Send_private_message 
Scooby

Joined: 03 Mar 2012
Posts: 341

PostPosted: Thu 07 Feb 2013, 14:12    Post_subject:  

trueriver wrote:
Thanks for the work you have done here

I am just the prophet, the god is steve at rmprepusb


trueriver wrote:

Question: Do I use the multi-boot Puppy as a "CD" and use that to do an "install to USB" onto a second USB stick?

Or can I miss out that step, and immediately start using the multi-boot Puppy as my long term Puppy?

You can miss out that step and immediately start using the multi-boot Puppy as your long term Puppy!

trueriver wrote:

Would I need to tweak it at all? (I am wondering if it might need settings like noatime to avoid wearing out the flash drive, for example)?


I dont think you have to worry about that. Its the issue with savefile and the solution with
psavemark but Im working on a solution for that. In the interim there is a solution under
subtitle Save File

trueriver wrote:

Incidentally, any other users like me who are not starting from a working puppy may like to know that the bootlace program (used in the second easiest method) is in the grub4dos zip file downloadable from the grub4dos project at http://sourceforge.net/projects/grub4dos/files/
~~


I must confess I only thought of windows and puppy linux users. I will take your suggestion and update for regular Linux users. I dont however know how to make
a solution for an automated install across other Linuxes. Bash-script?

I am originally a Windows user but now a puppy convert. Only limited experience
with other Linuxes and my favourite puppy is Archpuppy.

The update will take some time though

Edited_time_total
Back to top
View user's profile Send_private_message 
greengeek

Joined: 20 Jul 2010
Posts: 2754
Location: New Zealand

PostPosted: Thu 07 Feb 2013, 14:12    Post_subject:  

rcrsn51 wrote:
Are you asking this because of the UUID entry? Hard drive partitions can also be identified by a UUID.
Yes, I made the assumption that a UUID would only be relevant to USB devices (Doh! wrong again!)
Back to top
View user's profile Send_private_message 
trueriver

Joined: 07 Feb 2013
Posts: 30
Location: Manchester, England

PostPosted: Thu 07 Feb 2013, 15:01    Post_subject:  

Scooby wrote:
...

I must confess I only thought of windows and puppy linux users. I will take your suggestion and update for regular Linux users. I dont however know how to make
a solution for an automated install across other Linuxes. Bash-script?
...


You could wrap a bash script together with bootlace.com as an add on for non-puppy users. The issue would be getting the right drive...

If you wanted to produce a GUI program, I'd suggest Python -- but that would be a *lot* more work.

I will post an even easier way in, later tonight, if I can get it working

River~~
Back to top
View user's profile Send_private_message 
Scooby

Joined: 03 Mar 2012
Posts: 341

PostPosted: Thu 07 Feb 2013, 15:12    Post_subject:  

I have a question about implementation.

Two solutions to choose between

1. edit boot option on ISO itself with script PSavemarkelyfy. The default use is
./PSaveMarkelyfy precise-5.4.3.iso

2. Have to folders on USB stick one called Linux for regular booting with chainloading.
for Linux Live CD and puppy linux without savefile. And one folder called puppy
with puppy linux isos which gets called with boot option psavemark that makes
savefiles work


I myself tend to go with option 1. Let users use my bash-script to edit a configfile on ISO
It is really easy to run.
Back to top
View user's profile Send_private_message 
trueriver

Joined: 07 Feb 2013
Posts: 30
Location: Manchester, England

PostPosted: Thu 07 Feb 2013, 15:49    Post_subject: Re: HOWTO create easy multi-boot USB Puppy from Linux
Sub_title: Adjustments to "second easiest" method (working from non-Puppy Linux)
 

Scooby wrote:
...
[b][u]Alternative 2 - the second easiest way


This did not work for me with the instructions as given (at least if I understood them correctly). I did find a slightly different way to do things.

I was working from a terminal window running in Ubuntu 12.10, though the exact flavour of Linux should not matter, Puppy does tend to mount filesystems differently to most larger flavours of Linux (*)

Quote:

2. ...
Code:
mkdosfs - F 32 -I /dev/sdxx


where sdxx is exchanged for your label
and -I is i and not the L character.


Firstly: a typo: there must not be a space between the - and the F.

Here I was not quite sure what you meant by "label". To Linux users usually (*) means a human readable name for the disk whereas sdxx looks like a Linux disk identifier.

If sdxx is a label, the syntax on many Linux distros (*) is /dev/disk/by-label/sdxx

If sdxx is a partition (eg sdc1) then /dev/sdc1 is the more usual form (*), and /mnt/sdc1 is specific to Puppy's way of doing things.

So I used /dev/sdc1 here instead of /mnt/sdc1

Thinking of labels, you might actually want a label on this partition: this is how you do that:

Code:
mkdosfs -F 32 -n easy2boot -I /dev/sdxx


Then when you look at the drive in Windows and in most (*) Linux versions it will show as easy2boot

Quote:

3. Make USB drive bootable with Grub4Dos.

Code:
bootlace.com --floppy=y /dev/sdxx


where y is exchanged for the number of the partion you want to install the bootloader on(most commonly 1
and sdxx is exchanged for your label


Here I typed --floppy=1 /dev/sdc1. That appeared to work at the time, but at the end of the process the bios failed to find the bootsector.

Referring back to the grub4dos manual, this is because your form of the command installs to the *Partition* MBR, and the BIOS looks at the *disk* MBR. (+)



So I changed the command to refer to the disk, and bootlace then complained that the --floppy option is illegal

So I left that out, and the version of this that worked for me was as follows:

Code:
bootlace.com /dev/sdx


where sdx is the disk not the partition (for example sdc not sdc1)

Having done that, I followed the remaining instructions as given and it booted nicely. After setting up the wifi, the first thing I did from my *new* *working* Puppy was to post this.

River~~

edit to add footnotes

(*) In this post, "Linux usually" and "most Linux" means the mainstream distros like Debian, SuSE, Fedora, Red Hat, Ubuntu; and in contrast to how Puppy does things.
Anyone swapping in either direction between "most Linux" and "Puppy" has some learning to do. Most of these differences arise from BarryK's efforts to reduce bloat.

(+) Looking back, I wonder if my mistake was simpler - did I check that the "boot" flag was set on that partition? I'm not going to go back and test that now I have got a bootable Puppy

Edited_times_total
Back to top
View user's profile Send_private_message 
kooliepup


Joined: 13 Jan 2012
Posts: 302
Location: Victoria, Australia

PostPosted: Fri 08 Feb 2013, 00:43    Post_subject:  

@greengeek,

You can replace the UUID line with the more common

find --set-root --ignore-floppies --ignore-cd /TESTRUN/initrd.gz

It is usually quicker booting using the UUID, but not always.

HTH.
Back to top
View user's profile Send_private_message 
gcmartin


Joined: 14 Oct 2005
Posts: 4507
Location: Earth

PostPosted: Fri 08 Feb 2013, 00:54    Post_subject:  

The following are 3 different ways to tell the boot process which USB/HDD device to boot go looking for the additional info needed for booting the system.
  • find --set-root /TESTRUN/initrd.gz
  • root (hd0,1)
  • uuid 65a8ce93-769e-425a-b02b-e32494af59ef
EITHER one of them, each, do about the same exact thing in identifying where to look.

Here to help

_________________
Get ACTIVE Create Circles; Do those good things which benefit people's needs!
We are all related ... Its time to show that we know this!
3 Different Puppy Search Engine or use DogPile
Back to top
View user's profile Send_private_message 
Adagio

Joined: 06 May 2011
Posts: 126
Location: TerraAustralis

PostPosted: Fri 08 Feb 2013, 03:53    Post_subject:  

The easiest way for a novice to get the UUIDs for this is to use the attached Grub4DOS .pet.
It is from Puppy Precise 5.42, and should work on all 5x series Pups.
I have used it on most of them.
Just install over the current one.

Don't know about earlier Pups. Should be ok.
grub4dos-0.4.4.v1.8.0-1.pet
Description 
pet

 Download 
Filename  grub4dos-0.4.4.v1.8.0-1.pet 
Filesize  180.42 KB 
Downloaded  295 Time(s) 
Back to top
View user's profile Send_private_message 
trueriver

Joined: 07 Feb 2013
Posts: 30
Location: Manchester, England

PostPosted: Fri 08 Feb 2013, 07:40    Post_subject:
Sub_title: Some untested workarounds for the savefile issue
 

Scooby wrote:

...
During boot press F2 key

and then write the following

Code:
puppy psavemark=1


then savefile will work, This can be somewhat tedious so will see if it can be automated somehow?


This problem arises because easy2boot presents the puppy files on an iso, and isofs is defined to be a readonly filesystem. Effectively Puppy "thinks" it is running from a CD not a USB stick.

Ideas.

1. Extension of Puppy's repertoire to recognise when it is on iso-on-a-flash

This option is serious work for someone who really knows Puppy internals. (Puppy vetinarian?) and would be beyond me to implement

An isofs can be extended by writing another "session" to it (which is how Puppy works on a CDR when you save your work to the same CD). Incidentally, multi-session was invented by Kodak for their photo-CDs so you could burn extra pics to an existing Kodak photoCD.

This would be the best way of doing this, if you know enough about writing iso filesystems: write a into a "second session" iso and append that to the original iso. That is *exactly* what happens when you burn a second session onto the disk, but you'd have to do it using dd rather than a disk burner.

This would need extra functionality built into Puppy, so that it somehow recognises it is running from cd-on-flash mode. Once Puppy isos are released with the new capability the problem goes away

2. Workaround for existing Puppy iso

Extract the iso file to a folder on disk, alter the file isolinux.cfg changing cd to usbflash so the last line now reads
Code:
append initrd=initrd.gz pmedia=usbflash

and then re-create the iso from that folder. This process of extract->replace->rebuild could easily be automated.

WARNING: this modified iso would no longer be suitable for burning to CD unless you changed it back. If you burnt this new file, Puppy would boot but would believe it was running on a flash stick ... goodness knows what issues this would cause. For this reason, I personally don't like this workaround.

3. Use easy2boot as an installation & testing platform.

BarryK has always said the best way to get Puppy on a USB stick is to burn a CD first, then use the CD to install to USB.

This workaround uses two usb sticks, one temporary and one permanent. First, you would get Puppy working under easy2boot, but only use that system for testing and (if happy with the test) installing to the permanent USB stick just as you would from the CD.

I have tested this, it works. And also the second-stage USB boots a lot faster than easy2boot (because it only has to do one thing, not scan for isos, work out what to do with them, and then offer you a lot of other options).

4. Make a "mongrel" easy2boot and permanent system.

Like 3 above, but you install onto the same usb stick that you are using for easy2boot, somewhere outside of the easy2boot directories. Don't let the installer alter the mbr in any way.

Then add an apprpriate grub stanza to menu.lst, so that the first option in the menu is the grub equivalent of the above syslinux line.

Once installed delete the iso.

Then you can use the installed Puppy for serious work, and get the efficiency savings of not working through an extra filesystem all the time. When you want to test a new Puppy, or another flavour of Linux, drop that iso into the \_ISO\Linux\AUTO folder and use the easy2boot intelligence to boot that system. But again: whether it is Puppy or some other Linux, use that platform to test or install, not as a permanent installation.

5. Separate partitions on a USB stick / USB drive

Like 4 above, but on separate partitions on the same USB stick. Though most people think of this only for internal drives, GParted will quite happily partition a usb stick for you.

Note that easy2boot creates a "virtual" primary partition no 4, so you are limited to two primiary partitions, plus an extended partition to hold any further partitions. Make sure GParted numbers these as 1,2,3 so that 4 remains free for easy2boot.

------

Number 3 is my current recommendation, I have done this and it works.

I will be testing number 4 and reporting back eventually, but not soon as I have other stuff that is becoming pressing. It would be great to be able to download onto a usbstick and then boot the new iso with no further ado. This is something I have wanted to do since around the time that Vista was released.

I am not doing any work on 1,2, or 5 at present, just offer then as ideas in case they inspire anyone else to continue / extend the good work.

River~~
Back to top
View user's profile Send_private_message 
rmprep

Joined: 06 Jan 2013
Posts: 9

PostPosted: Fri 08 Feb 2013, 09:10    Post_subject:  

You can boot from ISO but you need to extract the sfs file - so you might as well just extract all three files.

here are both menu entries for precise sku - use whichever one you like and you can change the folder name if you like to match your distro.

Code:
# Extract files to /precise (only vmlinuz, initrd.gz and sfs needed)
# rename PUPPY_PR.SFS to lower case puppy_precise_5.4.3.sfs
title Precise
kernel /precise/vmlinuz pmedia=usbflash psubdir=precise fix=fsck  psavemark=1
initrd /precise/initrd.gz

# Extract sfs to /precise
# rename PUPPY_PR.SFS to lower case puppy_precise_5.4.3.sfs and place in \precise folder
title puppy boot from ISO
map /_ISO/Linux/precise-5.4.3.iso (0xff)
map --hook
root (0xff)
kernel /vmlinuz pmedia=usbflash psavemark=1 fix=fsck  psubdir=precise
initrd /initrd.gz


I am not sure if the fix=fsck is required - seems to work OK without it.

Note: ONLY WORKS ON REAL SYSTEM and NOT in QEMU!

I used a FAT32 USB boot drive and settings were not saved on exit.
They may be saved if you use ext2 format.
Back to top
View user's profile Send_private_message 
Scooby

Joined: 03 Mar 2012
Posts: 341

PostPosted: Fri 08 Feb 2013, 13:33    Post_subject: Re: HOWTO create easy multi-boot USB Puppy from Linux
Sub_title: Adjustments to "second easiest" method (working from non-Puppy Linux)
 

trueriver wrote:
Scooby wrote:
...
[b][u]Alternative 2 - the second easiest way


This did not work for me with the instructions as given (at least if I understood them correctly). I did find a slightly different way to do things.


Thank you for comments

I agree it needs some reworking and I will do it.

I'm sure you can help me test it then.
Back to top
View user's profile Send_private_message 
Display_posts:   Sort by:   
Page 3 of 6 Posts_count   Goto page: Previous 1, 2, 3, 4, 5, 6 Next
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
 Forum index » House Training » HOWTO ( Solutions )
Jump to:  

Rules_post_cannot
Rules_reply_cannot
Rules_edit_cannot
Rules_delete_cannot
Rules_vote_cannot
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.1252s ][ Queries: 13 (0.0038s) ][ GZIP on ]