Jump to content











Photo

Booting into .sfs image from 64Bit windows

windows 8 windows 64bit windows erver 2012 server 2012

  • Please log in to reply
19 replies to this topic

#1 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 06 April 2013 - 07:54 PM

Hi All, :victory:

 

I have been using Grub4Dos to boot into a puppy Linux image file using .sfs format (this of course works on all our 32bit windows computers).

 

The issue is now that I am being asked to get it to work on 64Bit Windows OS's; Server 2012 and Windows 8 and Server 2008 R2 etc.

 

Grub4Dos doesn't work on these OS' right? There is the Grub bootlacer but that is out of the question it does not fit our needs.

So does anyone know of anyway of booting into .sfs image from the above 64bit Windows flavours?

Either natively or using a tool like I did with Grub4dos?

 

It simply needs to provide a boot menu and then allow booting into the .sfs image which must be loaded into memory...

 

 

Any help advice...pointing in the right direction is greatly appreciated.

 

Thanks all!

 

Indigo.



#2 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 07 April 2013 - 09:36 AM

With all due respect :) you seem like having "mixed info".

 

grub4dos does not run under ANY Operating System, it is itself a (very simple) Operating System.

 

Maybe you are confusing "64 bit" with EFI/UEFI?

 

grub4dos runs OK on BIOS machines (no matter if x86 or 64 bit).

 

How EXACTLY are you runnning it now?

 

WHAT is the "grub bootlacer"? :w00t:

 

There is bootlace.com which is an installer for grub4dos.

 

If you are ALREADY booted into an OS you cannot normally "boot into another" (and this is particularly true of any NT based MS OS), you may load the second (terminating the first).

This is what grub4dos normally does, it boots and then chainloads an OS.

This can be done in real mode OS, as an example, still related when from DOS you run grub.exe you are effectively booting another OS (grub4dos).

Under Linux you can use Kexec to the same (or almost the same) effect.

There is an experimental, if I recall correctly never properly tested/finalized Winkexec tool, but I doubt that it can be of any use.

 

:cheers:

Wonko



#3 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 08 April 2013 - 04:03 PM

Thanks for your reply Wonko.

 

I see what you mean.

Basically I have 32bit BIOS based windows computers with GRLDR as a boot option...in boot.ini and bcdedit so grub is a boot option.

Grub then is chain loaded to boot into a .sfs puppy linux image file that is on the computers C drive.

but that will be changing soon to alos have EFI-EUFI 64bit machines.

 

So does anyone know of a tool that does a similar job as Grub4dos but that will run on EFI/UEFI.

A solution that works with 64Bit and UEFI/EFI? I can then add that into our existing package

 

Thanks again



#4 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 April 2013 - 08:04 PM

Maybe :unsure: see here:

http://reboot.pro/to...t-usb-harddisk/

 

:cheers:

Wonko


  • Brito likes this

#5 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 08 April 2013 - 08:19 PM

ok sooo close now.

That's a good link wonko!

 

I need to be able to have the solution all one internal primary HD (primary OS HD), the way I read that post was that it needs external media i.e. USB.

 

I need to be able to install a boot loader via windows that will allow me to chainload into 'image.sfs' when the pc is restarted. the same way Grub4Dos does....

 

Anyone?



#6 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 09 April 2013 - 08:46 AM

Well, from the very little I understand of this EFI/UEFI nonsense, right now you have only one option, which is GRUB2.

 

What everyone is waiting for (or at least I am ;)) is a EFI/UEFI application that simulates BIOS calls/interrface (and that will consequently allow to run  grub4dos and most other loaders with no or little changes), but I am not holding my breath at the moment.

 

There is/was a VERY promising project, from one of the Authors of grub4dos and contributor to GRUB2, bean123 :worship:, that is however in a "stale" situation seemingly:

http://code.google.com/p/burg/

I have NO idea at what level of "compatibility" with grub4dos and GRUB" it is at the moment. :unsure:

 

 

:cheers:

Wonko


  • Brito likes this

#7 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 09 April 2013 - 02:30 PM

that will be changing soon to alos have EFI-EUFI 64bit machines.

Do you use preinstalled Windows 8 machines? Does machines use secure boot?

Do you build machines yourself and install Windows yourself?
 
 
chainload into 'image.sfs'

You can't chainload to a image.sfs file. image.sfs may be a part of a distribution, like puppy Linux.
Which version do you use, which menu.lst entry do you use do far?

