84

Mountain Lion allows one to encrypt any disk by right-clicking on the disk in the Finder and selecting Encrypt from the contextual menu.

Is there anyway to check on the progress of this encryption process?

13 Answers 13

114

Open up the Terminal and enter the command:

diskutil cs list

Or with APFS starting with 10.13

diskutil apfs list

With APFS the FileVault setup utility also shows health and this status:

fdesetup status

You will see an output listing at least one Logical Volume Group, with a Logical Volume Family and Logical Volume nested below.

There is be a Conversion Status item in the Volume Family entry that will tell you if it's converting to an encrypted volume or not, and for a progress indicator, look under the Logical Volume entry for Size (Total) and Size (Converted) entries, to see how many GB have been converted so far.

For an APFS volume, the output is simpler: there will be an Encryption Progress entry with a percentage as a value (such as 16.0%). This entry will turn into an Encrypted entry, with values Yes or No. As a complement to the value of either field, (Unlocked) may be present if the volume encryption is currently unlocked.

During encryption:

Encryption Status:           Unlocked
    Encryption Type:         AES-XTS
    Conversion Status:       Converting
    Conversion Direction:    forward
    Has Encrypted Extents:   Yes
    Fully Secure:            No
    Passphrase Required:     Yes
 Disk:                       disk6
    Status:                  Online
    Size (Total):            569869340672 B (569.9 GB)
    Size (Converted):        231454277632 B (231.5 GB)
    Revertible:              Yes (unlock and decryption required)
    LV Name:                 Heap
    Volume Name:             Heap
    Content Hint:            Apple_HFS

Encryption completed:

Encryption Status:           Unlocked
    Encryption Type:         AES-XTS
    Conversion Status:       Complete
    Conversion Direction:    -none-
    Has Encrypted Extents:   Yes
    Fully Secure:            Yes
    Passphrase Required:     Yes
 Disk:                       disk6
    Status:                  Online
    Size (Total):            569869340672 B (569.9 GB)
    Size (Converted):        -none-
    Revertible:              Yes (unlock and decryption required)
    LV Name:                 Heap
    Volume Name:             Heap
    Content Hint:            Apple_HFS

The actual Terminal output is nested and longer. Here, only the most important information is listed.


Apparently decrypting an external disk is very slow (or even paused) if you use a laptop which is running on batteries. So always make sure to plug it into mains power when performing this operation.

3
  • 1
    Would you know if it's expected that erasing a disk (formatting) with enabling encryption, and then copying 50GB of files to that shows the "Complete" state immediately when copying is done? But when doing the same for Time Machine (first erasing and enabling encryption), TM goes into (another?) long lasting encryption process when the first backup is complete? Both start with an empty, encrypted disk...
    – Arjan
    Commented Mar 14, 2013 at 9:19
  • 1
    Note that as soon as you tell Mac OS X you want to encrypt an external disk, it will tell you (a) that you need to reboot and (b) diskutil will say nothing about encryption, but that the physical volume's Status is Checking. You do not need to reboot: a volume eject/re-insert will work. Once you do that, diskutil will give you output similar to the above. Commented Dec 27, 2015 at 4:42
  • It seems like this only works for HFS / non-APFS volumes. See here for an answer when using APFS volumes.
    – n1000
    Commented May 7, 2019 at 7:00
22

On OS X 10.11.1 the output diskutil cs list shows encryption progress as:

+-- Logical Volume Group 19B060CE-52A6-4102-9F3D-E6108BD91316
    =========================================================
    Name:         My harddrive
    Status:       Online
    Size:         499113885696 B (499.1 GB)
    Free Space:   18972672 B (19.0 MB)
    |
    +-< Physical Volume 3F2AE785-3A81-45E2-9A3B-93BA762C0AD2
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk5s2
    |   Status:   Online
    |   Size:     499113885696 B (499.1 GB)
    |
    +-> Logical Volume Family E4B845E2-2294-4F26-89B5-25ADE02747D2
        ----------------------------------------------------------
        Encryption Type:         AES-XTS
        Encryption Status:       Unlocked
        Conversion Status:       Converting (forward)
        High Level Queries:      Not Fully Secure
        |                        Passphrase Required
        |                        Accepts New Users
        |                        Has Visible Users
        |                        Has Volume Key
        |
        +-> Logical Volume 58EA9B33-CD1A-49F7-A596-E2C5ED6E24B5
            ---------------------------------------------------
            Disk:                  disk6
            Status:                Online
            Size (Total):          498742591488 B (498.7 GB)
            Conversion Progress:   2%
            Revertible:            Yes (unlock and decryption required)
            LV Name:               My harddrive
            Volume Name:           My harddrive
            Content Hint:          Apple_HFS

For easier viewing use diskutil cs list | grep Conversion to only show the line with the progress.

18

i like to do it this way.

while true; do diskutil cs list | grep 'Conversion Progress' ; sleep 30; done

will print out an updated progress every 30 seconds so you can just leave it running and glance over and instantly see where the progress is up to without having to run the command again.

2
4

Just as an extra note to the existing answers, I ran this through grep to get a concise answer to each conversion.

diskutil cs list | grep -e "Conversion" -e "Volume Name"

The result was:

|       Conversion Status:       Converting (forward)
|           Conversion Progress:   71%
|           Volume Name:           Macintosh HD
        Conversion Status:       Converting (forward)
            Conversion Progress:   4%
            Volume Name:           Data
