I've seen quite a number of login screen screenshots. I've tried Cmd + Shift + 3, but to no avail. How do I take a picture of the login screen or the boot screen of OS X?
I have not tested this myself, but maybe this link will help. Grab 'impossible' screenshots
OS X includes a nice command-line screen capture utility named, simply enough, screencapture. While there’s not a ton of documentation on this program, man screencapture will give you the basic options. Once you’ve used ssh to connect to the Mac whose screen you wish to capture, you need to execute the screencapture command with root privileges.
If you don't have a second host to ssh to your Mac or a camera/phone you can use a launch daemon:
Create a plist with:
sudo nano /Library/LaunchDaemons/local.screenshot.plist
with the content:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>local.screenshot</string> <key>Program</key> <string>/bin/bash</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>-c</string> <string>/usr/sbin/screencapture -T 1 /Users/user/screen1.png ; /usr/sbin/screencapture -T 16 /Users/user/screen16.png</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
Load the daemon with:
sudo launchctl load /Library/LaunchDaemons/local.screenshot.plist
Replace user in the plist by a real user name or use a different path than /Users/user/. Depending on your system you may have to modify the timing or add additional screenshots to create a whole sequence by adding one or several
; /usr/sbin/screencapture -T <seconds> /Users/user/screen<seconds>.png terms in the ProgramArguments array.
Instead of cluttering the plist with commands you can also create a shell script using a for loop to do screenshots every second (or two) and load it with the launch daemon.
In my VM I got a black screen after one seconds and the almost finished boot loading bar after 16 seconds.