Are you asking this because of the UUID entry? Hard drive partitions can also be identified by a UUID.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?
HOWTO create easy multi-boot USB Puppy from Linux
Since I wont myself do it this way I cannot test or develop.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.
Of course it is free for anyone else to take this up.
You could try plop too boot from cd first and then USB.kooliepup wrote:My machine does not boot from 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.
Last edited by Scooby on Thu 07 Feb 2013, 17:34, edited 1 time in total.
Martin after re-reading your post a few times I believe you want to install grub4dosgcmartin wrote:
QuestionsThe 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.
- Would it be favorable to make a PET to ONLY delete the files presented by GRUB4DOS versus trashing all information on the drive?
- 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?
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
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)
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)
Last edited by trueriver on Sun 10 Feb 2013, 14:16, edited 2 times in total.
I am just the prophet, the god is steve at rmprepusbtrueriver wrote:Thanks for the work you have done here
You can miss out that step and immediately start using the multi-boot Puppy as your long term Puppy!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?
I dont think you have to worry about that. Its the issue with savefile and the solution withtrueriver 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)?
psavemark but Im working on a solution for that. In the interim there is a solution under
subtitle Save File
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 maketrueriver 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/
~~
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
Last edited by Scooby on Thu 07 Feb 2013, 18:14, edited 1 time in total.
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...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?
...
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~~
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.
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.
Re: HOWTO create easy multi-boot USB Puppy from Linux
Scooby wrote:...
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 (*)
Firstly: a typo: there must not be a space between the - and the F.2. ...Code: Select all
mkdosfs - F 32 -I /dev/sdxx
where sdxx is exchanged for your label
and -I is i and not the L character.
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: Select all
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
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.3. Make USB drive bootable with Grub4Dos.
where y is exchanged for the number of the partion you want to install the bootloader on(most commonly 1Code: Select all
bootlace.com --floppy=y /dev/sdxx
and sdxx is exchanged for your label
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: Select all
bootlace.com /dev/sdx
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
Last edited by trueriver on Fri 08 Feb 2013, 10:42, edited 3 times in total.
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.
Here to help
- find --set-root /TESTRUN/initrd.gz
- root (hd0,1)
- uuid 65a8ce93-769e-425a-b02b-e32494af59ef
Here to help
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.
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.
- Attachments
-
- grub4dos-0.4.4.v1.8.0-1.pet
- (180.42 KiB) Downloaded 515 times
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.Scooby wrote:
...
During boot press F2 key
and then write the following
then savefile will work, This can be somewhat tedious so will see if it can be automated somehow?Code: Select all
puppy psavemark=1
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: Select all
append initrd=initrd.gz pmedia=usbflash
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~~
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.
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.
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: Select all
# 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
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.
Re: HOWTO create easy multi-boot USB Puppy from Linux
trueriver wrote:Scooby wrote:...
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.
I created a script for editing ISO'strueriver wrote: 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 readsand then re-create the iso from that folder. This process of extract->replace->rebuild could easily be automated.Code: Select all
append initrd=initrd.gz pmedia=usbflash
it worked for me and can set whatever boot parameters you like for example
pmedia=cd
I'm thinking of incorporate a way of booting with psavemark boot option passed.
Look at discussion here
rmprep wrote: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.
I am not sure if the fix=fsck is required - seems to work OK without it.Code: Select all
# 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
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.
Code: Select all
title puppy boot from ISO
partnew (hd0,3) 0x00 (hd0,0)/_ISO/Linux/precise-5.4.3.iso
map (hd0,0)/_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
Is there any special reason you don't recommend using it this way?
And Steve I really love your work with Easy2Boot, thank you
HiSteve I know this works as well and needs no extraction of files from ISO.Code: Select all
title puppy boot from ISO partnew (hd0,3) 0x00 (hd0,0)/_ISO/Linux/precise-5.4.3.iso map (hd0,0)/_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
Is there any special reason you don't recommend using it this way?
I can't make that work? It needs to have the sfs file in the \precise folder??? If you just have the iso file it fails to boot???
If you make a file called Precise.mnu and place it in the \_ISO\Linux folder, it will be listed in the first menu in Easy2Boot.
OK
This works on a fresh, clean USB drive
you must omit the subdir=precise parameter.
I have added the .mnu file to the Easy2Boot Tutorial on my site.
This works on a fresh, clean USB drive
Code: Select all
title puppy boot from ISO
partnew (hd0,3) 0x00 (hd0,0)/_ISO/Linux/precise-5.4.3.iso
map (hd0,0)/_ISO/Linux/precise-5.4.3.iso (0xff)
map --hook
root (0xff)
kernel /vmlinuz pmedia=usbflash psavemark=1 fix=fsck
initrd /initrd.gz
I have added the .mnu file to the Easy2Boot Tutorial on my site.