web-dev-qa-db-ja.com

Macbookでセカンダリハードドライブを無効またはスリープにする

私はいくつかのグーグル検索を行いましたが、答えは見つかりませんでした。 MacBookにSSDを取り付け、同時に元のハードドライブを光学ドライブベイに移動しました。私はOSと私の毎日のアプリのほとんどをSSDから実行しているので、ハードドライブは本当に必要なものを保存するためだけのものです。

今、私はそれを必要としないとき(電源オフまたは「強制スリープ」のように)ハードドライブを無効にしたいと思います。 diskutil unmountDiskを使用してディスクをアンマウントしようとしましたが、10分間ほど回転し続けました。多分それは予想されることですが、アンマウントするとすぐに止まると思いました。また、デフォルトで無効にして、必要なときだけマウントする(=電源を入れる)のもよいでしょう。

11
cpak

Appleはこれを望まないので...申し訳ありませんが、このベイは基本的に「DVD」機能に限定されています。つまり、ドライブが「動作」して制御するということですハードドライブではなくDVDドライブのように、Macbookは人々が思っているよりもはるかにカスタム化されています...また、このベイの出力が制限されており、多くのハードドライブがサポートされていないことを同時に学ぶこともできます。

0
deijmaster

Deijmasterに同意しません。 SATAポートはSATAポートです。 DVDに通常使用されるOSに違いはありません。

また、HDDを光学ベイに移動しました。

これまでにノイズを減らすために見つけた最良のものは次のとおりです。

  • Energy環境設定でディスクスリープを有効にしてください。
  • 次に、ターミナルで実行します。

    Sudo pmset -a disksleep 1
    

わずか1分後にディスクをスリープさせる。

また、このドライブでSpotlightを無効にすると、Spotlightを開いてもドライブはスピンアップしません。スポットライトを無効にするには:

Sudo mdutil -i off /Volumes/TSA-Data 

(または従来の方法:ドライブ(すべてのパーティション)をFinderサイドバーからSpotlight環境設定でSpotlightが除外する場所のリストにドラッグします)

それは明白な理由なしにまだ何度かスピンアップします。

11
sarfata

以前の回答を参考にして、次のコンパクトスクリプトを作成しました。スクリプトは、セカンダリドライブ(disk1、ここでは「HDD」)がマウントされていない場合はマウントして開き、マウントされている場合は排出します。

また、アイドル時間を1分に減らしました(ターミナル:Sudo pmset -a disksleep 1)をマウントし、マウントするたびに表示されるSpotlight例外のリストに「HDD」を配置しました。

そうすれば、ディスクが頻繁に起動することはありませんが、もちろんマウントすると、すぐに元に戻ります。アンマウントされたディスクは、たとえば、システム情報とディスクユーティリティ。


以下の「HDD」の代わりに正しいディスク名を使用してください!

スクリプト MountHDD.scpt

tell application "Finder"   
if not (exists the disk "HDD") then   
do Shell script "diskutil mountDisk 'disk1'"      
tell application "Finder"                 
activate    
make new Finder window     
set target of Finder window 1 to disk "HDD"    
end tell    
else   
do Shell script "diskutil eject 'disk1'"      
end if   
end tell   

スクリプトをプログラム(.app)として保存し、プログラムをDockに配置します。

起動時にディスクがまだスピンアップ(マウント解除)していてウェイクアップすることに注意してください。アプリを1回/ 2回(マウント/アンマウント)実行してスリープ状態にします。何もしないと、アイドル時間がスピンします(Sudo pmset -a disksleep 1が使用されます)、その後停止します。

9
jonost-7

私の最後の解決策は、Spotlightから実行するAutomatorアプリケーションを作成することでした。

  • 1つはHDを取り出すためのものです。

    シェルスクリプトを実行:diskutil eject 'disk1'

  • HDをマウントするためのもう1つ。

    シェルスクリプトを実行:diskutil mountDisk 'disk1'

どこ disk1は、スピンダウン/強制的にスリープ/イジェクトするディスクの名前です。この名前は「システム情報」にあります。

4
skibum

だから私はグーグルのいくつかもやったが、本当に役に立たなかった。実行中のものをいくつか組み合わせた後