#8 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 09 April 2013 - 06:26 PM

Hi Cdob,

 

Thanks for your message, I already chainload from Grub into .sfs image that is held on the Windows partition (root of C drive).

That's working fine.It loads entirely into memory and is great.

 

I simply want a tool like Grub4dos that allows the same on EFI machines.

 

The systems are built by others sometime me. They are win vista/7/8/2012.

All other systems are fine with my existing method described in my first paragraph...

 

Wonko - I am currently looking at the tools you suggest thanks! The BURG looks particularly good I have emailed them a question and will post the answer here for your information too.

Grub2 also looks like it may work but need to test and read more.

 

Anything else anyone can provide is gratefully received!

 

Thanks again,



#9 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 09 April 2013 - 06:30 PM

Do you use preinstalled Windows 8 machines? Does machines use secure boot?

Do you build machines yourself and install Windows yourself?
 
 
You can't chainload to a image.sfs file. image.sfs may be a part of a distribution, like puppy Linux.
Which version do you use, which menu.lst entry do you use do far?

 

Also, sorry missed this bit - NO, there is no secure booting.



#10 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 09 April 2013 - 09:58 PM

I already chainload from Grub into .sfs image that is held on the Windows partition (root of C drive).
That's working fine.It loads entirely into memory
Technically I doubt chainloading a .sfs file still.
Don't you load a kernel file and a initrd archive?
Post the relating menu.lst entry you are currently using.

Do you use this distribution? Which one do you use?
http://puppylinux.org/main/Download Latest Release.htm
I simply want a tool like Grub4dos that allows the same on EFI machines.
As indicated already use grub2.
One prebuild example http://www.nic.funet...fc18.x86_64.rpm
  • Brito likes this

#11 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 12 April 2013 - 03:42 PM

How do you like to select boot option?

Does user select option at each boot?

Does user press a hot key and select OS?
Does used hardware offers a hot key to select a boot device?


Apply a Windows Image to UEFI-based Computers
http://technet.micro...1(v=ws.10).aspx
Bcdedit.exe creates an EFI non-volatile random access memory (NVRAM) entry for the Windows Boot Manager.

rEFInd Boot Manager is one solution.
http://www.rodsbooks...find/index.html

Installing rEFInd Manually Using Windows
http://www.rodsbooks...ng.html#windows
Type bcdedit /set {bootmgr} path \EFI\refind\refind_x64.efi to set rEFInd as the default EFI boot program.
 
 

To add grub 2 to a windows:

One approach, replace the Windows boot entry.
Run 7-zip and dxpand the mentioned prebuilded example.
Run
mountvol.exe S: /S 
xcopy.exe /s F:\grub2-efi-2.00-15.fc18.x86_64\boot\efi\EFI\fedora S:\EFI\fedora\
xcopy.exe F:\grub2-efi-2.00-15.fc18.x86_64\usr\lib\grub\x86_64-efi S:\EFI\fedora\x86_64-efi\
bcdedit.exe /set {bootmgr} path \EFI\fedora\grubx64.efi

notepad.exe S:\EFI\fedora\grub.cfg
.
#grub.cfg
#
set default="0"
set timeout=10
set pager=1
set lang=en
set locale_dir=$prefix/locale

