I bought a new 1TB External SSD to replace the mechanical 1TB drive I had been using. I figured this would be a nice speed-up, and more in line with what my Mac is capable of.
From the photos on-line when I ordered the SSD, I expected it to be larger — about the size of a regular 3.5″ external drive. It is much smaller. It’s about the size of a stack of four or five credit cards. This would be a great thing for travel.
I knew that I should format a new SSD with the newer APFS format for use with MacOS (currently 10.15 Catalina). So, after reading up on that, I fired up Disk Utility, selected APFS, and hit Format. I immediately realized my mistake. I was formatting my original external drive with my data on it, not the new one! It only took a few seconds to lose everything on that drive.
Lesson Learned: Make Very Sure Which Drive You are Formatting!
The good news is that I had a backup. (You have backups, right?)
Lesson Learned Previously: Always Have Backups
After initially trying to restore from backup using Carbon Copy Cloner, I ended up just copying the files to the new SSD using the Finder. But I didn’t have enough space on the drive and deleting big files and folders didn’t seem to make any difference in the amount of free space. I finally found that Carbon Copy Cloner had created some invisible space hogs on that drive called Snapshots.
Lesson Learned: If Deleting Files Doesn’t Increase Free Space, Look for Snapshots
Snapshots can also be created by Time Machine.
Lesson Learned: CCC Creates Snapshots which you can remove from within CCC.
Once I got rid of the snapshots, I was able to restore everything to the new drive easily.
Now I wanted to make some changes to help prevent similar accidents in the future. I give my drives unique descriptive names. I also wanted to give my hard drives unique icons. Any external drive I attach normally shows up with the same generic icon. If they all look alike, it makes mistakes like formatting the wrong drive more likely. I used icons that physically resemble the drives they represent, but you can use pictures of your cat, or whatever images you like.
Since subscribing to SetApp, I always look in there first for any unique Apps I need. I usually find something that does what I want.
So, now my drives have unique icons like this:
Lesson Learned: You can and should give your external drives unique icons.
Besides external hard drives, you can also assign special icons to thumb drives or camera cards. Again, that seems very helpful in keeping them straight in your mind.
However, I have found that the procedure of pasting a new icon onto the icon of my hard drives does not work for some drives.
I found that for some drives, you can paste the icon file, but for other types of drives, you must copy and paste an actual image. If pasting the icon file doesn’t work, you can open the icon image using preview, make a selection, copy that, and paste that into the icon in the drives “Get Info” window. That seems to work.
I’m still finding that I can’t change the icon of partitions on an APFS partitioned drive. If anyone knows how to do this, please leave a comment. Thanks.
Recently, I digitized some historic school yearbooks and I want to share some tips on how I did that. It was less work than I thought, and it went pretty fast due to some automation. There is certainly more than one way to do this, but this worked for me.
My goals going in were:
* Good Quality Images
* PDF Output with Searchable Text
* A Separate Image in the final document for each page in the book
* Automate as much as possible
I used a DSLR camera to photograph the pages. I’m not going to go into a lot of detail on the photography aspect, although it is important. You want a lot of light coming from an angle. I used off-camera flash, with a wireless flash trigger. The camera and the flash were on tripods, and the yearbook was on a low coffee table. The camera was looking straight down onto the book. There are many camera settings and lighting settings that will work.
I wanted to be able to go through the entire book and not have to do anything else except turn a page and click the shutter. A wireless remote for your camera helps, although for the last book I digitized, I couldn’t find my remote and did it manually, with a 2-second delay to prevent camera shake. That was not too bad.
I taped some rulers to the table to keep the book firmly in the same position so it wouldn’t move between shots.
To save time, I photographed two facing pages at a time, on one image. These were separated later in software. There was plenty of resolution for this to still yield a quality image.
I set my camera to record JPEG images rather than RAW, because they are smaller and easier to deal with, and because I knew I had the exposure correct and wouldn’t need to adjust it in software.
I brought the camera images onto my Mac. Then I used the Affinity Photo App to separate and crop the images of the individual pages. I used two main features of Affinity Photo: Macros and Batch Jobs.
First I recorded a macro. I selected an image about 1/4 of the way through the book. I recorded a macro in which I cropped and rotated the left side of that image as a single page. I saved that macro as something like YBCropLeft. Then I repeated the process for the right-hand image, and saved that macro as YBCropRight. But I didn’t save any changes to any images yet.
Because of the way a physical book lies on the table, the ideal crop for all pages is not identical. To mostly compensate for this, I went through this process twice for each book, once for the first halt, and again for the second half. Each time I picked an image about half-way through that half of the book as my prototype for recording the macros. The first prototype was 1/4 into the book, and the second prototype was 3/4 into the book.
Now I used the Batch Job feature of Affinity Photo, which is in the menus at File:New Batch Job… I dragged all the images from the 1st half of the book into the sources pane. I selected the YBCropLeft macro (and Applied it). I clicked “Save as JPEG” and picked a new, different folder for the output files.
When you run the batch job, you’ll be amazed at how quickly it processes all of those files. The resulting files will still have the same names that came out of the camera, e.g. IMG_1234.jpeg. But, now they are cropped to the left side only.
Affinity Photo doesn’t give you any naming options for the output of a batch job. This is where Renamer comes in. I used Renamer to quickly add an “L” to the end of all the output file names. So, for example, IMG_1234.jpeg became IMG_1234L.jpeg. This is so we can keep them straight and don’t have two files both with the same name.
Now, repeat the batch job, this time using the YBCropRight macro. Put the output into another new folder.
Again, use Renamer. This time, rename all the right side files to have an “R” at the end, so the names will become something like IMG_1234R.jpeg.
So, now, we repeat the entire process for the 2nd half of the book. Record two new Left and Right macros. Run two new batch jobs, sending the output to yet another pair of empty folders. Rename them to L and R as appropriate.
Now, copy all the R files and the L files from both halves of the book into one big folder. There shouldn’t be any duplicate file names. “L” happens to alphabetize ahead of “R”, so, the left side of each image will be alphabetically just ahead of the right side of that image, which is exactly what we want.
Now, if you had any oddball pages that didn’t fit the pattern, go ahead and digitize them, and contrive a file name so that they fit in the correct spot. For example, you might name the image of the front cover something beginning with “A”, so it will be in the front, and the back cover something like “Z”, so it will come last. If your book has a centerfold or map insert or similar, copy it separately and name it something that puts it at the appropriate spot in the alphabetical list of images. Or, you can just wait and insert it into the PDF at the appropriate place.
Now is the time for PDFpen. Open PDFpen and open a blank, new document. In a Finder window, select all the images (I had hundreds of them, one per page, and drag them all to the empty PDFpen document window. PDFpen will just slurp all those into one big PDF. The free Apple App Preview might be able to do this step also, but it didn’t seem as robust about it as PDFpen.
Proofread the document, making sure the pages are all in the right place and are all right-side-up, etc. PDFpen makes it easy to drag pages into the order you want, if they are incorrect for some reason.
Save your work.
The feature that we really needed PDFpen for is OCR (Optical Character Recognition). This will allow turning a bunch of pixels into searchable and selectable text in your document. For some reason, PDFpen hides this powerful feature with a weird User Interface quirk. If you look at the Edit menu in PDFpen, you will see OCR Page. But, we want to go ahead and OCR the entire document! That option isn’t visible unless you press the Option key. Then you will see the OCR Document item under the edit menu.
Go ahead and do that. It takes a few minutes, depending on size, and gives a “bing” when it is done.
Save your work again. This is your final, searchable PDF document.
How can you help another computer user from a distance? I am going to show you a super easy way to help another Mac user using software that came with your computer.
Sometimes we get questions about computer problems from friends and family. It would be so easy if we were in the same room and could see and interact with their screen. But if they are far away, or in 2020, staying isolated because of Coronavirus, how do you help them?
If you and the other person both have Macs, and you can send and receive messages using the Messages app, then the answer is just a click away.
To connect to your friend’s computer, we are going to use the Messages App (formerly known as iMessage). This application comes with every Macintosh. It isn’t obvious, but the humble Messages app has a superpower. It can remote control a computer screen.
It might be good to first verify that you can send and receive messages to and from the remote computer. You must be connecting to your friend via their email address, which should be associated with their Apple ID.
If you see the blue text bubble(s) when messaging your friend, the next steps should go smoothly. If you see green text bubbles, or can’t send and receive messages at all, see the Difficulties section below.
To begin screen sharing, make sure that the correct friend’s conversation is highlighted in the Messages window. Then, select Ask to Share Screen from Messages’ Buddies menu.
This will cause a message to appear in the upper right of your friend’s screen asking them to allow screen sharing:
When they click Accept, they will get one more message:
For troubleshooting with a trusted friend, it is usually easier if the recipient allows you to control their screen as well as observe it. Control is the default.
Once they click Accept, screen sharing will begin.
Either party can end screen sharing. Remember that if the computer restarts, or if you quit the Messages app, screen sharing will end and need to be restarted.
I have successfully talked some very inexperienced computer users through this process on the phone. They only have to be able to see when they receive a text message, and then click Accept twice. After that, you will be able to help them.
You’ll probably be talking to your friend on the phone to get this started. When screen sharing starts, it also starts an on-line voice conversation. You should be prepared to end the phone call when this happens to prevent echo, feedback and confusion. You will still be able to speak to each other via the computer (if both computers have microphones and speakers — most do).
If this is not working as expected, check the following:
Both computers must be running MacOS
Both computers must be connected to the Internet
Both parties must have an Apple ID
Check that the email addresses being used for communication are listed in System Preferences/Apple ID under Name, Phone, Email in the Reachable at section. If not, they can be added there.
These are the Keynote slides from MacMAD’s February 2020 meeting on using Gestures on iOS and Macintosh. Note: this presentation contains some short videos so is rather large (~160 MB). The link is to a Keynote presentation file shared in iCloud.
“My photo appears correct on my computer, but when I uploaded it to [website], it is sideways. How can I make my image upload in the correct orientation?”
This problem is surprisingly universal, it affects many different web sites and users of Windows, Macintosh, tablets and smartphones are all affected. It most often affects photos that were taken in portrait orientation.
The problem is caused by the varying interpretations of the image rotation tags in the EXIF data accompanying digital photos. This problem is not likely to go away anytime soon because the meaning of the rotation tags is somewhat ambiguous, and there is disagreement about what the correct way to handle them ought to be. Some software thinks it should apply the tags, other programs or sites think they should ignore the tags or remove the tags.
There is an easy solution for users: Edit the photo in your photo editor of choice (with the possible exception of Windows Picture Viewer). Rotate it to be right-side-up if necessary. Then make some other change that affects the image. Tweak the contrast or the color. Crop the image slightly. Almost any change will work. Then, save it.
The saved image will have its pixels oriented properly and have no Orientation tag, or have the default Horizontal tag. Everybody agrees on how to display an image like that. When you upload it, it will display the same as you saw it on your computer.
If you edit an image, but only rotate it, your editor will probably just change the Orientation tag without changing the image pixels. Unfortunately, not every program or site will interpret the Orientation tag the same way as your image editor.
If you make a change to the actual image, it forces the program to completely re-write the image from scratch, which results in an image with the default orientation.
If you are reading this, you probably know why you want to run SpinRite. SpinRite is a hard drive recovery utility intended to run stand-alone on Windows machines. There is really nothing comparable to it for the Macintosh, especially in its ability to recover data from corrupted hard drives.
The other instructions I found on the web for SpinRite on the Mac were variously outdated, contained bad links or were overly complicated. I had to hunt around multiple web sites to find bits and pieces of the instructions. Here is my attempt to write a coherent single set of instructions for SpinRite on the Mac.
I don’t want you to go through this process with false expectations. There are some limitations to SpinRite and to running it on the Mac.
SpinRite 6.0 is glacially slow on today’s large hard drives. A full scan on level 2 of a 1 TB drive with no bad sectors took 35 hours and 46 minutes. If the drive has bad sectors, or you use level 4, it will take much longer.
SpinRite 6.0 can’t handle drives larger than 2 TB at all.
SpinRite hasn’t been updated by its author since 2004. Steve Gibson says he plans to release updated versions 6.1 (much faster and supports larger drives) and 7 (with support for the Mac), but it could be a while.
SpinRite can operate on internal and external drives, including USB drives. The S.M.A.R.T. aware features of SpinRite will not work in the virtual machine environment we will use on the Mac. However, this does not prevent SpinRite from recovering bad sectors, or refreshing marginal ones.
The good news is that you can continue to use your Mac while SpinRite, in a virtual machine, works on a hard drive. This is better than the usual situation where a physical Windows machine is dedicated to running SpinRite for the duration. However, you must not try to use SpinRite on your system boot drive (or any mounted drive). If you need to use it on your internal boot drive, you will either have to boot from another drive or connect your Mac to another Mac in target disk mode and run SpinRite from the other Mac.
This is an advanced topic. I assume if you are planning to run SpinRite that you are somewhat familiar with running DOS-based programs, such as SpinRite, and that you are willing to use the Mac’s Terminal command line.
You must perform these steps from an administrator account, or one with sudo access (usually only admin accounts). (At least from step 4 on.)
Use caution with connecting physical and virtual drives! Make sure that you are connecting the correct drives to your virtual machine, and that you are running SpinRite on the drive you intend. If you connect a RAW drive to a virtual machine while it is mounted by MacOS, you risk utter destruction of data on that drive. (Although VirtualBox seemingly tries to prevent you from doing this.)
Here is the executive summary of what you are going to do:
Get FreeDOS (sort of a MS-DOS replacement)
Install FreeDOS into VirtualBox
Install SpinRite into VirtualBox
Connect your problem drive to Virtual Box, so SpinRite can work on it
0. Get SpinRite – Buy and download SpinRite from grc.com if you don’t already have it.
Download the latest version for OS X (currently 5.2.22)
Create a new machine for DOS
Accept the defaults (32 MB RAM, 500 MB expandable virtual hard disk)
In Settings/System/Processor for the new machine, set the Execution Cap slider to about 45%. This keeps the virtual machine from spinning up your fans and running down your battery.
2. Get FreeDOS – Download and install FreeDOS from freedos.org. (It’s free)
Select the CDROM “standard” installer distribution. You’ll get a file something like FD12CD.iso.
The current version 1.2 is acceptable. You are going to install FreeDOS into the VirtualBox virtual machine you created above.
3. Install FreeDOS into Virtual Box
In Virtual Box, Click on your FreeDOS machine. Select Settings/Storage. Click on the empty optical drive icon. To mount your FreeDOS image click on the CD icon on the far right, and choose it using Choose Virtual Optical Disk File
Select the FreeDOS ISO image (FD12CD.iso).
You are now going to boot your virtual machine for the first time to install FreeDOS onto your virtual hard drive. It will help to understand some features of the Virtual Box user interface. You will need to click in the virtual machine window to allow you to type into it. When you do that, the virtual machine will “capture” your mouse and keyboard. To release the mouse and keyboard, to do anything else on your Mac, you can press the left ⌘ (command) key.
There is a bug between VirtualBox and FreeDOS that will cause the virtual machine to crash with a messy string of Invalid Opcode messages if you simply follow the prompts. There is a workaround, and here it is.
Select your virtual DOS machine in Virtual Box. Press Start. The virtual machine window will appear, and it should boot into the FreeDOS installer screen. There is a countdown running (50 seconds) which you need to stop. Click in the virtual machine window and press the TAB key. That will stop the timer. You are now editing the Install to harddisk menu option. Add the word raw (lower case) after the command line. Press return.
You should now be in the installer at the preferred language prompt. Proceed.
When asked if you want to partition Drive C:, select Yes. And also select Yes – Please reboot now. Once again, intercept the countdown with a tab and add raw to the command line.
You will be back to the installer preferred language prompt. Proceed. This time you will be asked if you want to format C:. Say Yes. Then choose your keyboard format (perhaps different from your preferred language).
At the prompt What FreeDOS packages do you want to install?, Choose Base packages only. This is sufficient for SpinRite.
Naturally, you will choose Yes – Please install FreeDOS 1.2.
When the install is complete, you will be asked if you want to reboot. Don’t do it yet. Wait until step 4b, below.
4. Install SpinRite Into VirtualBox
4a. You will Create a CD image with spinrite.exe on it. This will be used to get SpinRite.exe into the Virtual machine. When SpinRite runs, it can create an ISO containing itself. If you already have a SpinRite ISO created by SpinRite on a Windows machine you may use that and skip the rest of this step (skip to 4b).
Create a folder named “spinrite” in your Downloads folder. Put spinrite.exe into that folder.
Open a Terminal window. Enter this command into the terminal:
(Enter the command all on one line.) This will create a file on your desktop named image.iso containing spinrite.exe . This image is of a type acceptable to Virtual Box. If you create an image with Disk Utility instead, it will not work.
4b. In VirtualBox Manager, select your DOS machine, and pick Settings/Storage. Again, using the optical disk icon on the far right, choose the image.iso file we created on your desktop in step 4a, above. Click OK to save settings.
Now, back in the virtual machine, select Yes-Please reboot now and press enter. You don’t need to intercept the boot process anymore. Wait for the machine to boot into FreeDOS and the C:\> prompt.
The SpinRite “CD” should now be mounted as drive D:. Type the DOS command:
copy d:\spinrite.exe c:\spinrite.exe
This will copy Spinrite to your virtual C: drive. At this point, you now have a virtual machine with a virtual hard drive containing SpinRite, and you no longer need the image.iso image. You may remove that from the virtual drive if you like.
5. Connect the Problem Drive to VirtualBox and SpinRite
In the terminal, create a shell script as follows:
cat > srscript.sh
Then, copy the script below, and paste it into the terminal.
# This script creates a virtual disk image connected to a physical disk for connection to VirtualBox
read -p "Enter Disk name, e.g. disk8: " SpinRiteDisk
# make sure disk is unmounted
/usr/sbin/diskutil unmountDisk /dev/$SpinRiteDisk
sudo vboxmanage internalcommands createrawvmdk -filename "$HOME/Desktop/VirtualRaw$SpinRiteDisk.vmdk" -rawdisk /dev/$SpinRiteDisk
sudo chmod 777 "$HOME/Desktop/VirtualRaw$SpinRiteDisk.vmdk"
sudo chmod 777 /dev/$SpinRiteDisk
/usr/sbin/diskutil unmountDisk /dev/$SpinRiteDisk
echo "Look on Desktop for raw disk file"
Now make your script executable with:
chmod +x srscript.sh
Make sure the drive to be tested is connected and powered on. You need to figure out what the device ID associated with the drive under test is. It will be of the form “diskX”, for example, it might be “disk5”. You can find this in Disk Utility, in the lower right corner.
If you see a suffix, e.g., disk5s1, ignore the suffix. This is the disk name you will need in the next step.
While you are in Disk Utility, go ahead and unmount all partitions on the drive to be tested, if any are mounted.
In the terminal, run the script:
Because the script contains sudo commands, you will be prompted for a password. Enter your Mac signon password. As mentioned above, this will only work for admin accounts, or accounts for which the user has been added to the file /etc/sudoers . When prompted, enter the device ID (disk name), e.g. disk5 . A vmdk file icon will appear on your desktop named appropriately.
In VirtualBox, go to the storage settings for your virtual machine.
Click the hard-drive-plus icon to add a new hard drive to the virtual IDE controller. At the prompt, select Choose Existing Disk, and then select the VirtualRawdiskx file you created on your desktop earlier.
If the FreeDOS CD is still mounted in your virtual machine, as shown above, remove it from the virtual drive so that your machine boots from your virtual hard drive. If you click on the .iso, the remove option then appears if you click the optical disk icon in the far right of the dialog box.
Very likely, at this point, your target disk may have remounted itself. Eject/Unmount it before proceeding. VirtualBox will complain about being unable to access the VirtualDrive if partitions on the physical drive are still in use. Eject it using DiskUtility or the Finder.
In VirtualBox, start your virtual machine. It should boot up to the FreeDOS command prompt.
Issue the DOS command:
You are now running SpinRite on a Mac! As promised earlier, SpinRite will have no access to S.M.A.R.T. data in this scenario.
When SpinRite is done (much, much later), you should restore the correct disk permissions. Leaving the raw disk permissions with world access is a security risk.
In the terminal you can restore them with, for example:
sudo chmod 640 /dev/disk5
If disk5 was your target disk. Check that the permissions are correct with
ls -l /dev/disk*
The raw disk files should all have the same permissions:
I hope these instructions were helpful for you. Thanks for reading.
Extended installation Instructions for FreeDOS are here:
At this month’s meeting we are reviewing the announcements from Apple’s World Wide Developer’s Conference Keynote. As usual, MacMAD is providing links so that you don’t need to take notes in the meeting.