hdiutil eject disk1

ターミナルで動作します。 Disk Utilityで情報を取得すると、イジェクトしたいドライブがdisk0かdisk1かどうかを確認できます。ディスクユーティリティを再度開くなどの操作を行うと、ディスクがスピンアップする場合があります。

3
greentbc

ドライブの検索も停止するには、mdutil -d /Volumes/<hard disk>も実行する必要があることがわかりました。これは、既にインデックスが作成されているため、インデックス作成を停止しても検索が妨げられないためです。

これでスポットライトを当てることができ、2番目のドライブは停止したままになります。

2
Doc

簡単なAppleスクリプト:

set answer to the button returned of (display dialog "Your second HDD wants to?" with icon caution buttons {"Wait", "Sleep", "WakeUp"})

if answer = "Sleep" then
    do Shell script "hdiutil eject disk1"
else if answer = "WakeUp" then
    do Shell script "diskutil mountDisk disk1"
end if
2
Vurda

ドライブをマウントおよびアンマウントするためのApplescriptを作成しました。

オプティカルベイの通常のHDD。 Macbook Pro(2006年後半)。 OSXライオン

ドライブはスピンダウンし、ディスクユーティリティを開くか、スリープ状態から再開するか、ドライブを再マウントしない限り、そのままです。 Spotlightはドライブを回転させません。ドライブ上のエイリアスへのアクセスも試みません。


-ドライブの排出を妨げる実行中のプロセスが開いている場合、スクリプトはアクティビティモニターを開き、ターミナルウィンドウでlsofを実行します。

-その後、プロセスを強制終了するかどうかを決定できます。

-ダイアログボックスで、ユーザーに強制終了の確認を求めます。

これらはapplescriptメニューから実行します。次のようにして有効にできます:

  1. AppleScript Editor.app(アプリケーション->ユーティリティ)を開きます。
  2. 設定を開く…。
  3. 「メニューバーにスクリプトメニューを表示する」にチェックを入れます。

マウントドライブ

on run
    try

        do Shell script "diskutil mountDisk disk1"

    on error

    end try
end run

ドライブのマウント解除

on run

    try

        do Shell script "hdiutil eject disk1"

    on error

        tell application "System Events"
            set termOpen to count (processes whose name is "Terminal")
            set amOpen to count (processes whose name is "Activity Monitor")
        end tell


        tell application "Terminal"
            activate
            set newTab to do script "lsof /Volumes/'HFS HD'"
        end tell

        tell application "Activity Monitor"
            activate
        end tell

        delay 3

        set question to display dialog "Kill running?" buttons {"Yes", "No"} default button 2
        set answer to button returned of question

        if answer is equal to "Yes" then
            do Shell script "lsof -P | grep '/Volumes/HFS HD'  | awk '{print $2}' | xargs kill -9"
            do Shell script "hdiutil eject disk1"
        end if


        tell application "Activity Monitor"
            if amOpen is 0 then
                quit
            end if
        end tell

        tell application "Terminal"
            if termOpen is 0 then
                quit
            else
                close (first window whose selected tab is newTab) saving no
            end if
        end tell



    end try
end run

私にとって完璧な作品で、うまくいけばあなたも成功するでしょう!

1
Kelvyn

光学ドライブの2番目のディスクを、外部ドライブのようにジャーナル処理された標準のMac OSとしてフォーマットします。次に、スポットライトのプライベートセクションに移動します。 OSがそのディスク上に存在しないため、ターミナルが存在しないため、ディスクユーティリティでアンマウントすることもできます。ディスクは、クリックしたときにのみ回転します。

1
Anthony

他のポスターについては、これでうまくいきました。

  • 必要なときにターミナルでコマンドを実行します
  • Spotlightを無効にする必要はありませんでした
  • ドライブがマウントされるとすぐにドライブにスポットライトを当てることができます

自動化または簡略化するための提案をいくつか試してみます。

// unmount
hdiutil eject disk1

// mount
diskutil mountDisk disk1

セットアップ:MacbookPro 7,1 13インチ、Mountain Lion 10.8.3。 SSDドライブであるDVDドライブの代わりのセカンダリハードドライブ

0
gabssnake