menuentry "$bootmode: Windows" {
  chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
 


Next approach: add grub2 to UEFI firmware NVRAM.
Press the motherboard relating hotkey at boot and select a boot option.

Restore the default bootmgr
bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi

add_grub2NVRAM.cmd
@ECHO OFF
Rem Add grub 2 to BCD file and UEFI firmware NVRAM
Rem created by cdob

rem set BCD_store=/store bcd
set BCD_store=

for /f "tokens=1-3 delims={}" %%a in ('BCDedit.exe %BCD_store% /copy {bootmgr} /d "Grub2"') do set guid={%%b}
BCDedit.exe %BCD_store% /set %guid% path \EFI\fedora\grubx64.efi

BCDedit.exe %BCD_store% /enum firmware
 

In addition: Remove Duplicate Firmware Objects in BCD and NVRAM
http://technet.micro...0(v=ws.10).aspx
  • Brito likes this

#12 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 14 April 2013 - 08:02 PM

Cdob! What a great reply thank you.

Your questions answered as follows:

 

How do you like to select boot option?  - At POST/power on.

Does user select option at each boot? - Yes,  a boot menu for users to see, but needs to default to the .sfs image

Does user press a hot key and select OS? - NO, Hardware varies, too hard to say, thousands of models as users select their own equipment. It needs to default select anyway so this doesn't matter.
Does user hardware offers a hot key to select a boot device? NO

 

 

Your information is excellent, there is allot to read there, thanks you again.

I will read thoroughly and then post again shortly....



#13 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 14 April 2013 - 09:18 PM

hmm so if I use rEFInd, It is only a boot manager...so I would use

 

rEFInd --> GRLDR --> Puppy.sfs   (for example)

 

So boot manager loads GRLDR then GRLDR open Puppy image into memory.

 

Right?

 

If so sounds good but at times rEFInd looks very complicated...unless im being silly

 

Something else occurred to me, perhaps I can do what bootlace.com does...but do it all locally instead of in the 'cloud'...?

 

What do you think?



#14 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 April 2013 - 10:00 AM

hmm so if I use rEFInd, It is only a boot manager...so I would use

 

rEFInd --> GRLDR --> Puppy.sfs   (for example)

 

So boot manager loads GRLDR then GRLDR open Puppy image into memory.

 

Right?

 

If so sounds good but at times rEFInd looks very complicated...unless im being silly

 

Something else occurred to me, perhaps I can do what bootlace.com does...but do it all locally instead of in the 'cloud'...?

 

What do you think?

No, NO, NO!

 

You may have read everything but you evidently failed to grasp the base concepts :ph34r:.

 

Let's see if some yelling helps :unsure:.

 

FORGET the site http://apps.farterso...dbootlacer/main

 

That represents a quick workaround for a limitation of the 64 bit environment.

 

Bootlace.com is a command line program part of the grub4dos package, it should be used locally (through a VM if needed).

 

Grub4dos has NO support for EFI/UEFI it needs BIOS!

 

You CANNOT run grub4dos on EFI/UEFI!

 

grub4dos is an evolution of GRUB (the "real" thing, that is now referred as GRUB legacy), GRUB 2 (which is senselessly called GRUB now :frusty:) is a largely different thing:

  • GRUB (legacy) is NOT grub4dos and NOT GRUB2 and supports only BIOS
  • grub4dos is an evolution of GRUB (legacy) and NOT GRUB2 and supports only BIOS
  • GRUB (GRUB2) is a NEW thing, VERY different from both the above and supports both BIOS and EFI/UEFI

As you were asked (TWICE, one by me and one by cdob), post your CURRENT menu.lst setting, the EXACT way you currently boot that .sfs with gruib4dos, that EXACT entry needs to be *somehow* translated to GRUB (GRUB2) syntax.

 

Post the COMPLETE menu.lst that you are using currently, describe EXACTLY what you are doing now and what you wish to do on newer machines.

 

:cheers:

Wonko



#15 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 19 April 2013 - 10:47 AM

To delete a UEFI NVRAM entry:
BCDedit.exe /enum firmware
BCDedit.exe /delete {827d0b78-a2c4-11e2-a4ca-002538dcde93} /cleanup /f
{GUID} is a example. Adjust to enum output.

Puppy seems to fail at UEFI mode.
http://www.murga-lin...1940052&t=81460
Attempted to boot slacko puppy in virtualbox UEFI, video not working.

slacko-5.5-4G.iso: video fails at VMware EFI too.

#16 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 21 April 2013 - 06:56 PM

Hi All,

 

Here is the menu.lst file

 

# This is a sample menu.lst file for SystemRescueCd
title    X
root     (hd0,1)
kernel   /sysrcd/vmlinuz pfix=ram,nox pkeys=us loglevel=1
initrd   /sysrcd/initrd.gz

title    X
root     (hd0,0)
kernel   /sysrcd/vmlinuz pfix=ram,nox pkeys=us loglevel=1
initrd   /sysrcd/initrd.gz

title    X
root     (hd0,2)
kernel   /sysrcd/vmlinuz pfix=ram,nox pkeys=us loglevel=1
initrd   /sysrcd/initrd.gz

 

What I am currently doing is using GRLDr set in the boot.ini of each machine like this:

 

[boot loader]
timeout=10
default=C:\grldr
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\grldr="X"

 

Or if they are using a machine that makes use of BCEDIT it will appear like this:

 

Real-mode Boot Sector
---------------------
identifier              {default}
device                  partition=C:
path                    \grldr.mbr
description             X

 

 

The above makes GRLDR the default option for booting.

This boots into OS selector menu and by default selects Grub4Dos, tGrub4Dos then loads puppy.sfs , referred to as 'X'.

I believe you refer to this as 'chain loading'.

 

We want to-do the same but on EUFI/EFiIsystems...

 

Thanks again for putting up with my ignorance :)



