How can I boot an iso with grub4dos?

Using applications, configuring, problems
Message
Author
oui

#21 Post by oui »

Hi Wolfgang

You open 4 or 5 discussions about only 1 (ONE) subject

We answer 20 minutes in YOUR OWN language

and you see nothing because you have to much discussions open!

http://murga-linux.com/puppy/viewtopic. ... 281#682281

http://murga-linux.com/puppy/viewtopic. ... 285#682285

what will you really?

grub4dos

or

grub2?

oui

#22 Post by oui »

How is able to check this page:

http://puppylinux.org/wikka/GRUBforDOS

Pls announce here after that that the page is complete and if necessary updated. I will try to make a translation of it for Wolgang.

Scooby
Posts: 599
Joined: Sat 03 Mar 2012, 09:04

#23 Post by Scooby »

The principle of this solution is the same as I present in

HOWTO create easy multi-boot USB Puppy from Linux
HOWTO create easy multi-boot USB Puppy from Windows


Observe! This solution requires, as stated in links above, the ISO file to be unfragmented on disk. If you downloaded rmprepusb you got wincontig also.
Go to /Program Files/RMPrepUSB/WINCONTIG and click on wincontig.exe. Then add folder /ISOS and execute a defragment action.
If I remember correctly this can be done with Shift+F2 when RMPrepUSB is started.

I tested around a little. Note I have my Grub4Dos bootrecord on USB and not on HD.

But I placed my ArchPup Puppy Linux in a folder on internal drive and put the following
in menu.lst

Code: Select all

iftitle [if exist (hd1,0)/Linux/archpup-12.12.2.iso] archpup-12.12.2.iso
partnew (hd1,3) 0x00 (hd1,0)/Linux/archpup-12.12.2.iso 
map  (hd1,0)/Linux/archpup-12.12.2.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
It loads! :twisted:

Note for me hd0 is my usb and hd1 is my internal drive so if you want to test this
you should try.

Code: Select all

iftitle [if exist (hd0,0)/ISOS/LazYPuppy-202-DE-005.iso] PhyTechL-202-005 iso 
partnew (hd0,3) 0x00 (hd0,0)/ISOS/LazYPuppy-202-DE-005.iso 
map  (hd0,0)/ISOS/LazYPuppy-202-DE-005.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
To be complete a test should be made to check if partition 4 already is in use,

For me it works. Would you try it and report back?

can't see why it wouldnt work with bootrecord on HD?

postfs1

#24 Post by postfs1 »

To reedit up to date.
Last edited by postfs1 on Thu 24 Mar 2016, 11:09, edited 4 times in total.

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#25 Post by rcrsn51 »

Scooby wrote:

Code: Select all

title PhyTechL-202-005 iso 
partnew (hd0,3) 0x00 (hd0,0)/ISOS/LazYPuppy-202-DE-005.iso 
map  (hd0,0)/ISOS/LazYPuppy-202-DE-005.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
I tried this on a flash drive with several Puppies and it worked. But some of them could not find their save file, no matter what options I picked. I believe that another user reported this problem.

[Edit] I finally got this to work correctly by using "puppy psavemark=1".

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#26 Post by rcrsn51 »

As a test, I set up the following system:

sda1 - NTFS Windows
sda2 - FAT32
sda4 - unused - THIS IS IMPORTANT!

The system booted off Grub4Dos in sda1.

Partition sda2 contained a number of Puppy ISOs.

The menu.lst entries for Puppy were

Code: Select all

title Precise 372 ISO
partnew (hd0,3) 0x00 (hd0,1)/precise-372.iso
map  (hd0,1)/precise-372.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)

title Slacko 54 ISO
partnew (hd0,3) 0x00 (hd0,1)/slacko-54.iso
map  (hd0,1)/slacko-54.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)

title Lupu 528 ISO
partnew (hd0,3) 0x00 (hd0,1)/lupu-528.iso
map  (hd0,1)/lupu-528.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
Savefiles were created in sda2. Each Puppy was booted with

Code: Select all

puppy psavemark=2
In limited testing, this all worked correctly.

The same procedure successfully booted an Ubuntu 10.10 ISO. TInyCore worked, but required

Code: Select all

map --heads=0 --sectors-per-track=0 (hd0,1)/tinycore.iso (0xff)
Here is a better way to do it with Puppy.

Code: Select all

title Lupu 528 ISO
partnew (hd0,3) 0x00 (hd0,1)/lupu-528.iso
map  (hd0,1)/lupu-528.iso (0xff)
map --hook
root (0xff)
kernel /vmlinuz psavemark=2
initrd /initrd.gz
When booting off a flash drive, some Puppies may also need the "pmedia=usbflash" kernel argument.

