首页 > 代码库 > OSX: 逻辑卷管理系统Core Storage(4)

OSX: 逻辑卷管理系统Core Storage(4)

这里讨论一个复杂的例子:如何使用命令行来解密一个使用FileVault 2加密了的Fusion Drive。

这个有点复杂,对于普通的File Vault 2磁盘加密,我们可以直接使用diskutil cs revert来解密,但是FusionDrive + FileVault 2的情况来说不能用普通的方式直接对FileVault 2的分区解密,因为它会破坏Fusion Drive的结构,从而导致数据丢失。


启动盘的简单情况:

如果你是从加密的Fusion Drive启动的系统上操作,那么可以简单地使用下面命令来解密,无损地恢复到未加密的Fusion Drive。

sudo fdesetup disable
它会要求输入准许解密的用户密码或者是加密时的恢复密码。


非启动盘的情况:

相比较启动盘的情况会稍微麻烦点。

首先:要得到被加密的逻辑卷(Logical Volume)的UUID,运行命令:

$ diskutil cs list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 2E02CB16-DA82-4E9D-9234-78826C926B39
    =========================================================
    Name:         P80
    Status:       Online
    Size:         79865782272 B (79.9 GB)
    Free Space:   44883968 B (44.9 MB)
    |
    +-< Physical Volume 3DBD45A4-EB70-40E0-B01F-FEB3DBA8CD9A
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk2s4
    |   Status:   Online
    |   Size:     40000000000 B (40.0 GB)
    |
    +-< Physical Volume 0B3E9A31-1B0A-41D8-B64C-92DBFBCD6C57
    |   ----------------------------------------------------
    |   Index:    1
    |   Disk:     disk2s6
    |   Status:   Online
    |   Size:     39865782272 B (39.9 GB)
    |
    +-> Logical Volume Family 4A7EFCCD-7A45-4F73-A651-C87EB73684C8
        ----------------------------------------------------------
        Encryption Status:       Locked
        Encryption Type:         AES-XTS
        Conversion Status:       Complete
        Conversion Direction:    -none-
        Has Encrypted Extents:   Yes
        Fully Secure:            Yes
        Passphrase Required:     Yes
        |
        +-> Logical Volume 7763C5B4-CB88-4988-95FA-4A757FCA9DDC
            ---------------------------------------------------
            Disk:                  -none-
            Status:                Locked
            Size (Total):          79200124928 B (79.2 GB)
            Conversion Progress:   -none-
            Revertible:            No
            LV Name:               lvP80
            Content Hint:          Apple_HFS

根据上面的例子,Logical Volume的UUID是“7763C5B4-CB88-4988-95FA-4A757FCA9DDC”

还可以看出:Logical VolumeFamily和Logical Volume都是被锁住的(Locked),锁住的时候,用户无法访问其中的内容,只有用户输入正确的加密密码后,才会解锁,用户才可以存取其中的内容。


其次:如果它时被锁住的(locked),那么运行下面命令来解锁:

diskutil cs unlockVolume -stdinpassphrase


然后:需要区分,当初加密时选择的加密/恢复的形式:个人恢复密码(personal recovery key),机构恢复密码(institutional recovery key),恢复用户。

个人恢复密码的情况使用命令

diskutil cs decryptVolume -passphrase recoverykey

恢复用户密码的情况使用命令:

diskutil cs decryptVolume vlUUID -stdinpassphrase

机构恢复密码的情况使用命令

首先得到当初的加密时得到的FileVaultMaster钥匙串文件,并确保可以存取到。

然后使用下面命令来打开这个钥匙串文件:

security unlock-keychain /path/to/the/FileVaultMaster.keychain

最后再解密:

diskutil cs unlockVolume UUID -recoveryKeychain /path/to/the/FileVaultMaster.keychain


最后:监视解密过程:

<pre name="code" class="python">$ diskutil cs list | grep "Conversion Status"
   LV Conversion Progress:     100%


验证:

再运行命令就可以看见,该分区已经被解密:

$ diskutil cs list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 2E02CB16-DA82-4E9D-9234-78826C926B39
    =========================================================
    Name:         P80
    Status:       Online
    Size:         79865782272 B (79.9 GB)
    Free Space:   44883968 B (44.9 MB)
    |
    +-< Physical Volume 3DBD45A4-EB70-40E0-B01F-FEB3DBA8CD9A
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk2s4
    |   Status:   Online
    |   Size:     40000000000 B (40.0 GB)
    |
    +-< Physical Volume 0B3E9A31-1B0A-41D8-B64C-92DBFBCD6C57
    |   ----------------------------------------------------
    |   Index:    1
    |   Disk:     disk2s6
    |   Status:   Online
    |   Size:     39865782272 B (39.9 GB)
    |
    +-> Logical Volume Family 4A7EFCCD-7A45-4F73-A651-C87EB73684C8
        ----------------------------------------------------------
        Encryption Status:       Unlocked
        Encryption Type:         None
        Conversion Status:       NoCoversion
        Conversion Direction:    -none-
        Has Encrypted Extents:   No
        Fully Secure:            No
        Passphrase Required:     No
        |
        +-> Logical Volume 7763C5B4-CB88-4988-95FA-4A757FCA9DDC
            ---------------------------------------------------
            Disk:                  -none-
            Status:                Online
            Size (Total):          79200124928 B (79.2 GB)
            Conversion Progress:   -none-
            Revertible:            Yes
            LV Name:               lvP80
            Content Hint:          Apple_HFS


解密之后,就可以使用Revert来把Fusion Drive转化未普通的磁盘了。