Endian issues, LE write to BE partitions

John-Mark Gurney jmg at funkthat.com
Wed Oct 2 16:44:15 UTC 2013


Sean Bruno wrote this message on Wed, Oct 02, 2013 at 09:15 -0700:
> Using makefs from an amd64 host to build a f/s in a VTOC8 partition will
> destroy the entire partition table.  I simplified the test to simple dd
> to an existing partition and got the same result, exonerating mkfs
> 
> I suspect a lack of endian knowledge in geom itself, not
> geom_part_vtoc8.  
> 
> test case:
> 	using amd64 host (10.0 current) create monolothic image
> 		truncate -s+5G /var/tmp/myfile.img
> 		mdconfig -f /var/tmp/myfile.img
>         build and load geom_part_vtoc8 kernel module
> 	use gpart to create VTOC8 part table
> 	add partition to part table to yeild the following:
> 
> =>       0  10442250  md0  VTOC8  (5.0G)
>          0  10442250    1  freebsd-ufs  (5G)  

This looks like a user error, or an issue that VTOC allows you to
create/write to a partition that covers the label metadata...  So this
is most definately a VTOC8 issue...  VTOC8 should at least return an
error when trying to write sectors that contain it's metadata..

newfs actually skips the first few KB of the disk because bsdlabels
would do the same thing...

This sounds like makefs is writing to the first few KB of the disk
unlike newfs which probably doesn't (because it knows it might be on
a partitioned disk and could destroy the partition table)...

> 	dd to md0a from dev zero for just a bit
> 		dd if=/dev/zero of=/dev/md0a bs=64k count=100
> 
> 	destroy md0 via mdconfig -d -u 0
> 	recreate it with mdconfig -f /var/tmp/myfile.img
> 
> 	gpart displays no partions for the image any more:
> 		gpart: No such geom: md0.
> 
> bcc freebsd-geom

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the freebsd-fs mailing list