The Apple Geek

Чему ты научился сегодня?

Базовые операции при работе с менеджером томов CoreStorage в OS X Lion

В OS X Lion появился менеджер томов CoreStorage. Пока его возможности достаточно скромны. В дальнейшем же CoreStorage будет очень активно развиваться.

Я хочу создать на новом диске два зашифрованных логических раздела.

Диск пуст:

$ diskutil list/dev/disk4   #:                       TYPE NAME                    SIZE       IDENTIFIER   0:                                                   *500.1 GB   disk4

Создаю Logical Volume Group. Синтаксис:

Usage:  diskutil coreStorage create lvgName        MountPoint|DiskIdentifier|DeviceNode ...Create a CoreStorage logical volume group from one more more disks.The specified disks will become the initial set of PVs.All existing data on the drive will be lost.Ownership of the affected disk is required.Example: diskutil coreStorage create MyLVG disk1

Команда:

$ diskutil corestorage create lvgCS disk4Started CoreStorage operationUnmounting disk4Repartitioning disk4Unmounting diskCreating the partition mapRediscovering disk4Adding disk4s2 to Logical Volume GroupCreating Core Storage Logical Volume GroupSwitching disk4s2 to Core StorageWaiting for Logical Volume Group to appearDiscovered new Logical Volume Group "332FA822-E709-42BD-819F-38D846BBBFB2"Core Storage LVG UUID: 332FA822-E709-42BD-819F-38D846BBBFB2Finished CoreStorage operation

Создаю зашифрованный Logical Volume. Синтаксис:

Usage:  diskutil coreStorage createVolume lvgUUID type name size        [-stdinpassphrase | -passphrase [passphrase]]Add a new logical volume to a CoreStorage logical volume group.Type is the file system to initialize on the new logical volume. Valid typesare Journaled HFS+ or Case-sensitive Journaled HFS+ or their aliases.Size is the amount of space to allocate from the parent logical volume group.Valid sizes are floating-point numbers with a suffix of B(ytes), S(512-byte-blocks), K(ilobytes), M(egabytes), G(igabytes), T(erabytes), P(etabytes),or (%) a percentage of the current size of the logical volume group.Example: diskutil coreStorage createVolume         11111111-2222-3333-4444-555555555555 jhfs+ myLV 10g

Команда создания первого раздела размером в 60% от родительского LVG (UUID LVG взял в результатах предыдущей команды):

$ diskutil corestorage createvolume 332FA822-E709-42BD-819F-38D846BBBFB2 \    jhfs+ lvCS1 60% -stdinpassphrasePassphrase for new volume: ***********Started CoreStorage operationWaiting for Logical Volume to appearFormatting file system for Logical VolumeInitialized /dev/rdisk3 as a 279 GB HFS Plus volume with a 24576k journalMounting diskCore Storage LV UUID: 11391E12-477A-44DA-AE48-F92B74C2512BCore Storage disk: disk3Finished CoreStorage operation

Команда создания второго раздела размером в 40%:

$ diskutil corestorage createvolume 332FA822-E709-42BD-819F-38D846BBBFB2 \    jhfs+ lvCS2 40% -stdinpassphrasePassphrase for new volume: ***********Started CoreStorage operationWaiting for Logical Volume to appearFormatting file system for Logical VolumeInitialized /dev/rdisk5 as a 74 GB HFS Plus volume with a 8192k journalMounting diskCore Storage LV UUID: B07706D0-8A64-4952-BB16-D5DEC2691687Core Storage disk: disk5Finished CoreStorage operation

Смотрю, что получилось:

$ diskutil corestorage list+-- Logical Volume Group 332FA822-E709-42BD-819F-38D846BBBFB2    =========================================================    Name:         lvgCS    Sequence:     3    Free Space:   119907090432 B (119.9 GB)    |    +-< Physical Volume 0C7E6C96-6890-49ED-9B70-2D66789A34CE    |   ----------------------------------------------------    |   Index:    0    |   Disk:     disk4s2    |   Status:   Online    |   Size:     499763888128 B (499.8 GB)    |    +-> Logical Volume Family 04AE431E-3C70-4F48-8F60-885ED7121980    |   ----------------------------------------------------------    |   Sequence:               2    |   Encryption Status:      Unlocked    |   Encryption Type:        AES-XTS    |   Encryption Context:     Present    |   Conversion Status:      NoConversion    |   Has Encrypted Extents:  Yes    |   Conversion Direction:   -none-    |   |    |   +-> Logical Volume 11391E12-477A-44DA-AE48-F92B74C2512B    |       ---------------------------------------------------    |       Disk:               disk3    |       Status:             Online    |       Sequence:           2    |       Size (Total):       299767734272 B (299.8 GB)    |       Size (Converted):   -none-    |       Revertible:         No    |       LV Name:            lvCS1    |       Volume Name:        lvCS1    |       Content Hint:       Apple_HFS    |    +-> Logical Volume Family 18E88D4F-FF92-4E31-AB2C-75F175DDAB63        ----------------------------------------------------------        Sequence:               2        Encryption Status:      Unlocked        Encryption Type:        AES-XTS        Encryption Context:     Present        Conversion Status:      NoConversion        Has Encrypted Extents:  Yes        Conversion Direction:   -none-        |        +-> Logical Volume B07706D0-8A64-4952-BB16-D5DEC2691687            ---------------------------------------------------            Disk:               disk5            Status:             Online            Sequence:           2            Size (Total):       79938060288 B (79.9 GB)            Size (Converted):   -none-            Revertible:         No            LV Name:            lvCS2            Volume Name:        lvCS2            Content Hint:       Apple_HFS

Размонтирую разделы через Finder, подключаю диск повторно. Разделы зашифрованы:

    +-> Logical Volume Family 04AE431E-3C70-4F48-8F60-885ED7121980    |   ----------------------------------------------------------    |   Sequence:               2    |   Encryption Status:      Locked    |   Encryption Type:        AES-XTS    |   Encryption Context:     Present    |   Conversion Status:      NoConversion    |   Has Encrypted Extents:  Yes    |   Conversion Direction:   -none-    |   |    |   +-> Logical Volume 11391E12-477A-44DA-AE48-F92B74C2512B    |       ---------------------------------------------------    |       Disk:               -none-    |       Status:             Locked    |       Sequence:           2    |       Size (Total):       299767734272 B (299.8 GB)    |       Size (Converted):   -none-    |       Revertible:         No    |       LV Name:            lvCS1    |       Content Hint:       Apple_HFS

Можно разблокировать разделы командой “diskutil corestorage unlockvolume”, а можно ввести пароль в приглашении:

Для смены пароля нужно сначала размонтировать раздел, а потом выполнить команду:

Usage:  diskutil coreStorage changeVolumePassphrase|passwd lvUUID        [-recoverykeychain file] | [-oldpassphrase old]        [-newpassphrase new] | [-stdinpassphrase]Change an encrypted logical volume's password. Beyond the CoreStorage UUID,you will be prompted interactively for parameters that you do not specify.Parameters must be given in the above order.Example: diskutil coreStorage changeVolumePassphrase         11111111-2222-3333-4444-555555555555

Процесс смены:

$ diskutil corestorage changeVolumePassphrase 11391E12-477A-44DA-AE48-F92B74C2512BOld passphrase:New passphrase:Repeat new passphrase:Started CoreStorage operationLogical Volume passphrase has been changedCore Storage LV UUID: 11391E12-477A-44DA-AE48-F92B74C2512BFinished CoreStorage operation

У команды diskutil есть и скрытые команды из группы corestorage, их можно посмотреть в статье ”Undocumented CoreStorage Commands”.

Comments