OpenSolaris

Printable Version Enter a New Search
Bug ID 6413235
Synopsis fdisk won't commit (-F) tables to bootcamp prepared disks
State 3-Accepted (Yes, that is a problem)
Category:Subcategory utility:fdisk
Keywords
Responsible Engineer Shidokht Yadegari
Reported Against
Duplicate Of
Introduced In
Commit to Fix
Fixed In
Release Fixed
Related Bugs 6355349 , 6624133
Submit Date 14-April-2006
Last Update Date 9-June-2006
Description
On a bootcamp prepared disk, fdisk -F has a hard time:

d-mpk17-227-166:~# fdisk -W /tmp/1280 /dev/rdsk/c1d1p0
d-mpk17-227-166:~# fdisk -F /tmp/1280 /dev/rdsk/c1d1p0
ERROR: EFI_PMBR partition must encompass the entire disk.
 numsect 409639 - actual 488392064
fdisk: Cannot create partition table
d-mpk17-227-166:~# grep -v ^\* /tmp/1280


  238   0    254    63     1023    254    63     1023    1        409639  
  175   0    254    63     1023    254    63     1023    409640   381681664
  191   128  254    63     1023    254    63     1023    382091304 102558960
d-mpk17-227-166:~# 

 Sadly this kills install as it insists on re-writing the fdisk table 
even when a Solaris2 partition already exists (that's a separate bug).
Work Around
Warning: There have been some cases of catastrophic data loss (wiped 
disk, both OS X and Solaris rendered unbootable) associated with this 
procedure. Both Sun and Apple are investigating that issue. This is 
hindered by the fact that it does not appear to be entirely 
deterministic. If anyone can provide steps to reliably reproduce this, 
please communicate them by submitting a bug under utility/fdisk. 
 
 Workaround: 
 
 Since the problem arises when then entire table is re-written, one 
can re-layout the Solaris2 partition (partition id 191) using the 
interactive fdisk(1M). 
 
 Then (and this part is strictly speaking a workaround for 6413240) 
wrap fdisk to not do anything for a commit (-F) operation: 

/# mount -o remount,rw /
/# cd /sbin/
/sbin# mv fdisk fdisk.real
/sbin# cat > fdisk
#!/bin/sh

echo "$*" | grep -- "-F" > /dev/null
if [ $? = 1 ] ; then
        /sbin/fdisk.real $*
fi
/sbin# chmod +x fdisk
/sbin#

 Then an interactive install to that partition can be performed.
Please be advised that using this workaround, if there are any GPT headers on
the disk, they will be cleared.
Comments
N/A