On 09/28/2010 05:26 PM, Colin Watson wrote: > On Tue, Sep 28, 2010 at 11:13:40AM -0400, Phillip Susi wrote: > >> On 9/27/2010 7:34 PM, Lennart Sorensen wrote: >> >>> FlexNet and similar like to write to track 0 sectors (outside partitioned >>> space) to store license info. This clobbers part of grub potentially. >>> So to make grub more tolerant of such misbehaviour, the idea suggested >>> was to add error correction to grub so it can survive attacks on its code >>> (and even potential disk errors). >>> >> Ahh, neat. Two sectors of ECC can fix one that is completely destroyed? >> I was under the impression that you could only fix a few corrupted >> bits, not an entire sector, but I suppose if you add enough ECC... >> > http://en.wikipedia.org/wiki/Reed-Solomon_error_correction says that t > check symbols can correct up to floor(t/2) symbols. (ISTR Vladimir said > he had a variant which did better than this, but I haven't looked yet.) > > You need one symbol to figure out an error location and one to find the correct value. Since I've chosen to do Reed-Solomon over GF(2^8) our symbols are bytes. Under the supposition that corruption happens in one sector you need only few bytes to figure which sector is corrupted and then 512 bytes to fix it. But I didn't implement this improvement >> I take it that someone has already made sure that the misbehaved >> software only uses a single sector? >> > All the examples I've seen so far are thus. Of course if you have > multiple infections then you're doomed, but hopefully the probability of > multiple infections goes down fairly sharply ... > > My branch uses every available sector for redundancy info. So if you have 2*n sectors left in MBR gap you can survive n corrupted sectors.
-- Regards Vladimir 'φ-coder/phcoder' Serbinenko
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel