Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

iPhoto 11: Avoid possible data loss Apps
A possible bug in the upgrade process by iLife 11 causes a loss in one's library. Even more, some of the 'successful' upgraders are not even aware that they, might too, lost some files!

The root of the problem lies in faulty permissions within the iPhoto Library. The solution is to fix the permissions. Repairing permissions in Disk Utility won't help because that doesn't affect user files, only installed programs with Receipts.

While awaiting an official fix or advice from Apple, I have posted an easy, safe fix on my web site.

[crarko adds: Note: Apple has since released an update to fix this.]

Here is my solution. If you have already lost data you will have to restore from Time Machine or whichever backup scheme you use.
  • I first downloaded BatChmod, this is an excellent free utility.
  • Install BatChmod and run it. [crarko adds: You should be able to view/set the permissions using the Finder, too.]
  • Drag and Drop your iPhoto Library (usually located in your ~/Pictures folder) into the open BatChmod window.
  • Change the Letters R, W and X under the Owner, Group and Everyone to a check mark.
  • Also select the check mark for the following boxes: Change ownership and privileges, Clear ACLs, unlock box and Apply to enclosed folders and files.
  • Click Apply.
This will set the photo library permissions so iPhoto 11 can do the necessary database upgrade without harm.

[crarko adds: There do seem to be a number of reports of this issue. Be sure to have a current backup of your photo library prior to upgrading, as you should have a good data backup prior to any major software upgrade.

I upgraded to iPhoto 11 with no problems, but I did check my photo library and the permissions were already set as described in the hint.

I am also a big fan of BatChmod; there was a long time when it could be used to fix permissions when the Finder had problems doing so, especially recursive permissions. Finder in Snow Leopard has caught up, in my experience.]
    •    
  • Currently 3.36 / 5
  You rated: 1 / 5 (11 votes cast)
 
[18,013 views]  

iPhoto 11: Avoid possible data loss | 17 comments | Create New Account
Click here to return to the 'iPhoto 11: Avoid possible data loss' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
iPhoto 11: Avoid possible data loss
Authored by: natethelen on Oct 28, '10 07:53:34AM

If I ensure the photo count before and after is the same, that should cover it, right?



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: dronkert on Oct 28, '10 08:46:46AM
Or in Terminal:
cd ~/Pictures
sudo chmod -R a=rw,+X iPhoto\ Library


