[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Installation failed - and failed again...



Em 04-03-2013 08:32, Brian escreveu:
On Sun 03 Mar 2013 at 23:34:23 -0300, Joao Luis Meloni Assirati wrote:

Brian wrote:

fdisk leaves space at the beginning of the drive because GRUB requires
it to embed part of itself there. But GRUB will not go there because it
thinks it is overwriting data on the disk when it detects the iso9660
signature. This is by design.
This is clearly a bug, because the disk has a partition table and
therefore there is no useful data before the first partition.
It might be advisable to read

    http://lists.gnu.org/archive/html/grub-devel/2009-10/msg00207.html

before tackling the GRUB maintainers. The behaviour can be overridden
but not with --force.

That discussion seems absurd to me. Just put a flag --no-data-check to skip all possible data overwrite check on user request.

D-I uses partman for partitioning. It too leaves an embedding area which
contains the iso9660 data sector. The solution is to remember to do

    dd if=/dev/zero of=/dev/sdX count=65

before partitioning.
But this will destroy the partition table, which is not right if you have
other operating systems or partitions containing data. Maybe 'grub-install
--force<device>' would suffice?
The act of writing the isohybrid destroys all data on the drive so at
this point it is a bit late to worry about that. :)

In the present case, yes, but in general the installer cannot simply clear the partition table even if there is an isohybrid fragment in the mbr. The isohybrid may be ancient data that was later overwrited by a partition table.

Should the need arise to target the specific sector with the iso9660
data on it then something like

    dd if=/dev/zero of=/dev/sdc bs=512 seek=63 count=64

could be used.


Maybe this code could be placed in the installer just before calling grub-install. We are absolutely certain that this sector has no valuable data because there is a partition table.


Reply to: