• Mac OS X,  Mass Deployment

    Verifying & Repairing Permissions

    Disk Utility has a nifty little button to Verify Disk Permissions and another to Repair Disk Permissions. Many use this frequently over the course of basic Mac OS X troubleshooting. The underlying functionality is also exposed at the command line. Diskutil (located in /usr/sbin) has the verifyPermissions and repairPermissions, which roughly correspond to the buttons in Disk Utility. Because these can be run against different disks, each will need the volume indicated following the verb. For example, to run a Verify Disk Permissions against a volume called Seldon, you would use the following command: diskutil verifyPermissions /Volumes/Seldon To then run a Repair Disk Permissions on that same volume, you would…

  • personal

    10 Billion Songs

    When the iTunes Store came out if you had told me that they would end up selling 10 billion songs you might have come across like a bit of an Austin Powers skit. But Apple has crossed 10 billion now in “staggering” fashion: http://www.apple.com/pr/library/2010/02/25itunes.html

  • Mac OS X,  Mac OS X Server

    Enabling RAID Mirrors Redux

    When new versions of operating systems come out sometimes articles need to be updated. It’s always nice when someone else does the hard part. Recently, Ben Levy, an Apple Consultant from Los Angeles, did some work on an article I did awhile back. To quote Ben, the new procedure is to: 1. Boot from something other than your intended RAIDed boot drive, open Terminal and use diskutil list to identify the relevant disks and partitions. 2. diskutil appleRAID enable mirror disk0s2 – (assuming correctly identified slice, yours may be different) This command turns your primary disk into a RAID mirror without a mirror 3. Reboot back to your boot drive…

  • Mac OS X

    Programatically Secure Erasing Free Space

    One of those security things that pops up every now and then is to use the secure erase feature of Mac OS X, located in Disk Utility. But you can access this same feature from the command line using the secureErase option in diskutil followed by the freespace option. The format of the command is: diskutil secureErase freespace [level] [device] The levels are as follows (per the man page as not all of these are specified in Disk Utility): Single-pass zero-fill erase Single-pass random-fill erase US DoD 7-pass secure erase Gutmann algorithm 35-pass secure erase US DoE algorithm 3-pass secure erase So for example, let’s say you had a volume…

  • Business

    Meet the Press

    As my most recent information seems to now be on Amazon I have wrapped that into an easy link with links back to this site. It can be found at https://krypted.com//amazon.

  • Unix

    SCALE 8

    The 8th annual Southern California Linux Expo (SCALE) is being held at the Westin by LAX in Los Angeles this weekend. It starts today (so I should have posted this sooner) and sports sessions on open source topics ranging from Zenoss to Sugar to Fedora. For more on the schedule check out the conference schedule at http://www.socallinuxexpo.org/scale8x/conference-schedule-feb-19-2010. This is one of those conferences that I’ve had to miss the last couple of years. But prior to that I was at the first few. The topics were mostly technical in nature, other than me the speakers/conference faculty were all top notch and the organization of the show is impressive. Given all…

  • Mac OS X

    Brace Yourself!

    Brace yourself, ’cause I’m a tool (or don’t brace yourself if you’ve read much of my writing or met me since you already knew this to be the case). Classic cedge-fail moment that I just had to share. What do you do when you have a variable before a string of text but cannot have any spaces? You brace your variable. Basically, place the $ followed by the variable that is wrapped in the braces. For example, if I was going to put cedge as the content of a variable and then write a file called cedge.plist from the contents then I would use the following. user=cedge touch “${user}.plist” Big…

  • Articles and Books,  personal,  sites

    Standing On The Shoulders Of Giants

    I write a lot. There are the meanderings that appear on this site, the writing on the 318 TechJournal, more structured prose that goes into books (sometimes regrettably only slightly more structured), writing for clients, freelance writing, writing for other websites and even a bit of ghost writing here and there. Sometimes the writing is short, sometimes long, but there is a pretty consistent amount of it. The reason is because I enjoy it. Most of my writing is technical in nature. And like many who maybe learn a thing or two on my site I end up sharing tips or tricks from places that I no longer remember where…

  • Xsan

    Don't Defrag the Whole SAN

    I see a numer of environments that are running routine defragmentation scripts on Xsan volumes. I do not agree with this practice, but given certain edge cases I have watched it happen. When defragmenting a volume, there is no reason to do so to the entire volume. Especially if much of the content is static and not changing very often. And if specific files doesn’t have a lot of extents then they are easily skipped. Let’s look at a couple of quick ways to narrow down your defrag using snfsdefrag. The first is by specifying the path. In this case you would specify a -r option and follow that with…

  • Xsan

    Isolating iNodes in Xsan cvfsck Output

    I’ve noticed a couple of occasions where data corruption in Xsan causes a perceived data loss on a volume. This does not always mean that you have to restore from backup. Given the cvfsck output, you can isolate the iNodes using the following: cat cvfsck.txt | grep *Error* | cut -c 27-36 > iNodeList.txt Once isolated you can then use the cvfsdb tool to correlate this to file names. For example, if you have an iNode of 0x20643c8 then you can convert this into a file name using the following: cvfsdb> show inode 0x20643c8 The output will be similar to the following: 000: 0100 8000 3f04 0327 5250 2daa 0000…