Note: The FAT32 partition holding the ISOs does not need to be a primary partition. It can also be a logical volume.
Just replace all references to (hd0,1) with (hd0,x).

------------------------------------
Last edited by rcrsn51 on Wed 06 Feb 2013, 15:33, edited 11 times in total.

Les Kerf
Posts: 317
Joined: Sun 24 Jun 2012, 13:30

#27 Post by Les Kerf »

Scooby wrote:I used this on USB, maybe you could try something like that on HD?
Never tried it on HD though

Code: Select all

iftitle [if exist /Linux/lupu-528.iso] Puppy Linux 5.2.8
find --set-root /Linux/lupu-528.iso
map --heads=0 --sectors-per-track=0 /Linux/lupu-528.iso (0xff)
map --hook
root (0xff)
kernel /vmlinuz splash
initrd /initrd.gz
I tried the Easy2Boot Grub4Dos method with a hard drive and it worked for me. I mentioned it in the other Easy2Boot thread.
Les

postfs1

#28 Post by postfs1 »

image of programmatic environment:
[-1-]disk -=3d/2ss/A12s=- = file.disk
http://45.33.15.200/
viewtopic.php?p=484853&sid=16001911920e75711ba120d5a1b6f750#484853

mini_device_usb:
sda:
2 partitions:
sda1(vfat)
sda2(ext2)

Scheme:
The user does the steps:
[-a-]formatting of sda1
[-b-]launch of disk -=file.disk=- from some device
[-c-]installation from the '/usr/sbin/grub4dosconfig' to mini_device_usb
[-d-]moving the -=file.disk=- onto mini_device_usb
[-e-]editing of text in the 'menu.lst' file
[-f-]launch of computer with such a bios parameter as: '[x]use drive usb/[x]use disk usb/[x]another words, same meaning'

Result after use of the -=file.disk=- image: 1 new partition: sda3

Code: Select all

#v.v#GOOD#v.v#Success: cat /proc/cmdline<>>> video=640x480 kernel=vmlinuz initrd=initrd.gz pfix=ram,nox,copy pmedia=usbflash acpi=force acpi_use_timer_override
title FIRST_TO_TEST-DISK3d:2ss:A12s -- deviceTABLE:AUTO.file:bootstarter.PLUSonecommandtoinstall
partnew (hd0,2) 0x00 /too/qrky-140.iso
#!#to_drive............................................from_drive(auto=0x00(help partnew))
#!#GIVES INFO:#!#fdisk -button /dev/sda; fsck.vfat -button -button -button -button /dev/sda1;
map --heads=128 --sectors-per-track=62 /too/qrky-140.iso (0x00)
map --hook
rootnoverify (0x00)
kernel /vmlinuz kernel=vmlinuz initrd=initrd.gz pfix=ram,nox,copy pmedia=usbflash acpi=force acpi_use_timer_override
initrd /initrd.gz
#0x00 = 0

#v.v#GOOD#v.v#Success: cat /proc/cmdline<>>> video=640x480 kernel=vmlinuz initrd=initrd.gz pfix=ram,nox,copy pmedia=usbflash acpi=off
title FIRST_TO_TEST-DISK3d:2ss:A12s -- deviceTABLE:AUTO.file:bootstarter.
partnew (hd0,2) 0x00 /too/qrky-140.iso
#!#to_drive............................................from_drive(auto=0x00(help partnew))
#!#fdisk -l /dev/sda
map --heads=128 --sectors-per-track=62 /too/qrky-140.iso (0x00)
map --hook
rootnoverify (0x00)
kernel /vmlinuz kernel=vmlinuz initrd=initrd.gz pfix=ram,nox,copy pmedia=usbflash acpi=off
initrd /initrd.gz
#0x00 = 0

#v.v#GOOD#v.v#Success: cat /proc/cmdline<>>> video=640x480 BOOT_IMAGE=/vmlinuz initrd=initrd.gz pfix=ram,nox,copy pmedia=usbflash acpi=off
#!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!##!#After boot the gparted sees well the /dev/sda
title FIRST_FIRST_TO_TEST-DISK3d:2ss:A12s -- deviceTABLE240.notmountwhat
partnew (hd0,2) 0x00 /too/qrky-140.iso
#!#to_drive............................................from_drive(auto=0x00(help partnew))
#!#AT BOOT TO WRITE THE FOLLOWING buttons: /vmlinuz initrd=initrd.gz pfix=ram,nox,copy pmedia=usbflash acpi=off
map /too/qrky-140.iso (0xF0)
map --hook
rootnoverify (0xF0)
chainloader (0xF0)
#0x00 = 0
#0xF0 = 240
Last edited by postfs1 on Sun 27 Mar 2016, 17:05, edited 12 times in total.

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#29 Post by rcrsn51 »