3

I combined the two answers by Nick Bedford and Owlyfool to produce this:

watch -n 5 "diskutil cs list | grep -e Conversion -e Volume\ Name"

You'll need the linux "watch" command for this. This runs the command by Nick every 5 seconds to give you an update, without scrolling the terminal a whole lot. Also shows a nice timestamp. Example output:

Every 5.0s: diskutil cs list | grep -e Conversion -e Volume\ Name   Wed Jul 20 19:21:47 2016

|       Conversion Status:       Complete
|           Volume Name:           Macintosh HD
        Conversion Status:       Converting (forward)
            Conversion Progress:   1%
            Volume Name:           Stijn_Spijker

Show my (already encrypted) internal disk, and my USB disk being encrypted.

2
  • 1
    Maybe add the info that 'watch' needs to be installed first - see: stackoverflow.com/a/23370705/1510754 Commented Jul 23, 2016 at 10:35
  • Owh, haha, coming from Linux I didn't even realize I installed this myself and it was not system provided.
    – Stijn
    Commented Jul 31, 2016 at 7:53
3

Something a little simpler than above. From this File Vault question I also learnt that:

fdesetup status

gives truncated output:

FileVault is Off.
Decryption in progress: Percent completed = 20.58

(OS Sierra 10.12.5)

2

Based on the answers here, I set up this command for reasonably spaced out status reports with APFS (as opposed to Core Storage)

while true; do diskutil apfs list | grep 'Decryption' ; sleep 720; done

The fdesetup status works quite well for a quick status check.

2

Similar to owlyfools answer, you can do this for APFS disks using

while true; do diskutil apfs list | grep 'Encryption Progress' ; sleep 60; done
1
  • Welcome to Ask Different! Please refrain from adding comments in the Answer section, this is for answers to the questions. Once you have sufficient reputation you’ll be able to add comments and ask follow-up questions. To gain reputation, answer questions that are clear and concise. - From Review
    – fsb
    Commented Mar 8, 2019 at 19:42
2

Catalina works with:

while : ; do printf "$(date) - " ; diskutil apfs list|grep Encryption ; sleep 300;done

Giving 5-minute (300 second) interval updates...

If you use:

diskutil apfs list

to find out which disk (in this case disk5) you can be more specific/efficient:

while : ; do printf "$(date) - "; diskutil apfs list disk5|grep Encryption ; sleep 300;done

This gives the output as:

Tue Feb 16 21:51:25 AEDT 2021 -         Encryption Progress:       10.0% (Unlocked)
Tue Feb 16 21:56:25 AEDT 2021 -         Encryption Progress:       11.0% (Unlocked)
Tue Feb 16 22:01:26 AEDT 2021 -         Encryption Progress:       11.0% (Unlocked)
Tue Feb 16 22:06:26 AEDT 2021 -         Encryption Progress:       12.0% (Unlocked)
1

The accepted answer does not seem to work for APFS volumes. It seems that the only way here is to use fdesetup status. This fantastic blog offers a script which basically uses that command to determine the status. In the article it reads:

If encrypted, the following message is displayed:

FileVault is On.

If not encrypted, the following message is displayed:

FileVault is Off.

If encrypting, the following message is displayed:

Encryption in progress: Percent complete = 27

If decrypting, the following message is displayed without quotes:

Decryption in progress: Percent complete = 10

These are also the outputs of fdesetup status.

1

If you'd like to see a more detailed breakdown, open Console (in Applications/Utilities) while running one of the commands described in the other answers in Terminal, e.g. diskutil apfs list. You'll see status output from the operating system kernel that tells you something like the following:

query_encryption_rolling_state:6317: disk2s1 er:query: returning following: 1, 10[2562600, 1361461884], 60

The number directly before the square brackets is the percentage that gets output on the command line (followed by a ".0%" even though that's not correct). The first number in the square brackets is the region of the disk currently being worked on. The second number in the square brackets is the total number of regions on the disk. You can divide the first into the second to get a more detailed percentage of where you're at.

This also works for monitoring FileVault decryption status.

1

Came looking for this and the answer provided by manicmoose was the closest to what I needed however, as I didn't like that sleep was not exact and the seconds counted up by 1 every 10-11 loops, I edited their code slightly.

while :; do 
    printf "$(date) - ";
    diskutil apfs list disk4|grep Encryption;
    sleep $((120 - $(date +%s) % 60)); 
done

The sleep now maxes out at 120 seconds minus seconds to the full minute so the output looks like

Thu  8 Aug 2024 19:20:31 BST -         Encryption Progress:       49.0% (Unlocked)
Thu  8 Aug 2024 19:22:00 BST -         Encryption Progress:       49.0% (Unlocked)
Thu  8 Aug 2024 19:24:00 BST -         Encryption Progress:       49.0% (Unlocked)
Thu  8 Aug 2024 19:26:00 BST -         Encryption Progress:       49.0% (Unlocked)

1st iteration is immediate but the 2nd onward are all on the minute

0

An alternative to the timed status reports in other answers that use diskutil cs list or diskutil apfs list, you can also use fdesetup status.

For the currently booted volume:

while true; do fdesetup status | grep 'Percent'; sleep 30; done

For a mounted external drive:

while true; do
    fdesetup status -device <disk identifier> | grep 'Percent'
    sleep 30
done

where <disk identifier> is in a form like disk3s1 corresponding to your external disk's system or data volume as found in diskutil list.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .