ฉันจะกำหนดค่า Macbook ของฉันให้ยกเลิกการต่อเชื่อมไดรฟ์ภายนอกทั้งหมดเมื่อฉันปิดฝาได้หรือไม่


10

ฉันมี Macbook Pro รุ่นใหม่ที่ใช้ Mavericks ขนาด 13 "คอมพิวเตอร์เครื่องนี้เชื่อมต่อกับไดรฟ์ USB ภายนอกที่ฉันใช้สำหรับการสำรองข้อมูล Time Machine ของฉันและสำหรับการจัดเก็บข้อมูลภายนอกการสำรองข้อมูล Time Machine เกิดขึ้นสองสามครั้งต่อวัน วัน.

เมื่อฉันรีบไปประชุมไปที่ห้องเซิร์ฟเวอร์หรือฉันกำลังมุ่งหน้ากลับบ้านในตอนท้ายของวันฉันอยากจะทำสิ่งต่อไปนี้:

  1. ปิดฝาบน Macbook ของฉันอย่างรวดเร็ว
  2. ให้ Mac ทำการ unmount ไดรฟ์ภายนอกทั้งหมดโดยเร็วที่สุดโดยอัตโนมัติและบังคับให้ใช้ตามความจำเป็น ฉันยินดีที่จะรอไม่กี่วินาทีเพื่อให้ไฟทั้งหมดปิด

มีวิธีที่จะทำให้คอมพิวเตอร์ยกเลิกการเมานต์ไดรฟ์ภายนอกทั้งหมดโดยอัตโนมัติทันทีที่ฉันปิดฝาบน Mac หรือไม่

ขณะนี้ถ้าฉันลืมยกเลิกการต่อเชื่อมไดรฟ์ภายนอก Mac ของฉันจะแจ้งให้ฉันทราบในภายหลังว่ามีข้อผิดพลาด "ดิสก์ไม่ดีดออกมาอย่างเหมาะสมถ้าเป็นไปได้ให้นำดิสก์ออกทุกครั้งก่อนที่จะถอดปลั๊กหรือปิดเครื่อง"

ฉันรู้ว่าเป็นวิธีที่ดีที่สุดในการเลิกเมานท์ดิสก์อย่างหมดจดก่อนที่จะลบส่วนต่อประสานดิสก์ออก แต่ฉันกำลังมองหาโซลูชันอัตโนมัติ ฉันไม่ได้กังวลมากหากอิมเมจการสำรองข้อมูล Time Machine หนึ่งถูกขัดจังหวะหรือเสียหายเนื่องจากการสำรองข้อมูลครั้งต่อไปจะทำงานได้และฉันแทบไม่จำเป็นต้องกู้คืนจากการสำรองข้อมูลเลย เนื่องจากระบบไฟล์เป็นระบบไฟล์ที่ทำเจอร์นัลเจอร์นัลโปร่งใสจะดูแลข้อผิดพลาดความเสียหายของระบบไฟล์อื่น ๆ อีกมากมาย


เนื่องจากการออกจากระบบบัญชีของคุณ unmount ไดรฟ์ทั้งหมดจะมีข้อเสียที่สำคัญเพียงแค่ออกจากระบบ? นอกจากนี้ฉันเชื่อว่าระบบปฏิบัติการจะล้างระบบไฟล์ทั้งหมดที่ IO เขียนดังนั้นโอกาสของปัญหาจริงที่เกิดขึ้นกับการดีดออกระหว่างการนอนหลับนั้นค่อนข้างต่ำสำหรับฉัน - ทวีคูณดังนั้นสำหรับระบบไฟล์ที่ถูกเจอร์นัล
bmike

คำตอบ:


8

มีแอพจำนวนมากที่สามารถเรียกใช้สคริปต์ในโหมดสลีป:

  • SleepWatcher - เรียบง่าย แต่มีประสิทธิภาพ
  • สถานการณ์จำลอง - ยังสามารถเรียกใช้สคริปต์ในเวลาอื่น ๆ เช่นหลังจากตื่น
  • ControlPlane - ปรับแต่งได้มากขึ้นช่วยให้คุณเรียกใช้สคริปต์หลังจากเหตุการณ์ต่าง ๆ มากมาย

