Qual è il modo corretto di espellere un dmg APFS dalla riga di comando?

1

Crea un DMG APFS usando l'applicazione Utility Disco di Apple e chiamalo test_apfs.dmg.

Si può montarlo con:

hdiutil attach -plist ~/Desktop/test_apfs.dmg

che fornisce il seguente output:

<?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>system-entities</key>
    <array>
        <dict>
            <key>content-hint</key>
            <string>GUID_partition_scheme</string>
            <key>dev-entry</key>
            <string>/dev/disk2</string>
            <key>potentially-mountable</key>
            <false/>
            <key>unmapped-content-hint</key>
            <string>GUID_partition_scheme</string>
        </dict>
        <dict>
            <key>content-hint</key>
            <string>Apple_APFS</string>
            <key>dev-entry</key>
            <string>/dev/disk2s1</string>
            <key>potentially-mountable</key>
            <false/>
            <key>unmapped-content-hint</key>
            <string>7C3457EF-0000-11AA-AA11-00306543ECAC</string>
        </dict>
        <dict>
            <key>content-hint</key>
            <string>41504653-0000-11AA-AA11-00306543ECAC</string>
            <key>dev-entry</key>
            <string>/dev/disk3s1</string>
            <key>mount-point</key>
            <string>/Volumes/Untitled</string>
            <key>potentially-mountable</key>
            <true/>
            <key>unmapped-content-hint</key>
            <string>41504653-0000-11AA-AA11-00306543ECAC</string>
            <key>volume-kind</key>
            <string>apfs</string>
        </dict>
        <dict>
            <key>content-hint</key>
            <string>EF57347C-0000-11AA-AA11-00306543ECAC</string>
            <key>dev-entry</key>
            <string>/dev/disk3</string>
            <key>potentially-mountable</key>
            <false/>
            <key>unmapped-content-hint</key>
            <string>EF57347C-0000-11AA-AA11-00306543ECAC</string>
        </dict>
    </array>
</dict>
</plist>

Dopo aver provato a staccare con:

hdiutil detach /Volumes/Untitled

elenco diskutil, restituisce:

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +100.0 MB   disk2
   1:                 Apple_APFS Container disk3         100.0 MB   disk2s1

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +100.0 MB   disk3
                                 Physical Store disk2s1
   1:                APFS Volume Untitled                65.5 KB    disk3s1

e tornando all'applicazione Utility Disco di Apple, vedo il volume Untitled elencato, ma è disattivato.

Posso solo espellerlo completamente se poi faccio:

hdiutil detach /dev/disk2

Quindi, il montaggio è un comando, l'espulsione totale è due.

È questo il solo / modo corretto per espellere questo tipo di volume dalla riga di comando? Quello che vorrei essere in grado di fare è espellerlo completamente con un singolo comando. È possibile?

    
posta ericg 19.10.2018 - 20:22
fonte

1 risposta

2

Utilizza il seguente comando.

diskutil eject disk2

Dalle pagine man per hdiutil , viene visualizzato quanto segue:

 detach dev_name [-force]
            detach a disk image and terminate any associated process.
            dev_name is a partial /dev node path (e.g. "disk1").  As of
            Mac OS X 10.4, dev_name can also be a mountpoint.  If Disk
            Arbitration is running, detach will use it to unmount any
            filesystems and detach the image.  If not, detach will attempt
            to unmount any filesystems and detach the image directly
            (using the 'eject' ioctl).  If Disk Arbitration is not run-
            ning, it may be necessary to unmount the filesystems with
            umount(8) before detaching the image.  eject is a synonym for
            detach.  In common operation, detach is very similar to
            diskutil(8)'s eject.

            Options:
            -force   ignore open files on mounted volumes, etc.

Quindi la documentazione afferma che potrebbe essere necessario smontare prima i filesystem. Presumo che questo è ciò che ha fatto il comando hdiutil detach /Volumes/Untitled .

Dalle pagine man per diskutil , viene visualizzato quanto segue:

 eject device
            Eject a disk.  Media will become offline for the purposes of
            being a data store for file systems or being a member of con-
            structs such as software RAID or direct data.  Additionally,
            removable media will become eligible for safe manual removal;
            automatically-removable media will begin its physical (motor-
            ized) eject sequence.

Qui non si fa menzione di dover eseguire prima altri comandi.

Note: For the diskutil eject disk2 command to work, the Untitled volume can not be in use.

    
risposta data 19.10.2018 - 21:48
fonte

Leggi altre domande sui tag