From 1e8c6d3d412ce472d3173a78e285697b71803fb5 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 9 Mar 2012 06:10:08 +0100 Subject: disk/mbr: always use 512 byte sectors (imported changes from sources) --- sys/src/cmd/disk/mbr.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sys/src/cmd/disk/mbr.c b/sys/src/cmd/disk/mbr.c index c7494a011..9292fe974 100644 --- a/sys/src/cmd/disk/mbr.c +++ b/sys/src/cmd/disk/mbr.c @@ -145,10 +145,16 @@ main(int argc, char **argv) if(disk->type == Tfloppy) fatal("will not install mbr on floppy"); - if(disk->secsize != 512) - fatal("secsize %d invalid", disk->secsize); + /* + * we need to cope with 4k-byte sectors on some newer disks. + * we're only interested in 512 bytes of mbr, so + * on 4k disks, rely on /dev/sd to read-modify-write. + */ + secsize = 512; + if(disk->secsize != secsize) + fprint(2, "%s: sector size %lld not %ld, should be okay\n", + argv0, disk->secsize, secsize); - secsize = disk->secsize; buf = malloc(secsize*(disk->s+1)); mbr = malloc(secsize*disk->s); if(buf == nil || mbr == nil) -- cgit v1.2.3