2014-09-04 3 views
-1

Я пытаюсь написать скрипт, чтобы размонтировать/смонтировать все внешний диск на OS X.командной строки, чтобы отключить все внешние диск на OS X

Мой список диска выглядит следующим образом:

$ diskutil list 
/dev/disk0 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *500.3 GB disk0 
    1:      EFI EFI      209.7 MB disk0s1 
    2:   Apple_CoreStorage       499.4 GB disk0s2 
    3:     Apple_Boot Recovery HD    650.0 MB disk0s3 
/dev/disk1 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:     Apple_HFS Macintosh HD   *496.3 GB disk1 
           Logical Volume on disk0s2 
           AE949253-803C-49DC-93EA-7DFC74C2EAA2 
           Unencrypted 
/dev/disk2 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *1.0 TB  disk2 
    1:      EFI EFI      209.7 MB disk2s1 
    2:     Apple_HFS Time Machine   999.9 GB disk2s2 
/dev/disk3 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *750.2 GB disk3 
    1:      EFI EFI      209.7 MB disk3s1 
    2:  Microsoft Basic Data USB HD 4    749.9 GB disk3s2 
/dev/disk4 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *500.1 GB disk4 
    1:      EFI EFI      209.7 MB disk4s1 
    2:  Microsoft Basic Data Backup     499.9 GB disk4s2 
/dev/disk5 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *1.0 TB  disk5 
    1:      EFI EFI      209.7 MB disk5s1 
    2:     Apple_HFS USB HD 1    999.9 GB disk5s2 
/dev/disk6 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *4.0 TB  disk6 
    1:      EFI EFI      209.7 MB disk6s1 
    2:     Apple_HFS USB HD 2    4.0 TB  disk6s2 
/dev/disk8 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  Apple_partition_scheme      *122.9 GB disk8 
    1:  Apple_partition_map       32.3 KB disk8s1 
    2:    Apple_Driver43       28.7 KB disk8s2 
    3:    Apple_Driver43       28.7 KB disk8s3 
    4:   Apple_Driver_ATA       28.7 KB disk8s4 
    5:   Apple_Driver_ATA       28.7 KB disk8s5 
    6:    Apple_FWDriver       262.1 KB disk8s6 
    7:   Apple_Driver_IOKit       262.1 KB disk8s7 
    8:    Apple_Patches       262.1 KB disk8s8 
    9:     Apple_HFS Windows     122.9 GB disk8s9 

Итак, я пишу сценарий, как:

#!/bin/sh 

diskutil list | grep -oE 'disk[0-9]s2' | while read i 
do 
    Prtl=`diskutil info ${i} | grep Protocol | cut -d ' ' -f 21` 
    if [ ${Prtl} = USB ]; then 
    diskutil unmount ${i} 
    fi 
done 

Я хотел бы знать следующее:

1.Is есть способ идентифицировать внешний диск без использования информации diskutil? Причина в том, что информация diskutil запускается спящим приводом, мой скрипт очень медленный.

2. Есть ли еще более умный способ? Я так сильно искал Google, но я не могу найти способ, который я хочу. Надеюсь помочь мне ...

+0

Запр.при http://apple.stackexchange.com – trojanfoe

ответ

1

Вы можете попробовать использовать system_profiler с различными типами данных. Я не думаю, что он пробуждает приводы. system_profiler SPUSBDataType предоставит вам все USB-устройства и их точки монтирования, а system_profiler SPFireWireDataType сделает то же самое для устройств FireWire. system_profiler -listDataTypes предоставит вам все типы данных. После того как вы разобрали точки монтирования, вы можете размонтировать эти диски.

Он не идеально переносится в разных системах, чтобы просто сделать USB, а затем FireWire, затем Thunderbolt, потому что могут быть разные соединения. Чтобы попробовать все, вы можете сделать system_profiler (в котором перечислены все данные), а затем выполнить поиск чего-нибудь, следующего за «Mount Point:», и отключить все, что после этого.

Это пример данных, которые он печатает на диске USB:

1394A/USB2.0/eSATA combo drive: 

      Product ID: 0x000a 
      Vendor ID: 0x0928 (Oxford Semiconductor Ltd.) 
      Version: 0.00 
      Serial Number: 2009100700000936 
      Speed: Up to 480 Mb/sec 
      Manufacturer: PI-208 
      Location ID: 0xfd500000/3 
      Current Available (mA): 500 
      Current Required (mA): 0 
      Capacity: 1 TB (1,000,204,886,016 bytes) 
      Removable Media: Yes 
      Detachable Drive: Yes 
      BSD Name: disk5 
      Partition Map Type: GPT (GUID Partition Table) 
      S.M.A.R.T. status: Not Supported 
      Volumes: 
      disk5s1: 
       Capacity: 209.7 MB (209,715,200 bytes) 
       BSD Name: disk5s1 
       Content: EFI 
      Clone: 
       Capacity: 650.2 GB (650,200,002,560 bytes) 
       Available: 101.49 GB (101,489,717,248 bytes) 
       Writable: Yes 
       File System: Journaled HFS+ 
       BSD Name: disk5s2 
       Mount Point: /Volumes/Clone 
       Content: Apple_HFS 
       Volume UUID: F42D6E05-C72C-386A-86AD-635A818E1FE3 
      LocalBackup: 
       Capacity: 339.53 GB (339,526,688,768 bytes) 
       Available: 53.88 GB (53,881,970,688 bytes) 
       Writable: Yes 
       File System: Journaled HFS+ 
       BSD Name: disk5s3 
       Mount Point: /Volumes/LocalBackup 
       Content: Apple_HFS 
       Volume UUID: 04974080-CB76-3CC3-BC37-274241D1BC0F 
      Yosemite: 
       Capacity: 9.35 GB (9,350,000,640 bytes) 
       Available: 9.31 GB (9,311,920,128 bytes) 
       Writable: Yes 
       File System: Journaled HFS+ 
       BSD Name: disk5s4 
       Mount Point: /Volumes/Yosemite 
       Content: Apple_HFS 
       Volume UUID: AE809679-3C2A-3BE4-950F-551663791CE3 
+0

Большое спасибо. Я возьму ваше предложение. – xanadu6291

Смежные вопросы