postfs1 wrote:partnew (hd0,2) 0x00 (hd0,0)/images/PuppyQuirkyLinux-1_40.iso
.....
partnew (hd0,3) 0x00 (hd0,0)/images/fdbasews.iso
You can use (hd0,3) for both of these. The partition gets re-used each time.

postfs1

#30 Post by postfs1 »

To reedit up to date.
Last edited by postfs1 on Thu 24 Mar 2016, 11:10, edited 2 times in total.

Scooby
Posts: 599
Joined: Sat 03 Mar 2012, 09:04

#31 Post by Scooby »

How did it go for der-schutzhund( what does it mean anyway? shit-dog?)
rcrsn51 wrote: The system booted off Grub4Dos in sda1.

Partition sda2 contained a number of Puppy ISOs.

The menu.lst entries for Puppy were
And if you are a Lazy-dog like me you use the Easy2boot automatic version.
No editing of menu.lst file. Just copy an ISO file to a specific folder and it will show up on next boot.

try Easy2Boot by steve at

rmprepusb.com

or

HOWTO create easy multi-boot USB Puppy from Linux
HOWTO create easy multi-boot USB Puppy from Windows

Does this work well?

Code: Select all

kernel /vmlinuz psavemark=2 
maybe I try to incorporate it somehow in Easy2Boot automatic version?

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#32 Post by rcrsn51 »

@Scooby:

Thank you for providing the key line to make ISO booting work.

Code: Select all

partnew (hd0,3) 0x00 (hd0,1)/precise-372.iso

Does Easy2Boot always start by chainloading?

Code: Select all

chainloader (0xff)
The advantage of a manual approach is that you get to customize the kernel arguments.

Code: Select all

kernel /vmlinuz pmedia=usbflash psavemark=2
initrd /initrd.gz

Scooby
Posts: 599
Joined: Sat 03 Mar 2012, 09:04

#33 Post by Scooby »

rcrsn51 wrote:@Scooby:
Thank you for providing the key line to make ISO booting work.
you're welcome
rcrsn51 wrote: Does Easy2Boot always start by chainloading?

Code: Select all

chainloader (0xff)
The advantage of a manual approach is that you get to customize the kernel arguments.

Code: Select all

kernel /vmlinuz pmedia=usbflash psavemark=2
initrd /initrd.gz

Yes it does but it can be altered.

What is the difference?

What will happen with config file onboard iso? Will it be ignored?

What will happen with other ISO's I mean like Ubuntu or Mint Linux live cd's.
will they start this way too?

if that is a problem I guess you could have a folder "puppy" from which
puppy linux isos boots automatically with pmedia=usbflash psavemark=2

Or it could be a menu item to somehow acttivate/deactivate and set psavemark to desired number.

For an Experienced user like you it is of course easier to just edit menu.lst but I want to
make a solution that is very easy for novice users maybe windows ones that are not
used to editing config files

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#34 Post by rcrsn51 »

Scooby wrote:
rcrsn51 wrote:Does Easy2Boot always start by chainloading?
Yes it does but it can be altered.What is the difference?
It's the difference between booting off a Puppy Live CD versus doing a hard drive install. In the first case, you always have to go through the splash screen with its five-second pause.
What will happen with config file onboard iso? Will it be ignored?
Yes.

How do you envision Easy2Boot? As a way to test out Linux distros without having to burn a CD? Or as a way to run them on a day-to-day basis without having to do any kind of install? My manual instructions above show how to set up the latter. But you may not want to incorporate them into Easy2Boot. They were just a "proof of concept".

What will happen with other ISO's I mean like Ubuntu or Mint Linux live cd's. will they start this way too?
The most reliable way to boot a Linux ISO will be through chainloading because it simulates using the physical CD.

if that is a problem I guess you could have a folder "puppy" from which puppy linux isos boots automatically with pmedia=usbflash psavemark=2
There isn't a problem. Lots of people routinely boot Puppy off the CD and type in any extra options.

BTW, on a USB drive, it's probably going to be "psavemark=1"
Or it could be a menu item to somehow acttivate/deactivate and set psavemark to desired number.
When I was testing this, I found that trying to keep save files in the same partition as the ISOs made it more likely to create a "non-contiguousness" problem.

Scooby
Posts: 599
Joined: Sat 03 Mar 2012, 09:04

#35 Post by Scooby »

rcrsn51 wrote: How do you envision Easy2Boot? As a way to test out Linux distros without having to burn a CD? Or as a way to run them on a day-to-day basis without having to do any kind of install? My manual instructions above show how to set up the latter. But you may not want to incorporate them into Easy2Boot. They were just a "proof of concept".
I already use Easy2boot on a day to day basis(and have done so for quite some time now) with archpup which work without psavemark.
I like to be able to quickly test new Linuxes and work in another puppy also.

