Tôi có thể định cấu hình Macbook của mình để ngắt kết nối tất cả các ổ đĩa ngoài khi đóng nắp không?


10

Tôi có Mavericks 13 "mới chạy Mavericks. Máy tính này được kết nối với ổ USB ngoài mà tôi sử dụng để sao lưu Time Machine và để lưu trữ bên ngoài Sao lưu Time Machine xảy ra vài lần mỗi ngày và hầu hết ổ không hoạt động ngày.

Khi tôi đang vội vã đến một cuộc họp, đến phòng máy chủ hoặc tôi sẽ về nhà vào cuối ngày, tôi muốn làm như sau:

  1. Đóng nắp trên Macbook của tôi, nhanh chóng.
  2. Yêu cầu Mac tự động ngắt kết nối tất cả các ổ đĩa ngoài, càng nhanh càng tốt và buộc phải có nếu cần. Tôi sẵn sàng chờ vài giây để tất cả đèn tắt.

Có cách nào để máy tính tự động ngắt kết nối tất cả các ổ đĩa ngoài ngay khi tôi đóng nắp máy Mac không?

Hiện tại nếu tôi quên ngắt kết nối các ổ đĩa ngoài, máy Mac của tôi sẽ báo lỗi cho tôi sau đó với lỗi "Đĩa không được đẩy ra đúng cách. Nếu có thể, hãy luôn đẩy đĩa ra trước khi rút phích cắm hoặc tắt."

Tôi biết cách tốt nhất là luôn luôn ngắt sạch đĩa trước khi xóa giao diện đĩa, nhưng tôi đang tìm một giải pháp tự động. Tôi không quan tâm lắm nếu một hình ảnh sao lưu của Time Machine bị gián đoạn hoặc bị hỏng, vì một trong những bản sao lưu tiếp theo sẽ hoạt động và tôi rất hiếm khi cần khôi phục từ bản sao lưu. Vì hệ thống tệp là một hệ thống tệp nhật ký, tạp chí minh bạch xử lý nhiều lỗi tham nhũng hệ thống tệp khác.


Vì đăng xuất khỏi tài khoản của bạn sẽ ngắt kết nối tất cả các ổ đĩa, có một nhược điểm đáng kể nào khi chỉ đăng xuất không? Ngoài ra, tôi tin rằng hệ điều hành xóa tất cả các hệ thống tập tin IO ghi, do đó, khả năng xảy ra sự cố thực tế với việc phóng trong khi ngủ dường như khá thấp đối với tôi - chắc chắn là như vậy đối với các hệ thống tập tin được ghi nhật ký.
bmike

Câu trả lời:


8

Có một số ứng dụng có thể chạy tập lệnh khi ngủ:

  • SleepWatcher - đơn giản nhưng hiệu quả.
  • Kịch bản - cũng có thể chạy các kịch bản vào các thời điểm khác như sau khi thức dậy.
  • ControlPlane - tùy biến nhiều hơn, cho phép bạn chạy các tập lệnh sau nhiều sự kiện khác nhau.

Một tập lệnh bash như sau sẽ ngắt kết nối tất cả các đĩa được chỉ định:

VOLUMES="/Volumes/drive1 /Volumes/drive2 /Volumes/drive3"
for volume in $VOLUMES ; do [ -d $volume ] && umount -f $volume done

Để ngắt kết nối tất cả các khối ngoại trừ /:

umount -A

hoặc sạch sẽ hơn

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

6

Một tùy chọn khác là Jettison (có sẵn thông qua App Store) - đó là những gì tôi đã sử dụng trong một vài tháng nay và không có vấn đề gì cả. Gần đây, nó đã đạt được tùy chọn tự động kết nối lại các đĩa vẫn được kết nối khi bạn thức dậy.

Phiên bản v1.3.0 mới hơn (chỉ tải xuống trực tiếp - Tôi cho rằng nó đang trên đường đến App Store) có giá cao hơn và họ giải thích lý do tại sao điều này lại nằm trong Câu hỏi thường gặp của họ.

Nếu tôi đọc chính xác, người ta có thể mua phiên bản App Store với giá hai đô la và sau đó nâng cấp lên phiên bản tải xuống trực tiếp miễn phí, nhưng tôi chưa xác nhận hoặc đã thử điều này.

Không chính xác đắt ở cả hai mức giá, nhưng không miễn phí như tùy chọn SleepWatcher dường như.


4

Tôi sẽ giải thích về câu trả lời của @ grgarside.

Tôi đang sử dụng SleepWatcher

  1. Cài đặt từ các cổng:

    sudo port install sleepwatcher
    
  2. Đọc hướng dẫn tại /opt/local/share/doc/sleepwatcher/ReadMe.rtfvà thông qua man sleepwatcher. Đọc Machint cũ này từ Macworld: Chữa Mac mất ngủ bằng Hệ thống SleepWatcher . Theo Machint, tôi chỉ có thể thêm mã vào ~/.sleep~/.wakeup, hoặc vào các tệp toàn cầu /etc/rc.sleep& /etc/rc.wakeup.

  3. Đặt mã sau vào ~/.sleep:

    osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
  4. Kích hoạt đồng hồ ngủ. Thay đổi <key>Disabled</key><true/>thành <key>Disabled</key><false/>.

    sudo vim /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl load /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl list | grep sleepwatcher
    
  5. Kiểm chứng:

    ps aux |grep [s]leepwatcher
    root              421   0.0  0.0  2459568   1012   ??  Ss    2:45PM   0:00.00 /opt/local/bin/daemondo --label=sleepwatcher --start-cmd /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup ; --pid=exec
    root              422   0.0  0.0  2460656   1888   ??  S     2:45PM   0:00.17 /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup
    
  6. Làm xong!


Tôi có thể sử dụng một số đánh giá về câu trả lời này để đảm bảo rằng tôi đang kích hoạt .plistchính xác.
Stefan Lasiewski

Theo dõi từng bước một, nhưng nó không làm việc cho tôi. Sau khi ngủ, tôi rút ổ cứng gắn ngoài, MacBook5,3 của tôi thức dậy và khi tôi mở nắp, tôi gặp phải lỗi đĩa bị đẩy ra không đáng có.
Saaru Lindestøkke

Điều này làm việc cho tôi, nhưng chỉ đôi khi. Không chắc chắn lý do tại sao.
Stefan Lasiewski

1
Tôi vẫn đang sử dụng ML, vì vậy nó không phải là Mavericks cụ thể và tôi không gặp lỗi khi máy hoạt động. Tôi nhận thấy rằng tập lệnh .s ngủ đôi khi được thực thi khi thức dậy, như thể nó không có đủ thời gian để làm như vậy khi nó đi ngủ.
Saaru Lindestøkke

1
Cũng là một hướng dẫn tốt ở đây: damacy.net/post/9377132648/...
Dan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.