#17 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 22 April 2013 - 08:07 AM

I see no .sfs anywhere.

 

Of course anything based on NTLDR/BOOT.INI becomes m00t when you use EFI/UEFI machines.

 

This:

 

 

title X
root (hd0,1)
kernel /sysrcd/vmlinuz pfix=ram,nox pkeys=us loglevel=1
initrd /sysrcd/initrd.gz

which surely is NOT what you actually use (let me doubt that you have a set of three menu entries ALL with title "x"), translates in GRUB2 to:

http://www.dedoimedo...ers/grub-2.html

 

 

 

menuentry "x" {

echo "Starting x..."
set root=(hd0,2)
linux /sysrcd/vmlinuz pfix=ram,nox pkeys=us loglevel=1 doscsi nomodeset
initrd /sysrcd/initrd.gz

}

 

See the mentioned links on possible ways to start GRUB2 and adding to it an entry for BOOTMGR or viceversa.

 

:cheers:

Wonko

 

 



#18 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 22 April 2013 - 05:38 PM

to boot into a puppy Linux
This is a sample menu.lst file for SystemRescueCd

kernel /sysrcd/

I'm confused. Which distribution do you like to boot?
Name a exact version and download link.
 
kernel /sysrcd/vmlinuz pfix=ram,nox pkeys=us loglevel=1
initrd /sysrcd/initrd.gz
...
This boots into OS selector menu and by default selects Grub4Dos, tGrub4Dos then loads puppy.sfs , referred to as 'X'.
No, grub4dos loads files /sysrcd/vmlinuz and /sysrcd/initrd.gz to RAM.
The file puppy.sfs is not used at boot loading level.
After that loaded /sysrcd/vmlinuz is launched. This one searches puppy.sfs.

puppy.sfs is NOT chainloaded.


The example reminds to http://puppylinux.or.../BootParameters

Do you require puppy Linux?
As indicated already there seems to be a graphics issue at UEFI boot.
Can you use another distribution?

#19 indigo5

indigo5

    Member

  • Members
  • 30 posts
  • Location:uk
  •  
    United Kingdom

Posted 25 April 2013 - 08:31 PM

Your right,

 

Ive looked at this again, had to reverse engineer it.

Initrd.gz references the puppy image, because it uses the sysrcd components the image has to be called lupu_528.sfs

BUT that is really puppy that has been renamed.

 

But that doesnt matter, its the same in principle but with different names...

 

 

I'm confused. Which distribution do you like to boot?
Name a exact version and download link.
 No, grub4dos loads files /sysrcd/vmlinuz and /sysrcd/initrd.gz to RAM.
The file puppy.sfs is not used at boot loading level.
After that loaded /sysrcd/vmlinuz is launched. This one searches puppy.sfs.

puppy.sfs is NOT chainloaded.


The example reminds to http://puppylinux.or.../BootParameters

Do you require puppy Linux?
As indicated already there seems to be a graphics issue at UEFI boot.
Can you use another distribution?

 

In regards to your last question, no we dont have to use Puppy...

Just as long as its a small distro...like less than 100MB.

 

You sound like you have an idea?



#20 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 28 April 2013 - 09:50 PM

In regards to your last question, no we dont have to use Puppy...
Just as long as its a small distro...like less than 100MB.
I don't know a 100MB UEFI capable distribution.

Previous mentioned SystemRescueCd does work at UEFI
http://www.sysresccd...scueCd_Homepage
menuentry "SystemRescueCd" {
  insmod loopback
  set isofile="/sysrcd/systemrescuecd-x86-3.5.0.iso"
  search.file $isofile isopart
  echo isopart $isopart
  loopback loop ($isopart)/$isofile
  echo ls (loop)/isolinux/
  ls (loop)/isolinux/
  linux  (loop)/isolinux/rescue64 setkmap=us docache dostartx isoloop=$isofile
  initrd (loop)/isolinux/initram.igz
}






Also tagged with one or more of these keywords: windows 8, windows 64bit, windows erver 2012, server 2012

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users