--- On Sat, 21/7/12, Vyacheslav Dubeyko <slava@xxxxxxxxxxx> wrote: > Hi, > > On Jul 20, 2012, at 3:56 AM, Hin-Tak Leung wrote: > <snipped> > > > > - I found that delete/unlink from linux almost always > results in fsck.hfsplus complaining about unused nodes not > being zero'ed, and needing minor repair. So this is somewhat > expected - the typical linux design for performance, and not > doing more than necessary; but this also indicates a > somewhat significant difference in behavior with HFS+ under > Mac OS X - Mac OS X probably zero's deleted/unlinked data > nodes, maybe for security reasons. Should this be changed in > the linux driver for hfsplus? Just to make fsck.hfsplus > happy? > > > > - I also found that deleting/unlinking Mac-generated > files from linux results in complaints about inconsistent > counts of extended attributes and catalog files. This is > again not surprising - some of Mac OS X's file attributes > have no linux equivalents, and are stored elsewhere anyway. > But one might want to try to look up and clean up those > associated extended attributes. This is a bug. > > As I can understand, you report about found bugs. Am I > correct? Could you please describe these bugs with > reproduction path and error output of fsck.hfsplus? <snipped> Correct - two interesting bugs. I thought I had supplied enough details for others to try to reproduce? The first is simply about deleting files, the latter about deleting files with extended attributes. So, to reproduce: 1. Have a hfs+ volume (created under Mac OS X would be better). Make sure it passed fsck.hfsplus (on linux). 2. copy the system Fonts folder (I think it is under /Library/Fonts) to it from Mac OS X. Font files have extended attributes, but other system files might do too. 3. Try to delete some of those files from Linux. 4. umount, run fsck.hfsplus on the volume. One would see: Executing fsck_hfs (version 540.1-Linux). ... ** Checking extents overflow file. Unused node is not erased (node = 1) ** Checking catalog file. Unused node is not erased (node = 18) ... ** Checking extended attributes file. Incorrect number of extended attributes (It should be 13 instead of 6) ... ** Repairing volume. RepairAttributesCheckABT: No matching catalog record found for id=438 ... ** Rechecking volume. ... ** The volume journalled was repaired successfully. 'Unused node is not erased' & 'Incorrect number of extended attributes' were essentially what I wrote earlier. BTW, I ran fsck.hfsplus with: fsck.hfsplus -d -D 0x0033 -f - i.e. maximum amount of information, and have a look even if it appears to be clean. (there are -l, -y and -n switches to control whether fsck.hfsplus would actually fix anything found or leave it alone and just output info). The font folder is only about a few hundred MB, so one should be able to experiment with a small pen drive and do byte-level comparisons to see what fsk.hfsplus is not happy about and what does it change - although I am sure looking at diskdev_cmds's source would also be useful. I just happen to want the font folder for other things I do. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html