All of lore.kernel.org
 help / color / mirror / Atom feed
* Windows,grub and grub2
@ 2008-08-29 20:29 Viswesh S
  2008-08-30  4:30 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-08-29 20:29 UTC (permalink / raw)
  To: grub-devel

[-- Attachment #1: Type: text/plain, Size: 2015 bytes --]

Hi,

I am back with my Windows boot up question using grub and grub2.Sorry for making the question a bit long.

Some experiments and results which I did.

Scenario: One hard disk,different partitions.

Case 1: 

Partition 1 -> Windows Server 2003
Partition 2 -> Swap
Partition 3 -> Linux

Boot loader : Grub2.

Windows boots up successfully from grub2 using chainloading (hd0,1) +1

Case 2:

Installed server 2008 in the free space in between Server 2003 and swap.

Partition 1 : Windows server 2003
Partition 2: Windows server 2008
Partition 3 :Swap
Partition 4:Linux

Grub2 doesnt boot up windows with the command chainloader (hd0,1) +1, with error 

A disk read error occurred 
Ctrl+Alt +del to restart.

But Grub legacy boots up with no issues , with the same command, prefixed with rootnoverify hd0

Case 3:

Partition 1 :Boot
Partition 2:Windows
Partition 3: Linux

Same behaviour : Grub2 doesnt boot Windows with chainloader command (hd0,2) +1

Same error as before.

Not surprisingly grub boots with the same command.

I had a look at the boot sector code of Windows, which gets copied, by dumping the partition using dd.

For me, it looked the same.

Also another hunch is that,as the error ( A disk read error occurred ),, happened in Windows boot sector, find the areas in boot sector code of Windows where it calls this error and goes into an infinite loop.

So in the different cases, I could see that it is something to do with the INT 13 call, with functions 41 and 42.

Can anyone let me know the differences here, with respect to grub2 and grub.

Also,on more thing is the way chainloader command is written in grub and grub2.I was finding it difficult to decode the assembly parts in both and find out the differences.

Can anyone pour some advice and directions on these.

Thanks in advance,

Viswesh


      Unlimited freedom, unlimited storage. Get it now, on http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html/

[-- Attachment #2: Type: text/html, Size: 3149 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-08-29 20:29 Viswesh S
@ 2008-08-30  4:30 ` Bean
  2008-08-30  5:31   ` Bean
  2008-08-30 15:03   ` Vesa Jääskeläinen
  0 siblings, 2 replies; 26+ messages in thread
From: Bean @ 2008-08-30  4:30 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 2120 bytes --]

On Sat, Aug 30, 2008 at 4:29 AM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
> Hi,
>
> I am back with my Windows boot up question using grub and grub2.Sorry for
> making the question a bit long.
>
> Some experiments and results which I did.
>
> Scenario: One hard disk,different partitions.
>
> Case 1:
>
> Partition 1 -> Windows Server 2003
> Partition 2 -> Swap
> Partition 3 -> Linux
>
> Boot loader : Grub2.
>
> Windows boots up successfully from grub2 using chainloading (hd0,1) +1
>
> Case 2:
>
> Installed server 2008 in the free space in between Server 2003 and swap.
>
> Partition 1 : Windows server 2003
> Partition 2: Windows server 2008
> Partition 3 :Swap
> Partition 4:Linux
>
> Grub2 doesnt boot up windows with the command chainloader (hd0,1) +1, with
> error
>
> A disk read error occurred
> Ctrl+Alt +del to restart.
>
> But Grub legacy boots up with no issues , with the same command, prefixed
> with rootnoverify hd0
>
> Case 3:
>
> Partition 1 :Boot
> Partition 2:Windows
> Partition 3: Linux
>
> Same behaviour : Grub2 doesnt boot Windows with chainloader command (hd0,2)
> +1
>
> Same error as before.
>
> Not surprisingly grub boots with the same command.
>
> I had a look at the boot sector code of Windows, which gets copied, by
> dumping the partition using dd.
>
> For me, it looked the same.
>
> Also another hunch is that,as the error ( A disk read error occurred ),,
> happened in Windows boot sector, find the areas in boot sector code of
> Windows where it calls this error and goes into an infinite loop.
>
> So in the different cases, I could see that it is something to do with the
> INT 13 call, with functions 41 and 42.
>
> Can anyone let me know the differences here, with respect to grub2 and grub.
>
> Also,on more thing is the way chainloader command is written in grub and
> grub2.I was finding it difficult to decode the assembly parts in both and
> find out the differences.
>
> Can anyone pour some advice and directions on these.

Hi,

I thinks it's caused by partition entry pointer %esi which isn't
correct in grub2, please see if this patch fixes the problem.

-- 
Bean

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: chain.diff --]
[-- Type: text/x-diff; name=chain.diff, Size: 1126 bytes --]

diff --git a/loader/i386/pc/chainloader.c b/loader/i386/pc/chainloader.c
index 825dbb3..ab3b203 100644
--- a/loader/i386/pc/chainloader.c
+++ b/loader/i386/pc/chainloader.c
@@ -101,12 +101,24 @@ grub_chainloader_cmd (const char *filename, grub_chainloader_flags_t flags)
 	  /* In i386-pc, the id is equal to the BIOS drive number.  */
 	  drive = (int) disk->id;
 
-	  if (p)
+	  if ((p) && (p->index < 4))
 	    {
-	      grub_disk_read (disk, p->offset, 446, 64,
-			      (char *) GRUB_MEMORY_MACHINE_PART_TABLE_ADDR);
+              int i;
+
+	      disk->dev->read (disk, 0, 1,
+                               (char *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR);
+
+              grub_memcpy ((char *) GRUB_MEMORY_MACHINE_PART_TABLE_ADDR,
+                           (char *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR + 0x1be,
+                           64);
+
 	      part_addr = (void *) (GRUB_MEMORY_MACHINE_PART_TABLE_ADDR
 				    + (p->index << 4));
+
+              for (i = 0; i < 4; i++)
+                *((char *) GRUB_MEMORY_MACHINE_PART_TABLE_ADDR + i * 16) = 0;
+
+              *((char *) part_addr) = 0x80;
 	    }
 	}
 

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-08-30  4:30 ` Bean
@ 2008-08-30  5:31   ` Bean
  2008-08-30 15:03   ` Vesa Jääskeläinen
  1 sibling, 0 replies; 26+ messages in thread
From: Bean @ 2008-08-30  5:31 UTC (permalink / raw)
  To: The development of GRUB 2

> Hi,
>
> I thinks it's caused by partition entry pointer %esi which isn't
> correct in grub2, please see if this patch fixes the problem.
>
> --
> Bean
>

Hi,

BTW, you should use the following command:

set root=(hd0,1)
chainloader +1

It's not the same as chainloader (hd0,1)+1, as chainloader command
would use the value of root to decide the boot partition index.

-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-08-30  4:30 ` Bean
  2008-08-30  5:31   ` Bean
@ 2008-08-30 15:03   ` Vesa Jääskeläinen
  2008-08-30 15:21     ` Bean
  1 sibling, 1 reply; 26+ messages in thread
From: Vesa Jääskeläinen @ 2008-08-30 15:03 UTC (permalink / raw)
  To: The development of GRUB 2

Bean wrote:
> I thinks it's caused by partition entry pointer %esi which isn't
> correct in grub2, please see if this patch fixes the problem.

Shouldn't chainloader be a bit generic and not to expect partition table
to be DOS style?

At least your patch seems to assume that.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-08-30 15:03   ` Vesa Jääskeläinen
@ 2008-08-30 15:21     ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-08-30 15:21 UTC (permalink / raw)
  To: The development of GRUB 2

On Sat, Aug 30, 2008 at 11:03 PM, Vesa Jääskeläinen <chaac@nic.fi> wrote:
> Bean wrote:
>> I thinks it's caused by partition entry pointer %esi which isn't
>> correct in grub2, please see if this patch fixes the problem.
>
> Shouldn't chainloader be a bit generic and not to expect partition table
> to be DOS style?
>
> At least your patch seems to assume that.

Hi,

This patch is a quick fix to see if this is indeed the cause of
problem, we can make it more generic later. Besides, I believe this
information is only used by MS$, which assumes pc partition table
anyway.

-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-01  9:08 Viswesh S
  2008-09-01 10:16 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-01  9:08 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 1564 bytes --]





----- Original Message ----
From: Bean <bean123ch@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Sent: Saturday, 30 August, 2008 11:01:18 AM
Subject: Re: Windows,grub and grub2

> Hi,
>
> I thinks it's caused by partition entry pointer %esi which isn't
> correct in grub2, please see if this patch fixes the problem.
>
> --
> Bean
>

Hi,

BTW, you should use the following command:

set root=(hd0,1)
chainloader +1

It's not the same as chainloader (hd0,1)+1, as chainloader command
would use the value of root to decide the boot partition index.

-- 
Bean

Hi,

There was no need for the initial partition to me made active, as it was already active.So trying that didnt help out anyway.

Initially I was not calling set root=(hd0,1).

But even after I use it, the results were the same.

The location 7c00 was good, so the boot record is getting copied correctly.

I am repeating my earlier doubt, are we sure that,the assembly part of both grub-legacy and grub2 doesnt have any changes with respect to grub2, especially in th

I still feel, there might be a problem with that, as I feel we are jumping into boot record of windows and then going to an infinite after dumping the error :A disk read error occurred'

Viswesh


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel



      Download prohibited? No problem. CHAT from any browser, without download. Go to http://in.webmessenger.yahoo.com/

[-- Attachment #2: Type: text/html, Size: 3532 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-01  9:08 Viswesh S
@ 2008-09-01 10:16 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-01 10:16 UTC (permalink / raw)
  To: The development of GRUB 2

On Mon, Sep 1, 2008 at 5:08 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
> ----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Saturday, 30 August, 2008 11:01:18 AM
> Subject: Re: Windows,grub and grub2
>
>> Hi,
>>
>> I thinks it's caused by partition entry pointer %esi which isn't
>> correct in grub2, please see if this patch fixes the problem.
>>
>> --
>> Bean
>>
>
> Hi,
>
> BTW, you should use the following command:
>
> set root=(hd0,1)
> chainloader +1
>
> It's not the same as chainloader (hd0,1)+1, as chainloader command
> would use the value of root to decide the boot partition index.
>
> --
> Bean
>
> Hi,
>
> There was no need for the initial partition to me made active, as it was
> already active.So trying that didnt help out anyway.
>
> Initially I was not calling set root=(hd0,1).
>
> But even after I use it, the results were the same.
>
> The location 7c00 was good, so the boot record is getting copied correctly.
>
> I am repeating my earlier doubt, are we sure that,the assembly part of both
> grub-legacy and grub2 doesnt have any changes with respect to grub2,
> especially in th
>
> I still feel, there might be a problem with that, as I feel we are jumping
> into boot record of windows and then going to an infinite after dumping the
> error :A disk read error occurred'

Hi,

Do you mean the result is still the same after you apply my patch ? I
check the source code of grub legacy, the handling should be exactly
the same. Are you using the official branch grub 0.96, or some package
with modification ?

You can also check memory at 0x7be, this should be the partition table
in mbr, %esi would point to the boot partition.

-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-01 10:48 Viswesh S
  2008-09-01 13:02 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-01 10:48 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 1509 bytes --]





----- Original Message ----
From: Bean <bean123ch@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Sent: Monday, 1 September, 2008 3:46:32 PM
Subject: Re: Windows,grub and grub2

On Mon, Sep 1, 2008 at 5:08 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>

Hi,

Do you mean the result is still the same after you apply my patch ? I
check the source code of grub legacy, the handling should be exactly
the same. Are you using the official branch grub 0.96, or some package
with modification ?

You can also check memory at 0x7be, this should be the partition table
in mbr, %esi would point to the boot partition.

-- 
Bean

Hi,

The result is still the same after the patch.

I am using the official grub2 released package 1.96.

In that the chainloader patch wasnt there.Hence applied that according to your inputs as in the mail.

I checked the memory at 0x7be, which is the same as 0x1be in the mbr.

The first partition was already active also.

Also as I mentioned,what about the code for the int 13 extension and and their functionalities for 2,41,42.

Is there any change there.

Otherwise I am not really sure, why grub is able to boot,but grub2 not.

Viswesh
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel



      Unlimited freedom, unlimited storage. Get it now, on http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html/

[-- Attachment #2: Type: text/html, Size: 3708 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-01 10:48 Viswesh S
@ 2008-09-01 13:02 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-01 13:02 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 1642 bytes --]

On Mon, Sep 1, 2008 at 6:48 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
> ----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 1 September, 2008 3:46:32 PM
> Subject: Re: Windows,grub and grub2
>
> On Mon, Sep 1, 2008 at 5:08 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>>
>>
>
> Hi,
>
> Do you mean the result is still the same after you apply my patch ? I
> check the source code of grub legacy, the handling should be exactly
> the same. Are you using the official branch grub 0.96, or some package
> with modification ?
>
> You can also check memory at 0x7be, this should be the partition table
> in mbr, %esi would point to the boot partition.
>
> --
> Bean
>
> Hi,
>
> The result is still the same after the patch.
>
> I am using the official grub2 released package 1.96.
>
> In that the chainloader patch wasnt there.Hence applied that according to
> your inputs as in the mail.
>
> I checked the memory at 0x7be, which is the same as 0x1be in the mbr.
>
> The first partition was already active also.
>
> Also as I mentioned,what about the code for the int 13 extension and and
> their functionalities for 2,41,42.
>
> Is there any change there.
>
> Otherwise I am not really sure, why grub is able to boot,but grub2 not.

Hi,

I doubt that this is caused by int 13, as grub2 doesn't change it.
Besides, the boot sector is read properly in grub2, so int 13 should
be working.

I have thought of another possible reason for this. In grub2, %dh is
0, perhaps it should be set to the partition number. Please test if
the new patch works.

-- 
Bean

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: chain2.diff --]
[-- Type: text/x-diff; name=chain2.diff, Size: 1479 bytes --]

diff --git a/loader/i386/pc/chainloader.c b/loader/i386/pc/chainloader.c
index 825dbb3..5dcc08a 100644
--- a/loader/i386/pc/chainloader.c
+++ b/loader/i386/pc/chainloader.c
@@ -101,12 +101,25 @@ grub_chainloader_cmd (const char *filename, grub_chainloader_flags_t flags)
 	  /* In i386-pc, the id is equal to the BIOS drive number.  */
 	  drive = (int) disk->id;
 
-	  if (p)
+	  if ((p) && (p->index < 4))
 	    {
-	      grub_disk_read (disk, p->offset, 446, 64,
-			      (char *) GRUB_MEMORY_MACHINE_PART_TABLE_ADDR);
+              int i;
+
+	      disk->dev->read (disk, 0, 1,
+                               (char *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR);
+
+              grub_memcpy ((char *) GRUB_MEMORY_MACHINE_PART_TABLE_ADDR,
+                           (char *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR + 0x1be,
+                           64);
+
 	      part_addr = (void *) (GRUB_MEMORY_MACHINE_PART_TABLE_ADDR
 				    + (p->index << 4));
+
+              for (i = 0; i < 4; i++)
+                *((char *) GRUB_MEMORY_MACHINE_PART_TABLE_ADDR + i * 16) = 0;
+
+              *((unsigned char *) part_addr) = 0x80;
+              drive |= (p->index << 8);
 	    }
 	}
 
@@ -119,6 +132,8 @@ grub_chainloader_cmd (const char *filename, grub_chainloader_flags_t flags)
   boot_drive = drive;
   boot_part_addr = part_addr;
   
+  grub_printf ("edx = %x, %esi = %p\n", drive, part_addr);
+
   grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 1);
   return;
   

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-01 13:37 Viswesh S
  2008-09-01 13:51 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-01 13:37 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 814 bytes --]

 
----- Original Message ----
From: Bean <bean123ch@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Sent: Monday, 1 September, 2008 6:32:28 PM
Subject: Re: Windows,grub and grub2

On Mon, Sep 1, 2008 at 6:48 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>

Hi,

I doubt that this is caused by int 13, as grub2 doesn't change it.
Besides, the boot sector is read properly in grub2, so int 13 should
be working.

I have thought of another possible reason for this. In grub2, %dh is
0, perhaps it should be set to the partition number. Please test if
the new patch works.

-- 
Bean

Hi,
 
The index in this case is 0,Hence will it really affect it ?
 
Thanks,
Viswesh


      Add more friends to your messenger and enjoy! Go to http://in.messenger.yahoo.com/invite/

[-- Attachment #2: Type: text/html, Size: 1654 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-01 13:37 Viswesh S
@ 2008-09-01 13:51 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-01 13:51 UTC (permalink / raw)
  To: The development of GRUB 2

On Mon, Sep 1, 2008 at 9:37 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
> ----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 1 September, 2008 6:32:28 PM
> Subject: Re: Windows,grub and grub2
>
> On Mon, Sep 1, 2008 at 6:48 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>>
>>
>
> Hi,
>
> I doubt that this is caused by int 13, as grub2 doesn't change it.
> Besides, the boot sector is read properly in grub2, so int 13 should
> be working.
>
> I have thought of another possible reason for this. In grub2, %dh is
> 0, perhaps it should be set to the partition number. Please test if
> the new patch works.
>
> --
> Bean
>
> Hi,
>
>
>
> The index in this case is 0,Hence will it really affect it ?

Hi,

Don't know, just guessing here, some of your test use partition like (hd0,2).

BTW, you can also try to use dd to copy partition boot record to a
file, then chainloader it, see if it works.

-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-01 13:53 Viswesh S
  2008-09-01 14:35 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-01 13:53 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 1804 bytes --]





----- Original Message ----
From: Bean <bean123ch@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Sent: Monday, 1 September, 2008 6:32:28 PM
Subject: Re: Windows,grub and grub2

On Mon, Sep 1, 2008 at 6:48 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>

Hi,

I doubt that this is caused by int 13, as grub2 doesn't change it.
Besides, the boot sector is read properly in grub2, so int 13 should
be working.

I have thought of another possible reason for this. In grub2, %dh is
0, perhaps it should be set to the partition number. Please test if
the new patch works.

-- 
Bean


Hi,

To get more insight and see whether the values are proper,I dumped the structure members.

So for the commands:

set root=(hd0,1)
chainloader +1

This is disk and partition strucure member values.

disk->name=(hd0,1)
disk->has_partitions=1
disk->id=0x80

For the partition p,

p->offset=0
p->index=0
p->data=0
p->start=0x3f
p->len = 0x0
p->offset=0x4e1edec
p->partmap->name=(null)
part_addr=0x7be

And this is the dump from the mbr:

000001b0   00 00 00 00 00 00 00 00     81 eb 09 00 00 00 80 01  |................|
000001c0   01 00 07 fe  ff ff 3f 00          00 00 ec ed e1 04 00 fe  |......?.........|
000001d0   ff ff 07 fe ff ff 00 f0               e1 04 00 18 30 0b 00 fe  |............0...|
000001e0   ff ff 82 fe ff ff cf 0e               12 10 33 91 3b 00 00 fe  |..........3.;...|
000001f0    ff ff 83 fe ff ff 02 a0              4d 10 bf ea 53 02 55 aa  |........M...S.U.|

Viswesh

ps:-The previous patch also didnt work :-(


      Download prohibited? No problem. CHAT from any browser, without download. Go to http://in.webmessenger.yahoo.com/

[-- Attachment #2: Type: text/html, Size: 5525 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-01 13:53 Viswesh S
@ 2008-09-01 14:35 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-01 14:35 UTC (permalink / raw)
  To: The development of GRUB 2

On Mon, Sep 1, 2008 at 9:53 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
> ----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 1 September, 2008 6:32:28 PM
> Subject: Re: Windows,grub and grub2
>
> On Mon, Sep 1, 2008 at 6:48 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>>
>>
>
> Hi,
>
> I doubt that this is caused by int 13, as grub2 doesn't change it.
> Besides, the boot sector is read properly in grub2, so int 13 should
> be working.
>
> I have thought of another possible reason for this. In grub2, %dh is
> 0, perhaps it should be set to the partition number. Please test if
> the new patch works.
>
> --
> Bean
>
> Hi,
>
> To get more insight and see whether the values are proper,I dumped the
> structure members.
>
> So for the commands:
>
> set root=(hd0,1)
> chainloader +1
>
> This is disk and partition strucure member values.
>
> disk->name=(hd0,1)
> disk->has_partitions=1
> disk->id=0x80
>
> For the partition p,
>
> p->offset=0
> p->index=0
> p->data=0
> p->start=0x3f
> p->len = 0x0
> p->offset=0x4e1edec
> p->partmap->name=(null)
> part_addr=0x7be
>
> And this is the dump from the mbr:
>
> 000001b0   00 00 00 00 00 00 00 00     81 eb 09 00 00 00 80 01
> |................|
> 000001c0   01 00 07 fe  ff ff 3f 00          00 00 ec ed e1 04 00 fe
> |......?.........|
> 000001d0   ff ff 07 fe ff ff 00 f0               e1 04 00 18 30 0b 00 fe
> |............0...|
> 000001e0   ff ff 82 fe ff ff cf 0e               12 10 33 91 3b 00 00 fe
> |..........3.;...|
> 000001f0    ff ff 83 fe ff ff 02 a0              4d 10 bf ea 53 02 55 aa
> |........M...S.U.|

Hi,

Perhaps you can dump the biosdisk information as well

#include <grub/machine/biosdisk.h>

...

struct grub_biosdisk_data *data = (struct grub_biosdisk_data *) dev->disk->data

then print its members (drive, cylinders, heads, sectors, flags).
Also, please try copy the boot sector to a file and chainload it.


-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-01 15:27 Viswesh S
  2008-09-01 15:35 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-01 15:27 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 1204 bytes --]





----- Original Message ----
From: Bean <bean123ch@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Sent: Monday, 1 September, 2008 8:05:29 PM
Subject: Re: Windows,grub and grub2


Hi,

Perhaps you can dump the biosdisk information as well

#include <grub/machine/biosdisk.h>

...

struct grub_biosdisk_data *data = (struct grub_biosdisk_data *) dev->disk->data

then print its members (drive, cylinders, heads, sectors, flags).
Also, please try copy the boot sector to a file and chainload it.


-- 
Bean

Hi,

I have dumped the biosdisk information also

data->drive=0x80
data->cylinders=0x3ff
data->heads=0xff
data->sectors=0x3f
data->flag=0x1

Chainloading from a file doesnt help either

dd if=/dev/hda1 of=chainload.txt bs=512 count=1

In the grub2 command:

set root=(hd0,1)
chainloader (hd0,4)/boot/chainload.txt

No effect :( same error

Viswesh



_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel



      Unlimited freedom, unlimited storage. Get it now, on http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html/

[-- Attachment #2: Type: text/html, Size: 3808 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-01 15:27 Viswesh S
@ 2008-09-01 15:35 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-01 15:35 UTC (permalink / raw)
  To: The development of GRUB 2

On Mon, Sep 1, 2008 at 11:27 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
> ----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 1 September, 2008 8:05:29 PM
> Subject: Re: Windows,grub and grub2
>
>
> Hi,
>
> Perhaps you can dump the biosdisk information as well
>
> #include <grub/machine/biosdisk.h>
>
> ...
>
> struct grub_biosdisk_data *data = (struct grub_biosdisk_data *)
> dev->disk->data
>
> then print its members (drive, cylinders, heads, sectors, flags).
> Also, please try copy the boot sector to a file and chainload it.
>
>
> --
> Bean
>
> Hi,
>
> I have dumped the biosdisk information also
>
> data->drive=0x80
> data->cylinders=0x3ff
> data->heads=0xff
> data->sectors=0x3f
> data->flag=0x1
>
> Chainloading from a file doesnt help either
>
> dd if=/dev/hda1 of=chainload.txt bs=512 count=1
>
> In the grub2 command:
>
> set root=(hd0,1)
> chainloader (hd0,4)/boot/chainload.txt

Hi,

Perhaps you can upload the boot sector file ? I can dissemble it to
see where the error is printed.

-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-01 17:01 Viswesh S
  2008-09-04 17:37 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-01 17:01 UTC (permalink / raw)
  To: The development of GRUB 2


[-- Attachment #1.1: Type: text/plain, Size: 937 bytes --]





----- Original Message ----
From: Bean <bean123ch@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Sent: Monday, 1 September, 2008 9:05:48 PM
Subject: Re: Windows,grub and grub2

On Mon, Sep 1, 2008 at 11:27 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>

Hi,

Perhaps you can upload the boot sector file ? I can dissemble it to
see where the error is printed.

-- 
Bean

Hi, 

I was just trying out a way to disassemble it, as objdump didnt give it to me.I think I am not giving the right option,I suppose for binary.Let me know how to disassemble the binary.
 
I have attached the boot record.
 
Viswesh

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel



      Unlimited freedom, unlimited storage. Get it now, on http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html/

[-- Attachment #1.2: Type: text/html, Size: 1952 bytes --]

[-- Attachment #2: hda1new4096.txt --]
[-- Type: text/plain, Size: 4096 bytes --]

ëRNTFS    \0\x02\b\0\0\0\0\0\0\0ø\0\0?\0ÿ\0?\0\0\0\0\0\0\0€\0€\0ëíá\x04\0\0\0\0\0\0\f\0\0\0\0\0Þ\x1eN\0\0\0\0\0ö\0\0\0\x01\0\0\0èv{\x18·{\x18´\0\0\0\0ú3ÀŽÐ¼\0|ûhÀ\a\x1f\x1ehf\0ˈ\x16\x0e\0f>\x03\0NTFSu\x15´A»ªUÍ\x13r\fûUªu\x06÷Á\x01\0u\x03éÒ\0\x1eƒì\x18h\x1a\0´HŠ\x16\x0e\0‹ô\x16\x1fÍ\x13ŸƒÄ\x18žX\x1frá;\x06\v\0uÛ£\x0f\0Á.\x0f\0\x04\x1eZ3Û¹\0 +Èfÿ\x06\x11\0\x03\x16\x0f\0ŽÂÿ\x06\x16\0è@\0+Èwï¸\0»Í\x1af#Àu-fûTCPAu$ù\x02\x01r\x1e\x16h\a»\x16hp\x0e\x16h	\0fSfSfU\x16\x16\x16h¸\x01fa\x0e\aÍ\x1aéj\x01f`\x1e\x06f¡\x11\0f\x03\x06\x1c\0\x1efh\0\0\0\0fP\x06Sh\x01\0h\x10\0´BŠ\x16\x0e\0\x16\x1f‹ôÍ\x13fY[ZfYfY\x1f\x0f‚\x16\0fÿ\x06\x11\0\x03\x16\x0f\0ŽÂÿ\x0e\x16\0u¼\a\x1ffaàø\x01è\b\0 û\x01è\x02\0ëþ´\x01‹ð¬<\0t	´\x0e»\a\0Í\x10ëòÃ
A disk read error occurred\0
BOOTMGR is missing\0
BOOTMGR is compressed\0
Press Ctrl+Alt+Del to restart
\0\0\0\0\0\0\0\0\0\0\0\0\0€²Ê\0\0Uª\a\0B\0O\0O\0T\0M\0G\0R\0\x04\0$\0I\03\00\0\0Ô\0\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ë"\x05\0N\0T\0L\0D\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0f\x0f·\x06\v\0f\x0f¶\x1e\r\0f÷ãf£R\x02f‹\x0e@\0€ù\0\x0f\x0e\0öÙf¸\x01\0\0\0fÓàë\bf¡R\x02f÷áf£f\x02f\x0f·\x1e\v\0f3Òf÷óf£V\x02è•\x04f‹\x0eN\x02f‰\x0e&\x02f\x03\x0ef\x02f‰\x0e*\x02f\x03\x0ef\x02f‰\x0e.\x02f\x03\x0ef\x02f‰\x0e>\x02f\x03\x0ef\x02f‰\x0eF\x02f¸\0\0\0f‹\x0e&\x02èƒ	f\vÀ\x0f„Sþf£2\x02f¸ \0\0\0f‹\x0e*\x02èj	f£6\x02f¸°\0\0\0f‹\x0e.\x02èX	f£:\x02f¡2\x02f\vÀ\x0f„ þg€x\b\0\x0f…\x17þgfP\x10g\x03B\x04gf\x0f¶H\ff‰\x0er\x02gf‹H\bf‰\x0en\x02f¡n\x02f\x0f·\x0e\v\0f3Òf÷ñf£v\x02f¡F\x02f\x03\x06n\x02f£J\x02fƒ>6\x02\0\x0f„\x1d\0fƒ>:\x02\0\x0f„Äýf‹\x1e:\x02\x1e\af‹>J\x02f¡.\x02èà\x01f\x0f·\x0e\0\x02f¸\x02\x02\0\0è"\bf\vÀ\x0f…\x16\0f\x0f·\x0eZ\x02f¸\\x02\0\0è\f\bf\vÀ\x0f„B\fgf‹\0\x1e\af‹>>\x02è?\x06f¡>\x02f» \0\0\0f¹\0\0\0\0fº\0\0\0\0èä\0f…À\x0f…#\0f¡>\x02f»€\0\0\0f¹\0\0\0\0fº\0\0\0\0èÄ\0f\vÀ\x0f…D\0éñ\vf3Òf¹€\0\0\0f¡>\x02èÊ\bf\vÀ\x0f„Ú\v\x1e\af‹>>\x02èÛ\x05f¡>\x02f»€\0\0\0f¹\0\0\0\0fº\0\0\0\0è€\0f\vÀ\x0f„°\vgf\x0f·X\ffãÿ\0\0\0\x0f…¥\vf‹Øh\0 \af+ÿf¡>\x02è\0\x01h\0 \af+ÿf¡>\x02è¬
Š\x16\x0e\0¸è\x03ŽÀ6\v\0+Àh\0 PË\x06\x1ef`f‹Úf\x0f¶\x0e\r\0f÷áf£\x11\0f‹Ãf÷á£\x16\0‹ßƒã\x0fŒÀfÁï\x04\x03ÇP\aè3üfa\x1f\aÃg\x03@\x14gfƒ8ÿ\x0f„L\0gf9\x18\x0f…3\0f\vÉ\x0f…
\0g€x	\0\x0f…#\0Ãg:H	\x0f…\x1a\0f‹ðg\x03p
è—\x06fQ\x1e\af‹úó§fY\x0f…\x01\0Ãgfƒx\x04\0\x0f„\a\0gf\x03@\x04ë«f+ÀÃf‹óèl\x06gf\x03\0g÷@\f\x02\0\x0f…4\0gfP\x10g:J@\x0f…\x18\0gfrBèI\x06fQ\x1e\af‹ûó§fY\x0f…\x01\0Ãgƒx\b\0\x0f„\x06\0g\x03@\bëÂf3ÀÃg€{\b\0\x0f…\x1c\0\x06\x1ef`gfS\x10gf‹
f‹óg\x03r\x04ó¤fa\x1f\aÃfPgfS\x10f…À\x0f…
\0gf‹J\bfAë\x11gf‹B\x18f3Òf÷6R\x02f‹Èf+Àf^è\x01\0Ã\x06\x1ef`g€{\b\x01\x0f„\x03\0ékûfƒù\0\x0f…\x06\0fa\x1f\aÃfSfPfQfVfW\x06è‘\x04f‹Ñ\af_f^fYf…À\x0f„4\0f;Ê\x0f\x03\0f‹Ñè‚þf+Êf‹Úf‹Âf\x0f¶\x16\r\0f÷âf\x0f·\x16\v\0f÷âf\x03øfXf\x03Ãf[ëŸf…ö\x0f„\x03ûfQfW\x06gf\x0f¶C	f…À\x0f„ \0fÑàf+àf‹üfTfVgf\x0f·s
f\x03óf‹Èó¤f^ë\x03fPfPgf‹\x03fPgf‹C\x18fPgf‹V f…Ò\x0f„\v\0f‹þ\x1e\af‹Âèq\x03f‹ÆfZfYfBfQfVè?\x06f…À\x0f„’úf^fYf‹þ\x1e\aèN\x03f‹Æf‹ÙfYfZfQfVfÑéèøýf…À\x0f„kúf^fYf\x03á\af_fYf‹ÐfXf[f‹Úéõþ\x06\x1ef`&gf\x0f·_\x04&gf\x0f·O\x06f\vÉ\x0f„9úf\x03ßfƒÃ\x02fÇþ\x01\0\0fIf\vÉ\x0f„\x17\0&g‹\x03&g‰\afƒÃ\x02fÇ\0\x02\0\0fIëâfa\x1f\aÃ\x06\x1ef`f¸\x01\0\0\0f£"\x02f¡\x1e\x02f\x03\x06f\x02f£j\x02f\x03\x06f\x02f£N\x02f¡0\0f\x0f¶\x1e\r\0f÷ãf‹\x1eN\x02f‰\af£\x11\0ƒÃ\x04f¡V\x02f‰\a£\x16\0ƒÃ\x04f‰\x1eN\x02f‹\x1e\x1e\x02\x1e\aè\ùf‹ûèQÿf¡\x1e\x02f» \0\0\0f¹\0\0\0\0fº\0\0\0\0è\x10ýf\vÀ\x0f„\x19\x01f‹Ø\x1e\af‹>\x1a\x02f3Àè¢ýf‹\x1e\x1a\x02f?€\0\0\0\x0f„ë\0\x03_\x04ëðfSf‹G\x10f÷&V\x02fPf3Òf\x0f¶\x1e\r\0f÷ófRèÜ\0f\vÀ\x0f„9ùf‹\x0eV\x02f\x0f¶\x1e\r\0f÷ãfZf\x03Âf‹\x1eN\x02f‰\aƒÃ\x04f\x0f¶\x06\r\0f+Âf;Á\x0f†\x03\0f‹Áf‰\af+ÈfZ\x0f„u\0f\x03ÂfPf3Òf\x0f¶\x1e\r\0f÷ófQè‚\0fYf\vÀ\x0f„Ýøf\x0f¶\x1e\r\0f÷ãf‹\x1eN\x02f‹\x17ƒÃ\x04f\x03\x17f;Ð\x0f…\x15\0f\x0f¶\x06\r\0f;Á\x0f†\x03\0f‹Áf\x01\a륃Ã\x04f‰\x1eN\x02f‰\aƒÃ\x04f\x0f¶\x06\r\0f;Á\x0f†\x03\0f‹Áf‰\a낃Ã\x04fÿ\x06"\x02f‰\x1eN\x02f[\x03_\x04f?€\0\0\0\x0f„\fÿfa\x1f\aÃf‹Ðf‹\x0e"\x02f‹6j\x02f\x036f\x02fRfQfRf‹\x1ej\x02f‹>V\x02f‹\x04f£\x11\0ƒÆ\x04f‹\x04£\x16\0ƒÆ\x04\x1e\aèÝ÷f+ø\x0f„\b\0÷&\v\0\x03ØëÙf‹>j\x02\x1e\aè¿ýf¡j\x02f»€\0\0\0f¹\0\0\0\0f‹Ñèûf\vÀ\x0f„ô÷f‹ØfXfVè,\x01f^f\vÀ\x0f„\x05\0f[f[ÃfYfZâ„f3ÀÃ\x06\x1ef`fPfQf3Òf\x0f¶\x1e\r\0f÷ófRfWèSÿf_f\vÀ\x0f„®÷f\x0f¶\x1e\r\0f÷ãfZf\x03Âf£\x11\0fYf\x0f¶\x1e\r\0f;Ë\x0fŽ\x13\0‰\x1e\x16\0f+ËfXf\x03ÃfPfQë\x14fXf\x03ÁfP‰\x0e\x16\0f¹\0\0\0\0fQ\x06fW‹ßƒã\x0fŒÀfÁï\x04\x03ÇP\aè\x05÷f_\af\x03>R\x02fYfXfƒù\0\x0fpÿfa\x1f\aÃ\x06\x1ef`f÷&V\x02f‹\x0eV\x02èUÿèÒüfa\x1f\aÃ\x06\x1ef`f÷&r\x02f‹\x1e6\x02f‹\x0er\x02f‹6*\x02\x1e\af‹>F\x02èûè§üfa\x1f\aÃfPfSfQf‹\x1eJ\x02f‹ÈfÁè\x03fƒá\af\x03Øf¸\x01\0\0\0fÓàg„\x03\x0f„\x04\0øë\x02ùfYf[fXÃg€{\b\x01\x0f„\x04\0f+ÀÃgfs\x10gf‹V\bf;Â\x0f‡\v\0gf‹\x16f;Â\x0fƒ\x04\0f+ÀÃg\x03^\x10f+ög€;\0\x0f„>\0è\0f\x03ñè9\0f\x03Êf;Á\x0fŒ!\0f‹ÑfPgf\x0f¶\vf‹Áfƒà\x0ffÁé\x04f\x03Ùf\x03ØfCfXëÄf+Èf+Âf\x03ÆÃf+ÀÃf+ÉgŠ\v€á\x0ffƒù\0\x0f…\x04\0f+ÉÃfSfRf\x03Ùgf\x0f¾\x13fIfKfƒù\0\x0f„\r\0fÁâ\bgŠ\x13fKfIëëf‹ÊfZf[ÃfSfRf+ÒgŠ\x13fƒâ\x0ff+ÉgŠ\vÀé\x04fƒù\0\x0f…\b\0f+ÉfZf[Ãf\x03Úf\x03Ùgf\x0f¾\x13fIfKfƒù\0\x0f„\r\0fÁâ\bgŠ\x13fKfIëëf‹ÊfZf[Ãf\vÉ\x0f…\x01\0ÃfQfVgƒ>a\x0fŒ\f\0gƒ>z\x0f\x04\0gƒ. fƒÆ\x02âæf^fYÃfPfQf‹Ðf¡2\x02gfX\x10g\x03C\x04gf@\x10f‹ÚèDùf\vÀ\x0f„\x05\0fYfYÃf¡6\x02f\vÀ\x0f…\b\0fYfYf3ÀÃf‹\x166\x02gfR\x10gf‹B\x18f3Òf÷6n\x02f3öfPfVfXf^f;Æ\x0f„:\0fVf@fPfHè^[þrèèëýfZf^fYf[fSfQfVfRf¡F\x02gf@\x18èÐøf\vÀtÄfYfYfYfYÃfYfYf3ÀÃfQfPf¸\x05\0\0\0\x1e\af‹ùèýf‹Áf» \0\0\0f¹\0\0\0\0fº\0\0\0\0è3øf[fYf…À\x0f…\x15\0f‹Áf\x0f·\x0e\x10\x02fº\x12\x02\0\0è\x16øë3f3Òf‹Áf‹ËfPfSè#\0f[f_f\vÀ\x0f„\x17\0\x1e\aè5ýf‹Çf\x0f·\x0e\x10\x02fº\x12\x02\0\0èá÷ÃfRfQf» \0\0\0f¹\0\0\0\0fº\0\0\0\0èÇ÷f\vÀ\x0f„c\0f‹Ø\x1e\af‹>\x1a\x02f3ÀèYø\x1e\af‹\x1e\x1a\x02fYfZ&f9\x0f\x0f…\f\0&f9W\b\x0f„1\0ë\x13&fƒ?ÿ\x0f„/\0&ƒ\x7f\x04\0\x0f„&\0&f\x0f·G\x04\x03Ø‹Ã%\0€tËŒÀ\x05\0\bŽÀãÿ\x7fë¾&f‹G\x10ÃfYfZf3ÀÃfPfQf‹ÇfÁè\x04\x06Y\x03ÈQ\afƒç\x0ffYfXÃ`\x06¾½\r¿\0 \x1e\a¹\r\0ó¥\aaÃ\x01#Eg‰«Íïþܺ˜vT2\x10ðáÒÃ\0\0\0\0  `‹6\x18 &Š\x05ˆ\x04GFfÿ\x06\x14 þ` u\x06è[\0¾  âæ‰6\x18 aÃf`‹6\x18 °€ˆ\x04F2Àþ` u\x06è:\0¾  þX uéf3Àf£X f¡\x14 fÁà\x03f\x0fÈf£\ è\x18\0»\0 f‹\af\x0fÈf‰\aƒÃ\x04û4 uîfaÃf`»  f‹\af\x0fÈf‰\aƒÃ\x04û` uî»\0 f‹\x0ff‹W\x04f‹w\bf‹\x7f\ff‹o\x10»  Ç\x06\x1a 0\x0fÆ\x06\x1c \x14S‹\x1e\x1a ÿ\x17f\x03G\x02[f\x03èf\x03/f‹ÁfÁÀ\x05f\x03Åf‹ïf‹þf‹òfÁÆ\x1ef‹Ñf‹Èf‹\af3G\bf3G f3G4fÑÀf‰G@ƒÃ\x04þ\x0e\x1c u²ƒ\x06\x1a \x06>\x1a H\x0fuŸ»\0 f\x01\x0ff\x01W\x04f\x01w\bf\x01\x7f\ff\x01o\x10faÃf‹Æf3Çf#Âf3ÇÃf‹Âf3Æf3ÇÃfSf‹Âf#Æf‹Úf#ßf\vÃf‹Þf#ßf\vÃf[Ãü\x0e™y‚Z	\x0f¡ëÙn\x13\x0fܼ^[	\x0fÖÁbÊ\x06\x1ef`f3Û¸\0»Í\x1af#À\x0f…»\0fûTCPA\x0f…°\0ù\x02\x01\x0f‚¨\0fa\x1f\a\x06\x1ef`g€{\b\0\x0f…\f\0gfS\x10gf‹
ë%gfS\x10gf‹J(fù\0\0\b\0\x0fƒ\f\0gf‹B,f#À\x0f„\x03\0f3É\x0e\x1fèõýf#É\x0f„2\0fº\0€\0\0f;Ê\x0f†\x1f\0f+Ê\x06fQfWfRf‹Êè·ýèûýfZf_fY\af\x03úëÚè¥ýèéýè\vþ\x0e\af»TCPAf¿\0 \0\0f

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-01 17:01 Viswesh S
@ 2008-09-04 17:37 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-04 17:37 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 1010 bytes --]

On Tue, Sep 2, 2008 at 1:01 AM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
> ----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 1 September, 2008 9:05:48 PM
> Subject: Re: Windows,grub and grub2
>
> On Mon, Sep 1, 2008 at 11:27 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>>
>>
>
> Hi,
>
> Perhaps you can upload the boot sector file ? I can dissemble it to
> see where the error is printed.
>
> --
> Bean
> Hi,
>
>
> I was just trying out a way to disassemble it, as objdump didnt give it to
> me.I think I am not giving the right option,I suppose for binary.Let me know
> how to disassemble the binary.
>
>
>
> I have attached the boot record.

Hi,

I'm sorry for the delay, I'm a little busy in the last few days.

I have disassemble the boot sector, there are three places where the
error could occur, please chain load the file in the attachment and
write down the screen output:

chainloader /ntfsnew
boot

-- 
Bean

[-- Attachment #2: ntfsnew.zip --]
[-- Type: application/zip, Size: 550 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-09  6:00 Viswesh S
  2008-09-22  3:40 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-09  6:00 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 2456 bytes --]





----- Original Message ----
From: Bean <bean123ch@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Sent: Thursday, 4 September, 2008 11:07:46 PM
Subject: Re: Windows,grub and grub2

On Tue, Sep 2, 2008 at 1:01 AM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
> ----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 1 September, 2008 9:05:48 PM
> Subject: Re: Windows,grub and grub2
>
> On Mon, Sep 1, 2008 at 11:27 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>>
>>
>
> Hi,
>
> Perhaps you can upload the boot sector file ? I can dissemble it to
> see where the error is printed.
>
> --
> Bean
> Hi,
>
>
> I was just trying out a way to disassemble it, as objdump didnt give it to
> me.I think I am not giving the right option,I suppose for binary.Let me know
> how to disassemble the binary.
>
>
>
> I have attached the boot record.

>Hi,
>
>I'm sorry for the delay, I'm a little busy in the last few days.
>
>I have disassemble the boot sector, there are three places where the
>error could occur, please chain load the file in the attachment and
>write down the screen output:
>
>chainloader /ntfsnew
>boot
>
>-- 
>Bean


Hi,

Below is the dump of screen output while chainloading the ntfsnew file.
***************************************
DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57

DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 CX=07C0
DS=07C0 ES=0000 FG=0007 IP=0082
******************************************
Could you please let me know the way to disassemble the binary file without any header.The way in which you decoded the boot record.

Also one more thing to let you know is that,

with the grub-1.96 ( without the chainloader patch of disk->dev->read() ) , with windows2003 in partition 1 and linux in partition 3, when we chainload, if we look at the partition table passed to another bootloader ie location 0x7be - we can see that it is junk, but the surprising point is that, in this case as I have mentioned in my first mail, windows boots up from grub2.So it is that the partition table is not required for the chainloader thing and just the boot record is sufficient

Viswesh



      Add more friends to your messenger and enjoy! Go to http://in.messenger.yahoo.com/invite/

[-- Attachment #2: Type: text/html, Size: 5038 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-09  6:00 Windows,grub and grub2 Viswesh S
@ 2008-09-22  3:40 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-22  3:40 UTC (permalink / raw)
  To: The development of GRUB 2

On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
> Below is the dump of screen output while chainloading the ntfsnew file.
> ***************************************
> DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
> CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
>
> DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 CX=07C0
> DS=07C0 ES=0000 FG=0007 IP=0082
> ******************************************
> Could you please let me know the way to disassemble the binary file without
> any header.The way in which you decoded the boot record.
>
> Also one more thing to let you know is that,
>
> with the grub-1.96 ( without the chainloader patch of disk->dev->read() ) ,
> with windows2003 in partition 1 and linux in partition 3, when we chainload,
> if we look at the partition table passed to another bootloader ie location
> 0x7be - we can see that it is junk, but the surprising point is that, in
> this case as I have mentioned in my first mail, windows boots up from
> grub2.So it is that the partition table is not required for the chainloader
> thing and just the boot record is sufficient

Hi,

Oh, sorry for another long delay. I disassemble the file with ida,
which is an amazing tool. I don't know if there is open source
alternative, please let me know if you find one.

The output from ida is in masm format, I modify it a bit so that it
can be compiled using nasm. Please note that nasm doesn't generate the
same binary file as original one, but you can get an idea what it
does.

From the output, the program fails at the second int 13 call, int
13/ah = 48h. Although I notice that DL=0, which is not supposed to
happen. Perhaps you can add a grub_printf in grub_chainloader_boot to
show the value of boot drive:

static grub_err_t
grub_chainloader_boot (void)
{
  grub_printf ("boot_drive=%d\n", boot_drive);
  grub_chainloader_real_boot (boot_drive, boot_part_addr);

  /* Never reach here.  */
  return GRUB_ERR_NONE;
}

-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-23  8:23 Viswesh S
  2008-09-23 13:50 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-23  8:23 UTC (permalink / raw)
  To: The development of GRUB 2





----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 22 September, 2008 9:10:26 AM
> Subject: Re: Windows,grub and grub2
> 
> On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S wrote:
> > Below is the dump of screen output while chainloading the ntfsnew file.
> > ***************************************
> > DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
> > CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
> >
> > DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 CX=07C0
> > DS=07C0 ES=0000 FG=0007 IP=0082
> > ******************************************
> > Could you please let me know the way to disassemble the binary file without
> > any header.The way in which you decoded the boot record.
> >
> > Also one more thing to let you know is that,
> >
> > with the grub-1.96 ( without the chainloader patch of disk->dev->read() ) ,
> > with windows2003 in partition 1 and linux in partition 3, when we chainload,
> > if we look at the partition table passed to another bootloader ie location
> > 0x7be - we can see that it is junk, but the surprising point is that, in
> > this case as I have mentioned in my first mail, windows boots up from
> > grub2.So it is that the partition table is not required for the chainloader
> > thing and just the boot record is sufficient
> 
> Hi,
> 
> Oh, sorry for another long delay. I disassemble the file with ida,
> which is an amazing tool. I don't know if there is open source
> alternative, please let me know if you find one.
> 
> The output from ida is in masm format, I modify it a bit so that it
> can be compiled using nasm. Please note that nasm doesn't generate the
> same binary file as original one, but you can get an idea what it
> does.
> 
> From the output, the program fails at the second int 13 call, int
> 13/ah = 48h. Although I notice that DL=0, which is not supposed to
> happen. Perhaps you can add a grub_printf in grub_chainloader_boot to
> show the value of boot drive:
> 
> static grub_err_t
> grub_chainloader_boot (void)
> {
>   grub_printf ("boot_drive=%d\n", boot_drive);
>   grub_chainloader_real_boot (boot_drive, boot_part_addr);
> 
>   /* Never reach here.  */
>   return GRUB_ERR_NONE;
> }
> 
> -- 
> Bean
> 
> 

Hi,

The value of boot drive is 0x80.

This was the same value in disk->drive also.

Viswesh


      Be the first one to try the new Messenger 9 Beta! Go to http://in.messenger.yahoo.com/win/



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-23  8:23 Viswesh S
@ 2008-09-23 13:50 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-23 13:50 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 2677 bytes --]

On Tue, Sep 23, 2008 at 4:23 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
>
>
>
>
> ----- Original Message ----
>> From: Bean <bean123ch@gmail.com>
>> To: The development of GRUB 2 <grub-devel@gnu.org>
>> Sent: Monday, 22 September, 2008 9:10:26 AM
>> Subject: Re: Windows,grub and grub2
>>
>> On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S wrote:
>> > Below is the dump of screen output while chainloading the ntfsnew file.
>> > ***************************************
>> > DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
>> > CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
>> >
>> > DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 CX=07C0
>> > DS=07C0 ES=0000 FG=0007 IP=0082
>> > ******************************************
>> > Could you please let me know the way to disassemble the binary file without
>> > any header.The way in which you decoded the boot record.
>> >
>> > Also one more thing to let you know is that,
>> >
>> > with the grub-1.96 ( without the chainloader patch of disk->dev->read() ) ,
>> > with windows2003 in partition 1 and linux in partition 3, when we chainload,
>> > if we look at the partition table passed to another bootloader ie location
>> > 0x7be - we can see that it is junk, but the surprising point is that, in
>> > this case as I have mentioned in my first mail, windows boots up from
>> > grub2.So it is that the partition table is not required for the chainloader
>> > thing and just the boot record is sufficient
>>
>> Hi,
>>
>> Oh, sorry for another long delay. I disassemble the file with ida,
>> which is an amazing tool. I don't know if there is open source
>> alternative, please let me know if you find one.
>>
>> The output from ida is in masm format, I modify it a bit so that it
>> can be compiled using nasm. Please note that nasm doesn't generate the
>> same binary file as original one, but you can get an idea what it
>> does.
>>
>> From the output, the program fails at the second int 13 call, int
>> 13/ah = 48h. Although I notice that DL=0, which is not supposed to
>> happen. Perhaps you can add a grub_printf in grub_chainloader_boot to
>> show the value of boot drive:
>>
>> static grub_err_t
>> grub_chainloader_boot (void)
>> {
>>   grub_printf ("boot_drive=%d\n", boot_drive);
>>   grub_chainloader_real_boot (boot_drive, boot_part_addr);
>>
>>   /* Never reach here.  */
>>   return GRUB_ERR_NONE;
>> }
>>
>> --
>> Bean
>>
>>
>
> Hi,
>
> The value of boot drive is 0x80.
>
> This was the same value in disk->drive also.

Hi,

Interesting, perhaps %dx is changed somewhere. Please try the
following patch, it dumps the value of %dx just before jumping to the
boot sector.

-- 
Bean

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: aa.diff --]
[-- Type: text/x-diff; name=aa.diff, Size: 830 bytes --]

diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S
index 18f61d8..a50977c 100644
--- a/kern/i386/pc/startup.S
+++ b/kern/i386/pc/startup.S
@@ -639,13 +639,46 @@ FUNCTION(grub_chainloader_real_boot)
 
 	/* set up to pass boot drive */
 	popl	%edx
+	movl	%edx, %edi
 
 	/* ESI must point to a partition table entry */
 	popl	%esi
 
+
 	call	prot_to_real
 	.code16
+
+	push	%dx
+	call	hex_out
+	push	%di
+	call	hex_out
+
 	ljmp	$0, $GRUB_MEMORY_MACHINE_BOOT_LOADER_ADDR
+
+hex_out:
+	pushw	%bp
+	movw	%sp, %bp
+	pushaw
+	movb	$0xE, %ah
+ 	movw	$7, %bx
+	movw	$4, %cx
+	movw	4(%bp), %dx
+1:
+	rol	$4, %dx
+	movb	%dl, %al
+	andb	$0xF, %al
+	cmpb	$10, %al
+	jb	2f
+	subb	$('0'-'A'+10), %al
+2:
+	addb	$'0', %al
+	int	$0x10
+	loop	1b
+	movb	$' ', %al
+	int	$0x10
+	popaw
+	popw	%bp
+	ret	$2
 	.code32
 
 #include "../loader.S"

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-09-29  5:18 Viswesh S
  2008-09-29 10:50 ` Bean
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-09-29  5:18 UTC (permalink / raw)
  To: The development of GRUB 2

Hi,



----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Tuesday, 23 September, 2008 7:20:49 PM
> Subject: Re: Windows,grub and grub2
> 
> On Tue, Sep 23, 2008 at 4:23 PM, Viswesh S wrote:
> >
> >
> >
> >
> > ----- Original Message ----
> >> From: Bean 
> >> To: The development of GRUB 2 
> >> Sent: Monday, 22 September, 2008 9:10:26 AM
> >> Subject: Re: Windows,grub and grub2
> >>
> >> On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S wrote:
> >> > Below is the dump of screen output while chainloading the ntfsnew file.
> >> > ***************************************
> >> > DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
> >> > CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
> >> >
> >> > DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 CX=07C0
> >> > DS=07C0 ES=0000 FG=0007 IP=0082
> >> > ******************************************
> >> > Could you please let me know the way to disassemble the binary file without
> >> > any header.The way in which you decoded the boot record.
> >> >
> >> > Also one more thing to let you know is that,
> >> >
> >> > with the grub-1.96 ( without the chainloader patch of disk->dev->read() ) ,
> >> > with windows2003 in partition 1 and linux in partition 3, when we 
> chainload,
> >> > if we look at the partition table passed to another bootloader ie location
> >> > 0x7be - we can see that it is junk, but the surprising point is that, in
> >> > this case as I have mentioned in my first mail, windows boots up from
> >> > grub2.So it is that the partition table is not required for the chainloader
> >> > thing and just the boot record is sufficient
> >>
> >> Hi,
> >>
> >> Oh, sorry for another long delay. I disassemble the file with ida,
> >> which is an amazing tool. I don't know if there is open source
> >> alternative, please let me know if you find one.
> >>
> >> The output from ida is in masm format, I modify it a bit so that it
> >> can be compiled using nasm. Please note that nasm doesn't generate the
> >> same binary file as original one, but you can get an idea what it
> >> does.
> >>
> >> From the output, the program fails at the second int 13 call, int
> >> 13/ah = 48h. Although I notice that DL=0, which is not supposed to
> >> happen. Perhaps you can add a grub_printf in grub_chainloader_boot to
> >> show the value of boot drive:
> >>
> >> static grub_err_t
> >> grub_chainloader_boot (void)
> >> {
> >>   grub_printf ("boot_drive=%d\n", boot_drive);
> >>   grub_chainloader_real_boot (boot_drive, boot_part_addr);
> >>
> >>   /* Never reach here.  */
> >>   return GRUB_ERR_NONE;
> >> }
> >>
> >> --
> >> Bean
> >>
> >>
> >
> > Hi,
> >
> > The value of boot drive is 0x80.
> >
> > This was the same value in disk->drive also.
> 
> Hi,
> 
> Interesting, perhaps %dx is changed somewhere. Please try the
> following patch, it dumps the value of %dx just before jumping to the
> boot sector.
> 
> -- 
> Bean

The patch works and now Windows is booting perfectly fine from Grub2. 

I will go through the assembly and try to understand what modifications you have done.So there is a problem in Grub2 code, which needs to be fixed ?

Till this point, I was chainloading grub from Grub2 and then chainloading Windows2008 from it.

Thanks for the consistent help till this point and for the future also.

Viswesh



      Connect with friends all over the world. Get Yahoo! India Messenger at http://in.messenger.yahoo.com/?wm=n/



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-09-29  5:18 Viswesh S
@ 2008-09-29 10:50 ` Bean
  0 siblings, 0 replies; 26+ messages in thread
From: Bean @ 2008-09-29 10:50 UTC (permalink / raw)
  To: The development of GRUB 2

On Mon, Sep 29, 2008 at 1:18 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:
> Hi,
>
>
>
> ----- Original Message ----
>> From: Bean <bean123ch@gmail.com>
>> To: The development of GRUB 2 <grub-devel@gnu.org>
>> Sent: Tuesday, 23 September, 2008 7:20:49 PM
>> Subject: Re: Windows,grub and grub2
>>
>> On Tue, Sep 23, 2008 at 4:23 PM, Viswesh S wrote:
>> >
>> >
>> >
>> >
>> > ----- Original Message ----
>> >> From: Bean
>> >> To: The development of GRUB 2
>> >> Sent: Monday, 22 September, 2008 9:10:26 AM
>> >> Subject: Re: Windows,grub and grub2
>> >>
>> >> On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S wrote:
>> >> > Below is the dump of screen output while chainloading the ntfsnew file.
>> >> > ***************************************
>> >> > DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
>> >> > CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
>> >> >
>> >> > DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 CX=07C0
>> >> > DS=07C0 ES=0000 FG=0007 IP=0082
>> >> > ******************************************
>> >> > Could you please let me know the way to disassemble the binary file without
>> >> > any header.The way in which you decoded the boot record.
>> >> >
>> >> > Also one more thing to let you know is that,
>> >> >
>> >> > with the grub-1.96 ( without the chainloader patch of disk->dev->read() ) ,
>> >> > with windows2003 in partition 1 and linux in partition 3, when we
>> chainload,
>> >> > if we look at the partition table passed to another bootloader ie location
>> >> > 0x7be - we can see that it is junk, but the surprising point is that, in
>> >> > this case as I have mentioned in my first mail, windows boots up from
>> >> > grub2.So it is that the partition table is not required for the chainloader
>> >> > thing and just the boot record is sufficient
>> >>
>> >> Hi,
>> >>
>> >> Oh, sorry for another long delay. I disassemble the file with ida,
>> >> which is an amazing tool. I don't know if there is open source
>> >> alternative, please let me know if you find one.
>> >>
>> >> The output from ida is in masm format, I modify it a bit so that it
>> >> can be compiled using nasm. Please note that nasm doesn't generate the
>> >> same binary file as original one, but you can get an idea what it
>> >> does.
>> >>
>> >> From the output, the program fails at the second int 13 call, int
>> >> 13/ah = 48h. Although I notice that DL=0, which is not supposed to
>> >> happen. Perhaps you can add a grub_printf in grub_chainloader_boot to
>> >> show the value of boot drive:
>> >>
>> >> static grub_err_t
>> >> grub_chainloader_boot (void)
>> >> {
>> >>   grub_printf ("boot_drive=%d\n", boot_drive);
>> >>   grub_chainloader_real_boot (boot_drive, boot_part_addr);
>> >>
>> >>   /* Never reach here.  */
>> >>   return GRUB_ERR_NONE;
>> >> }
>> >>
>> >> --
>> >> Bean
>> >>
>> >>
>> >
>> > Hi,
>> >
>> > The value of boot drive is 0x80.
>> >
>> > This was the same value in disk->drive also.
>>
>> Hi,
>>
>> Interesting, perhaps %dx is changed somewhere. Please try the
>> following patch, it dumps the value of %dx just before jumping to the
>> boot sector.
>>
>> --
>> Bean
>
> The patch works and now Windows is booting perfectly fine from Grub2.
>
> I will go through the assembly and try to understand what modifications you have done.So there is a problem in Grub2 code, which needs to be fixed ?
>
> Till this point, I was chainloading grub from Grub2 and then chainloading Windows2008 from it.
>
> Thanks for the consistent help till this point and for the future also.

Hi,

That's strange, the patch doesn't do anything except output the value of dx:

 	/* set up to pass boot drive */
 	popl	%edx
+	movl	%edx, %edi

 	/* ESI must point to a partition table entry */
 	popl	%esi

 	call	prot_to_real
 	.code16
+
+	push	%dx
+	call	hex_out
+	push	%di
+	call	hex_out
+
 	ljmp	$0, $GRUB_MEMORY_MACHINE_BOOT_LOADER_ADDR
+
+hex_out:
+	pushw	%bp
+	movw	%sp, %bp
+	pushaw
+	movb	$0xE, %ah
+ 	movw	$7, %bx
+	movw	$4, %cx
+	movw	4(%bp), %dx
+1:
+	rol	$4, %dx
+	movb	%dl, %al
+	andb	$0xF, %al
+	cmpb	$10, %al
+	jb	2f
+	subb	$('0'-'A'+10), %al
+2:
+	addb	$'0', %al
+	int	$0x10
+	loop	1b
+	movb	$' ', %al
+	int	$0x10
+	popaw
+	popw	%bp
+	ret	$2
 	.code32

 #include "../loader.S"

Perhaps you can try:

1, %edi is used as backup register in case %edx is changed by
prot_to_real, you can remove "movl %edx, %edi", "push %di", "call
hex_out" and see if it still works.

2, It's possible that the bug is position related, replace "push %dx",
"call hex_out" with equal number of nop and see what happens.

-- 
Bean



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-10-14 11:34 Viswesh S
  0 siblings, 0 replies; 26+ messages in thread
From: Viswesh S @ 2008-10-14 11:34 UTC (permalink / raw)
  To: The development of GRUB 2

Hi,



----- Original Message ----
> From: Bean <bean123ch@gmail.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Monday, 29 September, 2008 4:20:57 PM
> Subject: Re: Windows,grub and grub2
> 
> On Mon, Sep 29, 2008 at 1:18 PM, Viswesh S wrote:
> > Hi,
> >
> >
> >
> > ----- Original Message ----
> >> From: Bean 
> >> To: The development of GRUB 2 
> >> Sent: Tuesday, 23 September, 2008 7:20:49 PM
> >> Subject: Re: Windows,grub and grub2
> >>
> >> On Tue, Sep 23, 2008 at 4:23 PM, Viswesh S wrote:
> >> >
> >> >
> >> >
> >> >
> >> > ----- Original Message ----
> >> >> From: Bean
> >> >> To: The development of GRUB 2
> >> >> Sent: Monday, 22 September, 2008 9:10:26 AM
> >> >> Subject: Re: Windows,grub and grub2
> >> >>
> >> >> On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S wrote:
> >> >> > Below is the dump of screen output while chainloading the ntfsnew file.
> >> >> > ***************************************
> >> >> > DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
> >> >> > CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
> >> >> >
> >> >> > DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 CX=07C0
> >> >> > DS=07C0 ES=0000 FG=0007 IP=0082
> >> >> > ******************************************
> >> >> > Could you please let me know the way to disassemble the binary file 
> without
> >> >> > any header.The way in which you decoded the boot record.
> >> >> >
> >> >> > Also one more thing to let you know is that,
> >> >> >
> >> >> > with the grub-1.96 ( without the chainloader patch of disk->dev->read() 
> ) ,
> >> >> > with windows2003 in partition 1 and linux in partition 3, when we
> >> chainload,
> >> >> > if we look at the partition table passed to another bootloader ie 
> location
> >> >> > 0x7be - we can see that it is junk, but the surprising point is that, in
> >> >> > this case as I have mentioned in my first mail, windows boots up from
> >> >> > grub2.So it is that the partition table is not required for the 
> chainloader
> >> >> > thing and just the boot record is sufficient
> >> >>
> >> >> Hi,
> >> >>
> >> >> Oh, sorry for another long delay. I disassemble the file with ida,
> >> >> which is an amazing tool. I don't know if there is open source
> >> >> alternative, please let me know if you find one.
> >> >>
> >> >> The output from ida is in masm format, I modify it a bit so that it
> >> >> can be compiled using nasm. Please note that nasm doesn't generate the
> >> >> same binary file as original one, but you can get an idea what it
> >> >> does.
> >> >>
> >> >> From the output, the program fails at the second int 13 call, int
> >> >> 13/ah = 48h. Although I notice that DL=0, which is not supposed to
> >> >> happen. Perhaps you can add a grub_printf in grub_chainloader_boot to
> >> >> show the value of boot drive:
> >> >>
> >> >> static grub_err_t
> >> >> grub_chainloader_boot (void)
> >> >> {
> >> >>   grub_printf ("boot_drive=%d\n", boot_drive);
> >> >>   grub_chainloader_real_boot (boot_drive, boot_part_addr);
> >> >>
> >> >>   /* Never reach here.  */
> >> >>   return GRUB_ERR_NONE;
> >> >> }
> >> >>
> >> >> --
> >> >> Bean
> >> >>
> >> >>
> >> >
> >> > Hi,
> >> >
> >> > The value of boot drive is 0x80.
> >> >
> >> > This was the same value in disk->drive also.
> >>
> >> Hi,
> >>
> >> Interesting, perhaps %dx is changed somewhere. Please try the
> >> following patch, it dumps the value of %dx just before jumping to the
> >> boot sector.
> >>
> >> --
> >> Bean
> >
> > The patch works and now Windows is booting perfectly fine from Grub2.
> >
> > I will go through the assembly and try to understand what modifications you 
> have done.So there is a problem in Grub2 code, which needs to be fixed ?
> >
> > Till this point, I was chainloading grub from Grub2 and then chainloading 
> Windows2008 from it.
> >
> > Thanks for the consistent help till this point and for the future also.
> 
> Hi,
> 
> That's strange, the patch doesn't do anything except output the value of dx:
> 
>     /* set up to pass boot drive */
>     popl    %edx
> +    movl    %edx, %edi
> 
>     /* ESI must point to a partition table entry */
>     popl    %esi
> 
>     call    prot_to_real
>     .code16
> +
> +    push    %dx
> +    call    hex_out
> +    push    %di
> +    call    hex_out
> +
>     ljmp    $0, $GRUB_MEMORY_MACHINE_BOOT_LOADER_ADDR
> +
> +hex_out:
> +    pushw    %bp
> +    movw    %sp, %bp
> +    pushaw
> +    movb    $0xE, %ah
> +     movw    $7, %bx
> +    movw    $4, %cx
> +    movw    4(%bp), %dx
> +1:
> +    rol    $4, %dx
> +    movb    %dl, %al
> +    andb    $0xF, %al
> +    cmpb    $10, %al
> +    jb    2f
> +    subb    $('0'-'A'+10), %al
> +2:
> +    addb    $'0', %al
> +    int    $0x10
> +    loop    1b
> +    movb    $' ', %al
> +    int    $0x10
> +    popaw
> +    popw    %bp
> +    ret    $2
>     .code32
> 
> #include "../loader.S"
> 
> Perhaps you can try:
> 
> 1, %edi is used as backup register in case %edx is changed by
> prot_to_real, you can remove "movl %edx, %edi", "push %di", "call
> hex_out" and see if it still works.
> 
> 2, It's possible that the bug is position related, replace "push %dx",
> "call hex_out" with equal number of nop and see what happens.
> 
> -- 
> Bean
> 

We can remove the patch completely, without putting nop also, but just comment out the following code

/*
    xorl    %eax, %eax
    call    EXT_C(grub_gate_a20)
*/

This is the only difference and when I comment out this, Windows boots up from Grub2.

Regards,
Viswesh


      Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
@ 2008-11-08 17:26 Viswesh S
  2008-11-10 13:08 ` James Shewey
  0 siblings, 1 reply; 26+ messages in thread
From: Viswesh S @ 2008-11-08 17:26 UTC (permalink / raw)
  To: The development of GRUB 2

Hi,



----- Original Message ----
> From: Viswesh S <viswesh_vichu@yahoo.com>
> To: The development of GRUB 2 <grub-devel@gnu.org>
> Sent: Tuesday, 14 October, 2008 5:04:53 PM
> Subject: Re: Windows,grub and grub2
> 
> Hi,
> 
> 
> 
> ----- Original Message ----
> > From: Bean 
> > To: The development of GRUB 2 
> > Sent: Monday, 29 September, 2008 4:20:57 PM
> > Subject: Re: Windows,grub and grub2
> > 
> > On Mon, Sep 29, 2008 at 1:18 PM, Viswesh S wrote:
> > > Hi,
> > >
> > >
> > >
> > > ----- Original Message ----
> > >> From: Bean 
> > >> To: The development of GRUB 2 
> > >> Sent: Tuesday, 23 September, 2008 7:20:49 PM
> > >> Subject: Re: Windows,grub and grub2
> > >>
> > >> On Tue, Sep 23, 2008 at 4:23 PM, Viswesh S wrote:
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > ----- Original Message ----
> > >> >> From: Bean
> > >> >> To: The development of GRUB 2
> > >> >> Sent: Monday, 22 September, 2008 9:10:26 AM
> > >> >> Subject: Re: Windows,grub and grub2
> > >> >>
> > >> >> On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S wrote:
> > >> >> > Below is the dump of screen output while chainloading the ntfsnew 
> file.
> > >> >> > ***************************************
> > >> >> > DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
> > >> >> > CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
> > >> >> >
> > >> >> > DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100 
> CX=07C0
> > >> >> > DS=07C0 ES=0000 FG=0007 IP=0082
> > >> >> > ******************************************
> > >> >> > Could you please let me know the way to disassemble the binary file 
> > without
> > >> >> > any header.The way in which you decoded the boot record.
> > >> >> >
> > >> >> > Also one more thing to let you know is that,
> > >> >> >
> > >> >> > with the grub-1.96 ( without the chainloader patch of 
> disk->dev->read() 
> > ) ,
> > >> >> > with windows2003 in partition 1 and linux in partition 3, when we
> > >> chainload,
> > >> >> > if we look at the partition table passed to another bootloader ie 
> > location
> > >> >> > 0x7be - we can see that it is junk, but the surprising point is that, 
> in
> > >> >> > this case as I have mentioned in my first mail, windows boots up from
> > >> >> > grub2.So it is that the partition table is not required for the 
> > chainloader
> > >> >> > thing and just the boot record is sufficient
> > >> >>
> > >> >> Hi,
> > >> >>
> > >> >> Oh, sorry for another long delay. I disassemble the file with ida,
> > >> >> which is an amazing tool. I don't know if there is open source
> > >> >> alternative, please let me know if you find one.
> > >> >>
> > >> >> The output from ida is in masm format, I modify it a bit so that it
> > >> >> can be compiled using nasm. Please note that nasm doesn't generate the
> > >> >> same binary file as original one, but you can get an idea what it
> > >> >> does.
> > >> >>
> > >> >> From the output, the program fails at the second int 13 call, int
> > >> >> 13/ah = 48h. Although I notice that DL=0, which is not supposed to
> > >> >> happen. Perhaps you can add a grub_printf in grub_chainloader_boot to
> > >> >> show the value of boot drive:
> > >> >>
> > >> >> static grub_err_t
> > >> >> grub_chainloader_boot (void)
> > >> >> {
> > >> >>  grub_printf ("boot_drive=%d\n", boot_drive);
> > >> >>  grub_chainloader_real_boot (boot_drive, boot_part_addr);
> > >> >>
> > >> >>  /* Never reach here.  */
> > >> >>  return GRUB_ERR_NONE;
> > >> >> }
> > >> >>
> > >> >> --
> > >> >> Bean
> > >> >>
> > >> >>
> > >> >
> > >> > Hi,
> > >> >
> > >> > The value of boot drive is 0x80.
> > >> >
> > >> > This was the same value in disk->drive also.
> > >>
> > >> Hi,
> > >>
> > >> Interesting, perhaps %dx is changed somewhere. Please try the
> > >> following patch, it dumps the value of %dx just before jumping to the
> > >> boot sector.
> > >>
> > >> --
> > >> Bean
> > >
> > > The patch works and now Windows is booting perfectly fine from Grub2.
> > >
> > > I will go through the assembly and try to understand what modifications you 
> > have done.So there is a problem in Grub2 code, which needs to be fixed ?
> > >
> > > Till this point, I was chainloading grub from Grub2 and then chainloading 
> > Windows2008 from it.
> > >
> > > Thanks for the consistent help till this point and for the future also.
> > 
> > Hi,
> > 
> > That's strange, the patch doesn't do anything except output the value of dx:
> > 
> >    /* set up to pass boot drive */
> >    popl    %edx
> > +    movl    %edx, %edi
> > 
> >    /* ESI must point to a partition table entry */
> >    popl    %esi
> > 
> >    call    prot_to_real
> >    .code16
> > +
> > +    push    %dx
> > +    call    hex_out
> > +    push    %di
> > +    call    hex_out
> > +
> >    ljmp    $0, $GRUB_MEMORY_MACHINE_BOOT_LOADER_ADDR
> > +
> > +hex_out:
> > +    pushw    %bp
> > +    movw    %sp, %bp
> > +    pushaw
> > +    movb    $0xE, %ah
> > +    movw    $7, %bx
> > +    movw    $4, %cx
> > +    movw    4(%bp), %dx
> > +1:
> > +    rol    $4, %dx
> > +    movb    %dl, %al
> > +    andb    $0xF, %al
> > +    cmpb    $10, %al
> > +    jb    2f
> > +    subb    $('0'-'A'+10), %al
> > +2:
> > +    addb    $'0', %al
> > +    int    $0x10
> > +    loop    1b
> > +    movb    $' ', %al
> > +    int    $0x10
> > +    popaw
> > +    popw    %bp
> > +    ret    $2
> >    .code32
> > 
> > #include "../loader.S"
> > 
> > Perhaps you can try:
> > 
> > 1, %edi is used as backup register in case %edx is changed by
> > prot_to_real, you can remove "movl %edx, %edi", "push %di", "call
> > hex_out" and see if it still works.
> > 
> > 2, It's possible that the bug is position related, replace "push %dx",
> > "call hex_out" with equal number of nop and see what happens.
> > 
> > -- 
> > Bean
> > 
> 
> We can remove the patch completely, without putting nop also, but just comment 
> out the following code
> 
> /*
>     xorl    %eax, %eax
>     call    EXT_C(grub_gate_a20)
> */
> 
> This is the only difference and when I comment out this, Windows boots up from 
> Grub2.
> 
> Regards,
> Viswesh
> 
> 

So is this a bug in grub2 ?

Can you people confirm this ?

Viswesh



      Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: Windows,grub and grub2
  2008-11-08 17:26 Viswesh S
@ 2008-11-10 13:08 ` James Shewey
  0 siblings, 0 replies; 26+ messages in thread
From: James Shewey @ 2008-11-10 13:08 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 7303 bytes --]

I have been trying to get windows and OS X to boot on my Mac Book Pro
(booting grub2 natively -- no chainloading) but have been unable to get it
to boot chainloaded objects. I haven't really been able to troubleshoot it
yet. I am using a CVS build, but it is about 5 weeks old now. I just haven't
had a chance to troubleshoot this any further because I have been busy
moving, so take this for what it is worth.

James

On Sat, Nov 8, 2008 at 12:26 PM, Viswesh S <viswesh_vichu@yahoo.com> wrote:

> Hi,
>
>
>
> ----- Original Message ----
> > From: Viswesh S <viswesh_vichu@yahoo.com>
> > To: The development of GRUB 2 <grub-devel@gnu.org>
> > Sent: Tuesday, 14 October, 2008 5:04:53 PM
> > Subject: Re: Windows,grub and grub2
> >
> > Hi,
> >
> >
> >
> > ----- Original Message ----
> > > From: Bean
> > > To: The development of GRUB 2
> > > Sent: Monday, 29 September, 2008 4:20:57 PM
> > > Subject: Re: Windows,grub and grub2
> > >
> > > On Mon, Sep 29, 2008 at 1:18 PM, Viswesh S wrote:
> > > > Hi,
> > > >
> > > >
> > > >
> > > > ----- Original Message ----
> > > >> From: Bean
> > > >> To: The development of GRUB 2
> > > >> Sent: Tuesday, 23 September, 2008 7:20:49 PM
> > > >> Subject: Re: Windows,grub and grub2
> > > >>
> > > >> On Tue, Sep 23, 2008 at 4:23 PM, Viswesh S wrote:
> > > >> >
> > > >> >
> > > >> >
> > > >> >
> > > >> > ----- Original Message ----
> > > >> >> From: Bean
> > > >> >> To: The development of GRUB 2
> > > >> >> Sent: Monday, 22 September, 2008 9:10:26 AM
> > > >> >> Subject: Re: Windows,grub and grub2
> > > >> >>
> > > >> >> On Tue, Sep 9, 2008 at 2:00 PM, Viswesh S wrote:
> > > >> >> > Below is the dump of screen output while chainloading the
> ntfsnew
> > file.
> > > >> >> > ***************************************
> > > >> >> > DI=CFF0 SI=07EE BP=1FF0 SP=1FE8 BX=0000 DX=0000 CX=0000 AX=0000
> > > >> >> > CS=0000 SS=0000 DS=0000 ES=0000 FG=0246 IP=7C57
> > > >> >> >
> > > >> >> > DI=7FF0 SI=07EE BP=1FF0 SP=7BF4 BX=55AA DX=0000 CX=0000 AX=0100
> > CX=07C0
> > > >> >> > DS=07C0 ES=0000 FG=0007 IP=0082
> > > >> >> > ******************************************
> > > >> >> > Could you please let me know the way to disassemble the binary
> file
> > > without
> > > >> >> > any header.The way in which you decoded the boot record.
> > > >> >> >
> > > >> >> > Also one more thing to let you know is that,
> > > >> >> >
> > > >> >> > with the grub-1.96 ( without the chainloader patch of
> > disk->dev->read()
> > > ) ,
> > > >> >> > with windows2003 in partition 1 and linux in partition 3, when
> we
> > > >> chainload,
> > > >> >> > if we look at the partition table passed to another bootloader
> ie
> > > location
> > > >> >> > 0x7be - we can see that it is junk, but the surprising point is
> that,
> > in
> > > >> >> > this case as I have mentioned in my first mail, windows boots
> up from
> > > >> >> > grub2.So it is that the partition table is not required for the
> > > chainloader
> > > >> >> > thing and just the boot record is sufficient
> > > >> >>
> > > >> >> Hi,
> > > >> >>
> > > >> >> Oh, sorry for another long delay. I disassemble the file with
> ida,
> > > >> >> which is an amazing tool. I don't know if there is open source
> > > >> >> alternative, please let me know if you find one.
> > > >> >>
> > > >> >> The output from ida is in masm format, I modify it a bit so that
> it
> > > >> >> can be compiled using nasm. Please note that nasm doesn't
> generate the
> > > >> >> same binary file as original one, but you can get an idea what it
> > > >> >> does.
> > > >> >>
> > > >> >> From the output, the program fails at the second int 13 call, int
> > > >> >> 13/ah = 48h. Although I notice that DL=0, which is not supposed
> to
> > > >> >> happen. Perhaps you can add a grub_printf in
> grub_chainloader_boot to
> > > >> >> show the value of boot drive:
> > > >> >>
> > > >> >> static grub_err_t
> > > >> >> grub_chainloader_boot (void)
> > > >> >> {
> > > >> >>  grub_printf ("boot_drive=%d\n", boot_drive);
> > > >> >>  grub_chainloader_real_boot (boot_drive, boot_part_addr);
> > > >> >>
> > > >> >>  /* Never reach here.  */
> > > >> >>  return GRUB_ERR_NONE;
> > > >> >> }
> > > >> >>
> > > >> >> --
> > > >> >> Bean
> > > >> >>
> > > >> >>
> > > >> >
> > > >> > Hi,
> > > >> >
> > > >> > The value of boot drive is 0x80.
> > > >> >
> > > >> > This was the same value in disk->drive also.
> > > >>
> > > >> Hi,
> > > >>
> > > >> Interesting, perhaps %dx is changed somewhere. Please try the
> > > >> following patch, it dumps the value of %dx just before jumping to
> the
> > > >> boot sector.
> > > >>
> > > >> --
> > > >> Bean
> > > >
> > > > The patch works and now Windows is booting perfectly fine from Grub2.
> > > >
> > > > I will go through the assembly and try to understand what
> modifications you
> > > have done.So there is a problem in Grub2 code, which needs to be fixed
> ?
> > > >
> > > > Till this point, I was chainloading grub from Grub2 and then
> chainloading
> > > Windows2008 from it.
> > > >
> > > > Thanks for the consistent help till this point and for the future
> also.
> > >
> > > Hi,
> > >
> > > That's strange, the patch doesn't do anything except output the value
> of dx:
> > >
> > >    /* set up to pass boot drive */
> > >    popl    %edx
> > > +    movl    %edx, %edi
> > >
> > >    /* ESI must point to a partition table entry */
> > >    popl    %esi
> > >
> > >    call    prot_to_real
> > >    .code16
> > > +
> > > +    push    %dx
> > > +    call    hex_out
> > > +    push    %di
> > > +    call    hex_out
> > > +
> > >    ljmp    $0, $GRUB_MEMORY_MACHINE_BOOT_LOADER_ADDR
> > > +
> > > +hex_out:
> > > +    pushw    %bp
> > > +    movw    %sp, %bp
> > > +    pushaw
> > > +    movb    $0xE, %ah
> > > +    movw    $7, %bx
> > > +    movw    $4, %cx
> > > +    movw    4(%bp), %dx
> > > +1:
> > > +    rol    $4, %dx
> > > +    movb    %dl, %al
> > > +    andb    $0xF, %al
> > > +    cmpb    $10, %al
> > > +    jb    2f
> > > +    subb    $('0'-'A'+10), %al
> > > +2:
> > > +    addb    $'0', %al
> > > +    int    $0x10
> > > +    loop    1b
> > > +    movb    $' ', %al
> > > +    int    $0x10
> > > +    popaw
> > > +    popw    %bp
> > > +    ret    $2
> > >    .code32
> > >
> > > #include "../loader.S"
> > >
> > > Perhaps you can try:
> > >
> > > 1, %edi is used as backup register in case %edx is changed by
> > > prot_to_real, you can remove "movl %edx, %edi", "push %di", "call
> > > hex_out" and see if it still works.
> > >
> > > 2, It's possible that the bug is position related, replace "push %dx",
> > > "call hex_out" with equal number of nop and see what happens.
> > >
> > > --
> > > Bean
> > >
> >
> > We can remove the patch completely, without putting nop also, but just
> comment
> > out the following code
> >
> > /*
> >     xorl    %eax, %eax
> >     call    EXT_C(grub_gate_a20)
> > */
> >
> > This is the only difference and when I comment out this, Windows boots up
> from
> > Grub2.
> >
> > Regards,
> > Viswesh
> >
> >
>
> So is this a bug in grub2 ?
>
> Can you people confirm this ?
>
> Viswesh
>
>
>
>      Add more friends to your messenger and enjoy! Go to
> http://messenger.yahoo.com/invite/
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel
>

[-- Attachment #2: Type: text/html, Size: 11205 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2008-11-10 13:08 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-09  6:00 Windows,grub and grub2 Viswesh S
2008-09-22  3:40 ` Bean
  -- strict thread matches above, loose matches on Subject: below --
2008-11-08 17:26 Viswesh S
2008-11-10 13:08 ` James Shewey
2008-10-14 11:34 Viswesh S
2008-09-29  5:18 Viswesh S
2008-09-29 10:50 ` Bean
2008-09-23  8:23 Viswesh S
2008-09-23 13:50 ` Bean
2008-09-01 17:01 Viswesh S
2008-09-04 17:37 ` Bean
2008-09-01 15:27 Viswesh S
2008-09-01 15:35 ` Bean
2008-09-01 13:53 Viswesh S
2008-09-01 14:35 ` Bean
2008-09-01 13:37 Viswesh S
2008-09-01 13:51 ` Bean
2008-09-01 10:48 Viswesh S
2008-09-01 13:02 ` Bean
2008-09-01  9:08 Viswesh S
2008-09-01 10:16 ` Bean
2008-08-29 20:29 Viswesh S
2008-08-30  4:30 ` Bean
2008-08-30  5:31   ` Bean
2008-08-30 15:03   ` Vesa Jääskeläinen
2008-08-30 15:21     ` Bean

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.