| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
|
Thanks for the pointer on the
workaround. Creating as a sized sparse image instead of UDRW allows it to
work correctly. It’s a bit more work, but as long as it works I’ll
be satisfied. In case anyone is interested, here is how
I would edit the script I sent out previously (to demonstrate the UDRW
conversion bug) to work. Note that creating a sparse image will append
.sparseimage to the name unless it already has that extension, and the –size
field can be a minimum of 512k. David Litwin BigFix, Inc. #!/bin/sh echo "Create the source
ImageDir" mkdir ImageDir echo "This welcome text
will *not* get wiped out when we use a sparse image" >
ImageDir/Flim.txt echo echo "Calculate the
size of the source dir in kilobytes" usageLine=`du -s ImageDir` imageSize=`expr
"$usageLine" : '\([0123456789]*\)[ ]*[^ ]*$'` # sparse images have a
minimum size of 512k if [ `expr $imageSize \<
512` ]; then echo
"ImageDir size is ${imageSize}k, using minimum of 512k"
imageSize=512 else echo
"ImageDir size is ${imageSize}k" fi echo echo "Create the sparse
image" echo hdiutil create -volname
"hdiutil-bug" -layout NONE -fs 'HFS+' -type "SPARSE" -size
${imageSize}k -ov "Writable.dmg.sparseimage" hdiutil create -volname
"hdiutil-bug" -layout NONE -fs 'HFS+' -type "SPARSE" -size
${imageSize}k -ov "Writable.dmg.sparseimage" echo echo "Mount the sparse
image and copy in files" mountLine=`hdiutil attach
"Writable.dmg.sparseimage" | tail -n 1` disk=`expr
"$mountLine" : '\([^ ]*\).*$'` volLoc=`expr
"$mountLine" : '[^ ]*[^\/]*\(.*\)$'` cd ImageDir tar cf - * | (cd
"$volLoc" ; tar xfBp -) cd .. hdiutil detach -force
"$disk" echo echo "Create the
compressed read only image from the writable sparse image" echo hdiutil convert
"Writable.dmg.sparseimage" -format UDZO -o "Compressed.dmg"
-ov -imagekey zlib-level=9 hdiutil convert
"Writable.dmg.sparseimage" -format UDZO -o "Compressed.dmg"
-ov -imagekey zlib-level=9 echo echo "Mount and check
the contents of the sparse image" mountLine=`hdiutil attach
"Writable.dmg.sparseimage" | tail -n 1` disk=`expr
"$mountLine" : '\([^ ]*\).*$'` volLoc=`expr
"$mountLine" : '[^ ]*[^\/]*\(.*\)$'` hexdump -C
"$volLoc/Flim.txt" hdiutil detach -force
"$disk" echo echo "Mount and check
the contents of the compressed read only image" mountLine=`hdiutil attach
"Compressed.dmg" | tail -n 1` disk=`expr
"$mountLine" : '\([^ ]*\).*$'` volLoc=`expr
"$mountLine" : '[^ ]*[^\/]*\(.*\)$'` hexdump -C
"$volLoc/Flim.txt" hdiutil detach -force
"$disk" echo From: Michael
Nickerson [mailto:email@hidden] On Aug 1, 2006, at 3:01 PM, David Litwin wrote:
Has anyone seen anything like this? It’s
completely baffling. If I can’t trust my disk image making tool,
how can I put my code out with any confidence? David Litwin BigFix, Inc. Hey David, I tried out your script. It looks
like a bug with hdiutil. If you add -size with a value to the create
line, it'll work out correctly. I guess it's not correctly setting the
size and creating an invalid dmg file. I wasn't able to mount the Writable.dmg
file created by your script by double-clicking on it - it comes up with an
error dialog when I try. If you're just using that script on the command line,
I suppose you could add in a portion to ask for the size. Otherwise, I'm
not entirely sure how you'd get the correct size value to use with it. Darkshadow (aka Michael Nickerson) |
_______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/xcode-users/email@hidden This email sent to email@hidden
| References: | |
| >Re: Problems with hdiutil (From: Michael Nickerson <email@hidden>) |
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.