[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: sd on Oct 28, '10 08:50:27AM

Interesting, but it is simpler to use the tools provided by Apple!
Just launch iPhoto in maintenance mode and execute a repair file permissions (4th option)



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: crarko on Oct 28, '10 08:56:58AM

Which you can do by holding down Cmd+Option while launching iPhoto.



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: babbage on Oct 28, '10 09:02:08AM

Wait, is that right? You're basically just running this command in an obtuse way:

chmod -RN 777 ~/Pictures/iPhoto\ Library

Which is to say, give full read/write/execute permissions (that's what the "7" means) to the owner, group, and everyone else, for every file under your "iPhoto Library" folder. This is done recursively ("R") on all files under that folder, and it also strips out all ACL info ("N").

Except two or three big problems jump out at me here:

• Photos & associated metadata files are not software programs, so it seems wrong to grant these files execute permissions, which is the bit that tells the system that it is valid to try to run these files as software programs. That seems wrong to me. Possibly harmless, but I can't see why it would be useful, and I can see scenarios where it would end up being a bad idea.

• You want to give full read/write (and execute) permission to everyone? Surely it should be sufficient to just set this for the owner, and maaaaybe the group, but not everyone else, right? This may be splitting hairs, as the vast majority of Mac users have a single user account on the computer anyway, but if you have multiple users and, hypothetically, you do not 100% trust each other, then you're making it possible for any other user on the computer to access, modify, and delete anything in your iPhoto library. You may regret that level of trust later.

• Stripping out the ACLs may or may not be overkill. In at least some cases, Apple uses custom ACLs to enforce "magic" behavior for certain files & folders, and it may be the case that deleting this information could have adverse effects with the iPhoto library. Or it might not, I haven't tried monkeying with it to find out, but there is that risk.

I suspect the safer permissions setting would be "664" permissions, or even "664", where the "6" means that the user (and maybe the group) has read/write access, the "4" means that others (and maybe the group) just has read-only access, and nobody has execute access.

http://en.wikipedia.org/wiki/Filesystem_permissions#Octal_notation

So, with that Unix arcana out of the way, back to the original proposal: is it *really* necessary to give wide-open permissions on *everything* in your iPhoto library to make the conversion to '11 work properly, or is it sufficient for the user to have full access?

If you truly need wide-open permissions, that would seem to be an enormous bug on Apple's part, and while it wouldn't be the first time such a bug has made it into the wild (cf. the bug in the early iTunes updater that wiped out whole hard drives for some people), it would be the first one of this nature in several years.

Personally, I think this "fix" is overcorrecting the original problem, and introducing new problems. It really ought to be enough to just open up the permissions to the file owner, not everyone else.

---

--
DO NOT LEAVE IT IS NOT REAL



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: crarko on Oct 28, '10 09:19:01AM

That's most likely true. I wonder if we can find a test case.

For what it's worth, my iPhoto library is set to global read/write, and I don't recall changing it. Whereas my Music library is read only to all but me, as owner.

It seems as if iPhoto has/needs some screwy permissions.



[ Reply to This | # ]
Why give everyone w permission?
Authored by: googoo on Oct 28, '10 09:51:17AM

Although it looks like it is the default setting, I cannot understand why you should give everyone write permission (chmod setting 777) for your iPhoto Library. This means any user on your machine could modify your iPhoto Library. A safer setting would be read, write, and execute permission for the owner and read and execute for group and others (chmod setting 755). The default setting seems like a potential security problem to me.

-Mark



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: grerhrhtrh on Oct 28, '10 11:43:21AM

Just having a correct count is half of the story. You can have movies listed but that you won't be able to open and play. Also, if you do worry about setting broad permissions to other users then you can change it back AFTER you have successfully upgraded following the advise on iphoto11.wordpress.com and lastly, you have to realize that each file and folder inside the iphoto library might have different permissions even if the iPhoto Library per se is shown with the correct permissions.
i have tried EVERYTHING and FAILED, but luckily I have a backup on my time machine, and after following the advise on IPHOTO11.WORDPRESS.COM I am happy as can be :-)



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: barefootguru on Oct 28, '10 11:49:57AM

Meh... failing due to permissions and data loss... the upgrade process is obviously too fragile, I'll wait for Apple to release a fix.

Edited on Oct 28, '10 11:50:34AM by barefootguru



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: TvE on Oct 30, '10 03:05:54AM

Well here's the update: http://support.apple.com/kb/HT4431
From: http://support.apple.com/kb/DL1322:

About iPhoto 9.0.1
This update addresses issues that, in extremely rare cases, could result in data loss when upgrading a library from an earlier version of iPhoto.



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: astrosmash on Oct 28, '10 12:11:06PM

I took a look at the state of my iPhoto '09 library. Photos created prior to '09 were marked 666 (rw-rw-rw-), photos created after '09 was installed were marked 644 (rw-r--r--).

I ran the file permissions repair in iPhoto, and now everything is marked 666.



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: S Barman on Oct 28, '10 06:10:53PM
First, I don't understand what the problem is. If we knew what the permissions were before changing them and any error messages, it would be greatly helpful to diagnose this properly.

Second, the only permission value that counts is the user permissions. You can set the file permissions to 600 (read/write for only the user) and it should work. However, directories should have the permissions set to at least 700 (read/write/execute for the user where in the case of a directory, it means you can scan the directory on the way down the tree). You can do this:

cd ~/Pictures
chmod -R 600 iPhoto\ Library # or you can make the permissions 644 is you'd like
find iPhoto\ Library -type d -exec chmod +x {} \; # add the execute bit for directories

NOTE: I hate to make everything world accessible just in case the system is hacked. In the security world, it's called "Least Privilege." I want permissions set to the least privilege possible. I also loathe making files that are not supposed to be executed (e.g., documents, images, etc. that are not programs) executable. While systems have become better over the years in handling this kind of cruft, it is not a good thing to do.

Judging from the conversation, iLife 11 may change the permissions to turn off the execute bit in a directory somewhere. If that's the case, then just run the find command above and it will fix the problem.

[ Reply to This | # ]

iPhoto 11: Avoid possible data loss
Authored by: BlaatMekker on Oct 29, '10 07:27:24AM
chmod -R +X does the same thing as your find. From the man page:

X

The execute/search bits if the file is a directory or any of the execute/search bits are set in the original (unmodified) mode. Operations with the perm symbol "X" are only meaningful in conjunction with the op symbol "+", and are ignored in all other cases



[ Reply to This | # ]
iPhoto 11: Avoid possible data loss
Authored by: S Barman on Oct 29, '10 08:13:29PM

Ok... I guess I forgot about the "new fangled" changes to chmod!! :-)

It's a good suggested fix to my posting! THANKS!!



[ Reply to This | # ]
Not necessary anymore
Authored by: xcgr on Oct 30, '10 11:27:14AM

This hint is outdated. Apple fixed this in iPhoto 9.0.1. Of course it doesn't hurt to have a backup.



[ Reply to This | # ]
[deleted]
Authored by: FlaSheridn on Nov 01, '10 10:44:23AM

<deleted> Two of my four attempts to post succeeded.

Edited on Nov 01, '10 10:48:06AM by FlaSheridn



[ Reply to This | # ]
TimeMachine backup won’t…
Authored by: FlaSheridn on Nov 01, '10 10:46:54AM

But note that a TimeMachine backup apparently won’t if you’re actually using iPhoto:

http://www.pigsgourdsandwikis.com/2009/05/timemachine-doesnt-back-up-iphoto-if.html

Disclaimer: I have no intention of trying any of this until this version of iPhoto is adequately tested.



[ Reply to This | # ]