* Re: Bug#632048: segfault in grub-setup
[not found] <chaz20110906073924.GE23847@seebyte.com>
@ 2011-09-06 8:18 ` Colin Watson
2011-09-06 10:45 ` Stephane Chazelas
2011-09-06 14:50 ` Stephane Chazelas
0 siblings, 2 replies; 5+ messages in thread
From: Colin Watson @ 2011-09-06 8:18 UTC (permalink / raw)
To: grub-devel; +Cc: 632048-forwarded, Stephane Chazelas
On Tue, Sep 06, 2011 at 08:39:24AM +0100, Stephane Chazelas wrote:
> I do get a segfault as well when doing a grub-setup/grub-install
> on a mdraid with 1.2 metadata.
>
> The segv is in:
>
> grub_util_biosdisk_is_floppy() because the disk->id for the root
> device is not a bios disk id, but a big number that is the
> "array id". The patch below seems to fix it for me, though I
> can't tell it's the right fix or not (probably not).
This fix makes sense to me; calling grub_util_biosdisk_is_floppy on
disks that aren't GRUB_DISK_DEVICE_BIOSDISK_ID doesn't make sense.
grub-devel, second opinion?
> --- a/util/grub-setup.c 2011-09-05 12:11:31.864955442 +0100
> +++ b/util/grub-setup.c 2011-09-05 13:00:24.891368760 +0100
> @@ -315,7 +315,7 @@
> /* If DEST_DRIVE is a hard disk, enable the workaround, which is
> for buggy BIOSes which don't pass boot drive correctly. Instead,
> they pass 0x00 or 0x01 even when booted from 0x80. */
> - if (!allow_floppy && !grub_util_biosdisk_is_floppy (dest_dev->disk))
> + if (!allow_floppy && dest_dev->disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID && !grub_util_biosdisk_is_floppy (dest_dev->disk))
> /* Replace the jmp (2 bytes) with double nop's. */
> *boot_drive_check = 0x9090;
> }
Thanks,
--
Colin Watson [cjwatson@ubuntu.com]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#632048: segfault in grub-setup
2011-09-06 8:18 ` Bug#632048: segfault in grub-setup Colin Watson
@ 2011-09-06 10:45 ` Stephane Chazelas
2011-09-06 14:50 ` Stephane Chazelas
1 sibling, 0 replies; 5+ messages in thread
From: Stephane Chazelas @ 2011-09-06 10:45 UTC (permalink / raw)
To: Colin Watson; +Cc: grub-devel, 632048-forwarded
2011-09-06 09:18:57 +0100, Colin Watson:
> On Tue, Sep 06, 2011 at 08:39:24AM +0100, Stephane Chazelas wrote:
> > I do get a segfault as well when doing a grub-setup/grub-install
> > on a mdraid with 1.2 metadata.
> >
> > The segv is in:
> >
> > grub_util_biosdisk_is_floppy() because the disk->id for the root
> > device is not a bios disk id, but a big number that is the
> > "array id". The patch below seems to fix it for me, though I
> > can't tell it's the right fix or not (probably not).
>
> This fix makes sense to me; calling grub_util_biosdisk_is_floppy on
> disks that aren't GRUB_DISK_DEVICE_BIOSDISK_ID doesn't make sense.
> grub-devel, second opinion?
>
> > --- a/util/grub-setup.c 2011-09-05 12:11:31.864955442 +0100
> > +++ b/util/grub-setup.c 2011-09-05 13:00:24.891368760 +0100
> > @@ -315,7 +315,7 @@
> > /* If DEST_DRIVE is a hard disk, enable the workaround, which is
> > for buggy BIOSes which don't pass boot drive correctly. Instead,
> > they pass 0x00 or 0x01 even when booted from 0x80. */
> > - if (!allow_floppy && !grub_util_biosdisk_is_floppy (dest_dev->disk))
> > + if (!allow_floppy && dest_dev->disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID && !grub_util_biosdisk_is_floppy (dest_dev->disk))
> > /* Replace the jmp (2 bytes) with double nop's. */
> > *boot_drive_check = 0x9090;
> > }
[...]
The fact that the problem doesn't occur with mdraid-0.9 makes me
think the problem might be somewhere else though (like that
dest_dev->disk should be a biosdisk above)..
--
Stephane
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#632048: segfault in grub-setup
2011-09-06 8:18 ` Bug#632048: segfault in grub-setup Colin Watson
2011-09-06 10:45 ` Stephane Chazelas
@ 2011-09-06 14:50 ` Stephane Chazelas
2011-09-06 18:50 ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-04 12:44 ` Vladimir 'φ-coder/phcoder' Serbinenko
1 sibling, 2 replies; 5+ messages in thread
From: Stephane Chazelas @ 2011-09-06 14:50 UTC (permalink / raw)
To: Colin Watson; +Cc: grub-devel, 632048
2011-09-06 09:18:57 +0100, Colin Watson:
> On Tue, Sep 06, 2011 at 08:39:24AM +0100, Stephane Chazelas wrote:
> > I do get a segfault as well when doing a grub-setup/grub-install
> > on a mdraid with 1.2 metadata.
> >
> > The segv is in:
> >
> > grub_util_biosdisk_is_floppy() because the disk->id for the root
> > device is not a bios disk id, but a big number that is the
> > "array id". The patch below seems to fix it for me, though I
> > can't tell it's the right fix or not (probably not).
>
> This fix makes sense to me; calling grub_util_biosdisk_is_floppy on
> disks that aren't GRUB_DISK_DEVICE_BIOSDISK_ID doesn't make sense.
> grub-devel, second opinion?
>
> > --- a/util/grub-setup.c 2011-09-05 12:11:31.864955442 +0100
> > +++ b/util/grub-setup.c 2011-09-05 13:00:24.891368760 +0100
> > @@ -315,7 +315,7 @@
> > /* If DEST_DRIVE is a hard disk, enable the workaround, which is
> > for buggy BIOSes which don't pass boot drive correctly. Instead,
> > they pass 0x00 or 0x01 even when booted from 0x80. */
> > - if (!allow_floppy && !grub_util_biosdisk_is_floppy (dest_dev->disk))
> > + if (!allow_floppy && dest_dev->disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID && !grub_util_biosdisk_is_floppy (dest_dev->disk))
> > /* Replace the jmp (2 bytes) with double nop's. */
> > *boot_drive_check = 0x9090;
> > }
[...]
Well, anyway, even after that patch, it still doesn't work
grub-install /dev/md0
reports success for nothing is written to any disk.
grub-install /dev/sda
or /dev/sdb
doesn't work because it complains about a partition-less disk.
Looks like it's not supported. Strange, as when started, grub
can happily see files on 1.2 raids (using mdraid1x). Or did I
miss something.
I'll have to revert to 0.9 metadata for now.
--
Stephane
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#632048: segfault in grub-setup
2011-09-06 14:50 ` Stephane Chazelas
@ 2011-09-06 18:50 ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-04 12:44 ` Vladimir 'φ-coder/phcoder' Serbinenko
1 sibling, 0 replies; 5+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2011-09-06 18:50 UTC (permalink / raw)
To: pkg-grub-devel, stephane.chazelas, 632048,
The development of GRUB 2, Colin Watson
[-- Attachment #1: Type: text/plain, Size: 2324 bytes --]
On 06.09.2011 18:50, Stephane Chazelas wrote:
> 2011-09-06 09:18:57 +0100, Colin Watson:
>> On Tue, Sep 06, 2011 at 08:39:24AM +0100, Stephane Chazelas wrote:
>>> I do get a segfault as well when doing a grub-setup/grub-install
>>> on a mdraid with 1.2 metadata.
>>>
>>> The segv is in:
>>>
>>> grub_util_biosdisk_is_floppy() because the disk->id for the root
>>> device is not a bios disk id, but a big number that is the
>>> "array id". The patch below seems to fix it for me, though I
>>> can't tell it's the right fix or not (probably not).
>> This fix makes sense to me; calling grub_util_biosdisk_is_floppy on
>> disks that aren't GRUB_DISK_DEVICE_BIOSDISK_ID doesn't make sense.
>> grub-devel, second opinion?
>>
>>> --- a/util/grub-setup.c 2011-09-05 12:11:31.864955442 +0100
>>> +++ b/util/grub-setup.c 2011-09-05 13:00:24.891368760 +0100
>>> @@ -315,7 +315,7 @@
>>> /* If DEST_DRIVE is a hard disk, enable the workaround, which is
>>> for buggy BIOSes which don't pass boot drive correctly. Instead,
>>> they pass 0x00 or 0x01 even when booted from 0x80. */
>>> - if (!allow_floppy && !grub_util_biosdisk_is_floppy (dest_dev->disk))
>>> + if (!allow_floppy && dest_dev->disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID && !grub_util_biosdisk_is_floppy (dest_dev->disk))
>>> /* Replace the jmp (2 bytes) with double nop's. */
>>> *boot_drive_check = 0x9090;
>>> }
> [...]
>
> Well, anyway, even after that patch, it still doesn't work
>
> grub-install /dev/md0
> reports success for nothing is written to any disk.
>
This command supposes that md0 is used as a disk for a VM
> grub-install /dev/sda
> or /dev/sdb
>
> doesn't work because it complains about a partition-less disk.
>
Because you can't use RAID on disks for booting (except some cases but
it's not recommended even if they apply). Make a RAID of partitions and
leave 1M before the start of the single partition on the disk.
GRUB has done its job in telling that your setup is unbootable.
> Looks like it's not supported. Strange, as when started, grub
> can happily see files on 1.2 raids (using mdraid1x). Or did I
> miss something.
>
> I'll have to revert to 0.9 metadata for now.
>
--
Regards
Vladimir 'φ-coder/phcoder' Serbinenko
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 294 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Bug#632048: segfault in grub-setup
2011-09-06 14:50 ` Stephane Chazelas
2011-09-06 18:50 ` Vladimir 'φ-coder/phcoder' Serbinenko
@ 2012-02-04 12:44 ` Vladimir 'φ-coder/phcoder' Serbinenko
1 sibling, 0 replies; 5+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2012-02-04 12:44 UTC (permalink / raw)
To: Stephane Chazelas, 632048-done; +Cc: grub-devel, Colin Watson
The problem with floppy part was fixed and the attempt to install on
partionless disk was a user error. Closing
On 06.09.2011 16:50, Stephane Chazelas wrote:
> 2011-09-06 09:18:57 +0100, Colin Watson:
>> On Tue, Sep 06, 2011 at 08:39:24AM +0100, Stephane Chazelas wrote:
>>> I do get a segfault as well when doing a grub-setup/grub-install
>>> on a mdraid with 1.2 metadata.
>>>
>>> The segv is in:
>>>
>>> grub_util_biosdisk_is_floppy() because the disk->id for the root
>>> device is not a bios disk id, but a big number that is the
>>> "array id". The patch below seems to fix it for me, though I
>>> can't tell it's the right fix or not (probably not).
>> This fix makes sense to me; calling grub_util_biosdisk_is_floppy on
>> disks that aren't GRUB_DISK_DEVICE_BIOSDISK_ID doesn't make sense.
>> grub-devel, second opinion?
>>
>>> --- a/util/grub-setup.c 2011-09-05 12:11:31.864955442 +0100
>>> +++ b/util/grub-setup.c 2011-09-05 13:00:24.891368760 +0100
>>> @@ -315,7 +315,7 @@
>>> /* If DEST_DRIVE is a hard disk, enable the workaround, which is
>>> for buggy BIOSes which don't pass boot drive correctly. Instead,
>>> they pass 0x00 or 0x01 even when booted from 0x80. */
>>> - if (!allow_floppy&& !grub_util_biosdisk_is_floppy (dest_dev->disk))
>>> + if (!allow_floppy&& dest_dev->disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID&& !grub_util_biosdisk_is_floppy (dest_dev->disk))
>>> /* Replace the jmp (2 bytes) with double nop's. */
>>> *boot_drive_check = 0x9090;
>>> }
> [...]
>
> Well, anyway, even after that patch, it still doesn't work
>
> grub-install /dev/md0
> reports success for nothing is written to any disk.
>
> grub-install /dev/sda
> or /dev/sdb
>
> doesn't work because it complains about a partition-less disk.
>
> Looks like it's not supported. Strange, as when started, grub
> can happily see files on 1.2 raids (using mdraid1x). Or did I
> miss something.
>
> I'll have to revert to 0.9 metadata for now.
>
--
Regards
Vladimir 'φ-coder/phcoder' Serbinenko
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-02-04 12:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <chaz20110906073924.GE23847@seebyte.com>
2011-09-06 8:18 ` Bug#632048: segfault in grub-setup Colin Watson
2011-09-06 10:45 ` Stephane Chazelas
2011-09-06 14:50 ` Stephane Chazelas
2011-09-06 18:50 ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-04 12:44 ` Vladimir 'φ-coder/phcoder' Serbinenko
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.