From owner-freebsd-fs@FreeBSD.ORG Thu Mar 14 11:53:27 2013 Return-Path: Delivered-To: freebsd-fs@FreeBSD.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id D3E3D8F5 for ; Thu, 14 Mar 2013 11:53:27 +0000 (UTC) (envelope-from peter.maloney@brockmann-consult.de) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by mx1.freebsd.org (Postfix) with ESMTP id 7A7CC73B for ; Thu, 14 Mar 2013 11:53:27 +0000 (UTC) Received: from [10.3.0.26] ([141.4.215.32]) by mrelayeu.kundenserver.de (node=mreu1) with ESMTP (Nemesis) id 0MURRH-1U7cHA1ROl-00R428; Thu, 14 Mar 2013 12:53:15 +0100 Message-ID: <5141BA2A.9080904@brockmann-consult.de> Date: Thu, 14 Mar 2013 12:53:14 +0100 From: Peter Maloney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Bruce Evans Subject: Re: Aligning MBR for ZFS boot help References: <513C1629.50501@caltel.com> <513CD9AB.5080903@caltel.com> <513CE369.4030303@caltel.com> <1362951595.99445.2.camel@btw.pki2.com> <513E1208.5020804@caltel.com> <20130312203745.A1130@besplex.bde.org> <513F8F04.60206@caltel.com> <20130313232247.B1078@besplex.bde.org> <5140F373.1010907@caltel.com> <20130314195715.Y909@besplex.bde.org> <5141B8B6.4010209@brockmann-consult.de> In-Reply-To: <5141B8B6.4010209@brockmann-consult.de> X-Enigmail-Version: 1.5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:iidejYT6c3uT7Wc+/2P8aXqCpJesMuK8sHf15MFU3+Q AM5plOsrCOEiO2cpPkHan3AdFyGG4niJpP7GjP0o2Y8UgmeCTN 5VyhCA1Q7aUG32GO4ZEjF6LT8CH4FSW6LhhBhMycjQPKrqa2k7 /MGQ+5xcbjJBzgR+wD5Zi5ERfSwprFVB+/CV8STL+Jub2F0q88 P2l8Cu31wusKYNGvLY2BrvHlalVzZFhM6td1Z+S+Lu63oLM/Va 1YsVIiwOC0ebObryTVg1PiAjZWhhZ0rfbGxxlzk64GdfizYo6A 6HzdUqIIAbXTh59AfdYLXrkEziGTmiFWH6w0NKfI2kK1lMqhO4 KDnSf7TGn1aeMXpVObB0M4kcT1eod9RNiLCF3RYoP Cc: freebsd-fs@FreeBSD.org X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Mar 2013 11:53:27 -0000 On 2013-03-14 12:47, Peter Maloney wrote: > On 2013-03-14 10:41, Bruce Evans wrote: >> On Wed, 13 Mar 2013, Cody Ritts wrote: >> >>> So, by setting those CHS values I am: >>> making the partition table more compatible with other operating >>> systems and BIOSes? >>> and giving some utilities the CHS stuff they need to function right? >> It's not completely clear that S=32 H=64 is portable, but it is what most >> old SCSI BIOSes used. >> >> Also, if the disk already has some partitions with a certain geometry, >> use >> the same geometry for other partitions and don't use fdisk's defaults if >> they differ. >> >> Bruce > Oh man... I thought yeah that -a 1 or -a 2048 should work, but it > doesn't. And then I thought I'd be extra crafty and use dd to directly > write the partition table myself and send that as a solution to you > guys, but even that fails! > > > Here's writing a 63 alignment mbr to the disk, just to prove dd can do this: > > # gdd if=mbr.img of=/dev/md10 bs=512 count=1 > 1+0 records in > 1+0 records out > 512 bytes (512 B) copied, 16.8709 s, 0.0 kB/s > > # gpart show md10 > => 63 4194241 md10 MBR (2.0G) > 63 40950 1 freebsd (20M) > 41013 4153291 - free - (2G) > > Here's changing the start sector on the first partition to 2048 ;) > Writing to the device works with bs=512, but not bs=1, so we use a file > and bs=1 to do our edits, and then bs=512 to the disk. > > # gdd if=<(echo -ne "\x00\x08" ) of=mbr.img bs=1 seek=454 > 2+0 records in > 2+0 records out > 2 bytes (2 B) copied, 0.000112023 s, 17.9 kB/s > > Here's writing the new 2048 aligned mbr to the disk: > > # gdd if=mbr.img of=/dev/md10 bs=1 count=1 > gdd: writing `/dev/md10': *Invalid argument* > 1+0 records in > 0+0 records out > 0 bytes (0 B) copied, 21.0247 s, 0.0 kB/s > > :O > _________________________________________ Oh, and I almost forgot the most important part... the solution! The solution is to align to 129024 sectors instead, which fits the needs of modern 512/1024/2048 alignment, and also the crazy old thing. # gpart add -t freebsd -a 129024 -s 1M md10 md10s1 added # gpart add -t freebsd -a 129024 -s 1511M md10 md10s2 added # gpart show md10 => 63 4194241 md10 MBR (2.0G) 63 128961 - free - (63M) 129024 2016 1 freebsd (1M) 131040 127008 - free - (62M) 258048 2967552 2 freebsd (1.4G) 3225600 968704 - free - (473M) Above -s numbers are basically random for testing. So now let's check that they are indeed aligned, with the modulus in bc. (Note that strangely, % is only modulus if scale=0 in bc) # bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 129024%2048 0 258048%2048 0