With help from steve who created Easy2boot I conjured up a way to boot one Linux iso by default after 5 seconds.
Before countdown is finished you can choose another Linux iso.
Thats how I prefer it since 90% of the time I work with archpup

For my version of Easy2Boot I will only do USB support.
I will not install to internal drive so I cannot test or develop.

I want it very novice user friendly. Easy to set up on both puppy and windows.
rcrsn51 wrote: The most reliable way to boot a Linux ISO will be through chainloading because it simulates using the physical CD.
So I will give the user the option to choose then!
rcrsn51 wrote:There isn't a problem. Lots of people routinely boot Puppy off the CD and type in any extra options.
OK, me myself wouldnt be happy with this. I would want it automated
rcrsn51 wrote: BTW, on a USB drive, it's probably going to be "psavemark=1" savefile resides
yeah, I know about psavemark and how it works, I've used it plenty.
So perhaps a folder called puppy for puppy linux ISO's with psavemark=1 and another folder for chainloading?

I will test around with ither menu options or folder approach
rcrsn51 wrote: When I was testing this, I found that trying to keep save files in the same partition as the ISOs made it more likely to create a "non-contiguousness" problem.
So defrag em!?

Scooby
Posts: 599
Joined: Sat 03 Mar 2012, 09:04

#36 Post by Scooby »

rcrsn51 wrote:

Code: Select all

title Lupu 528 ISO
partnew (hd0,3) 0x00 (hd0,0)/lupu-528.iso
map  (hd0,0)/lupu-528.iso (0xff)
map --hook
root (0xff)
kernel /vmlinuz psavemark=2
initrd /initrd.gz
I just wanted to add that if you put this in a .mnu file and together with lupu-528.iso
put the two files in folder _ISO/Linux on a USB stick set up with Easy2Boot
it would show up on menu and be bootable.

the two files needed
_ISO/Linux/lupu-528.iso
_ISO/Linux/lupu-528.mnu


I forgot since I dont use it so much myself but steve already implemented a scalable way of adding menu.lst items.

This way the .mnu files can be made by an "Expert" and just copied by a "Novice" to a folder to work.
Steve offers some .mnu files on his site Easy2Boot at the bottom.

Observe the lupu-528.mnu at Easy2Boot is a version were you have to extract main sfs and not the same as above

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#37 Post by sunburnt »

Each type of boot device ( HD, CD, USB ) requires different boot parameters. Put this inside the ISO file.

So make Easy2Boot look inside the selected ISO file for the .mnu file that`s for the device that`s booting.

Using an ISO file as a "universal" O.S. container is a great idea. The idea just needs to be completed.

This not only simplifies booting, but also unifies it into a "one method does all".

User avatar
rcrsn51
Posts: 13096
Joined: Tue 05 Sep 2006, 13:50
Location: Stratford, Ontario

#38 Post by rcrsn51 »

sunburnt wrote:Each type of boot device ( HD, CD, USB ) requires different boot parameters. Put this inside the ISO file.
????

So if I wanted to try out Ubuntu, I would have to download its ISO, then remaster it?

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#39 Post by sunburnt »

You misunderstand, did you master it originally? No... Of course not.

But those that you do could be self-contained without the need of external files specific to it.
The menu.lst and other such generic boot files must be on a partition.

Scooby
Posts: 599
Joined: Sat 03 Mar 2012, 09:04

#40 Post by Scooby »

sunburnt wrote:Each type of boot device ( HD, CD, USB ) requires different boot parameters. Put this inside the ISO file.

So make Easy2Boot look inside the selected ISO file for the .mnu file that`s for the device that`s booting.

Using an ISO file as a "universal" O.S. container is a great idea. The idea just needs to be completed.

This not only simplifies booting, but also unifies it into a "one method does all".
I created a script for editing ISO's configfiles

it worked for me and can set whatever boot parameters you like for example
pmedia=cd

There is no sense to put the .mnu file in ISO since there is already a config file for boot
in Puppy ISO's. For most puppies its isolinux.cfg.

However Easy2Boot/Grub4dos can override this config file should you not want to edit the ISO.

Code: Select all

title Lupu 528 ISO
partnew (hd0,3) 0x00 (hd0,0)/lupu-528.iso
map  (hd0,0)/lupu-528.iso (0xff)
map --hook
root (0xff)
kernel /vmlinuz psavemark=2
initrd /initrd.gz

the line

Code: Select all

kernel /vmlinuz psavemark=2 
can be changed to whatever you want in the .mnu file to suit your needs.

for example

Code: Select all

kernel /vmlinuz pmedia=cd psavemark=1 fix=fsck  psubdir=precise 
In Easy2Boot the AUTO feature will serve general needs and the .mnu file is a way of customize and specialize booting,

Post Reply