สคริปต์ทุบตีเช่นต่อไปนี้จะยกเลิกการต่อเชื่อมดิสก์ที่ระบุทั้งหมด:

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

หากต้องการยกเลิกการต่อเชื่อมวอลุ่มทั้งหมดยกเว้น/:

umount -A

หรือมากกว่าหมดจด ...

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

6

ตัวเลือกอื่นคือJettison (หาได้จาก App Store) - นั่นคือสิ่งที่ฉันใช้มาสองสามเดือนแล้วและยังไม่มีปัญหาใด ๆ เลย เมื่อเร็ว ๆ นี้ได้รับตัวเลือกในการเชื่อมต่อดิสก์ที่ยังคงเชื่อมต่อใหม่โดยอัตโนมัติเมื่อคุณปลุกจากโหมดสลีป

v1.3.0 ที่ใหม่กว่า (ดาวน์โหลดโดยตรงเท่านั้น - ฉันคิดว่ามันกำลังจะมาถึง App Store) มีค่าใช้จ่ายมากขึ้นและพวกเขาอธิบายว่าทำไมสิ่งนี้ถึงอยู่ในคำถามที่พบบ่อย

หากฉันอ่านอย่างถูกต้องเราสามารถซื้อเวอร์ชัน App Store สองดอลลาร์จากนั้นอัปเกรดเป็นเวอร์ชันดาวน์โหลดโดยตรงได้ฟรี แต่ฉันยังไม่ได้ยืนยันหรือทดลองใช้

ไม่ว่าราคาจะแพง แต่ไม่ฟรีเหมือนตัวเลือก SleepWatcher


4

ฉันจะอธิบายอย่างละเอียดเกี่ยวกับคำตอบของ @ grgarside

ฉันใช้ SleepWatcher

  1. ติดตั้งจากพอร์ต:

    sudo port install sleepwatcher
    
  2. อ่านคู่มือที่และผ่าน/opt/local/share/doc/sleepwatcher/ReadMe.rtf man sleepwatcherอ่านเก่า Machint จาก Macworld: รักษา insomniac Mac กับ SleepWatcher ระบบ ตามที่ Machint ฉันก็สามารถเพิ่มรหัส~/.sleepและ~/.wakeupหรือไฟล์ทั่วโลกและ/etc/rc.sleep/etc/rc.wakeup

  3. วางรหัสต่อไปนี้ใน~/.sleep:

    osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
  4. เปิดใช้งาน sleepwatcher เปลี่ยนไป<key>Disabled</key><true/><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. ตรวจสอบ:

    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. ทำ!


ฉันสามารถใช้คำวิจารณ์ในคำตอบนี้เพื่อให้แน่ใจว่าฉันเปิดใช้งาน.plistได้อย่างถูกต้อง
Stefan Lasiewski

ติดตามมันทีละขั้นตอน แต่ไม่ได้ผลสำหรับฉัน หลังการนอนหลับฉันถอดปลั๊กฮาร์ดไดรฟ์ภายนอก MacBook5,3 ของฉันตื่นขึ้นมาและเมื่อฉันเปิดฝาฉันได้รับข้อผิดพลาดดิสก์ที่ไม่ได้เปิดใช้งานอย่างไม่ถูกต้อง
Saaru Lindestøkke

สิ่งนี้ใช้ได้สำหรับฉัน แต่บางครั้งเท่านั้น ไม่แน่ใจว่าทำไม
Stefan Lasiewski

1
ฉันยังอยู่ใน ML ดังนั้นจึงไม่ใช่เฉพาะ Mavericks และฉันไม่ได้รับข้อผิดพลาดเมื่อเปิดใช้งานเครื่อง ฉันสังเกตเห็นว่าสคริปต์สลีปบางครั้งถูกเรียกใช้เมื่อตื่นราวกับว่ามันไม่มีเวลามากพอที่จะทำเช่นนั้นเมื่อมันเข้าสู่โหมดสลีป
Saaru Lindestøkke

1
ยังเป็นแนวทางที่ดีที่นี่: damacy.net/post/9377132648/…
ด่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.