外付けハードドライブがシャットダウンしない

外付けハードドライブがシャットダウンしない

Ubuntu をシャットダウンしても、外付け USB ハードドライブはシャットダウンしません (まったくシャットダウンしません)。ただし、他の USB デバイス (ヘッドフォンやキーボードなど) の電源はオフのままです。

違いがあるかどうかはわかりませんが、私は B365M DS3H WIFI マザーボードを使用しています。

ハードドライブは Windows で正常にシャットダウンします。

正常にシャットダウンするにはどうすればいいですか?

編集: ハード ドライブをオフにして通常どおり電源をオフにした後でも、シャットダウン後に電源が供給されるはずがないのに、まだ電源が供給されています。

答え1

これは「特徴」のようですギガバイトのマザーボードと呼ばれる「オン/オフ充電」機能の説明から:

GIGABYTE の最新マザーボードには、オン/オフ充電テクノロジーが搭載されており、iPhone、iPad、iPod Touch を充電できるだけでなく、急速充電も可能です。さらに、PC の電源がオフのときでも充電できるので、音楽を同期した後に充電器に接続するのを忘れても、必要なときに完全に充電されます。

[...]

* 最大 3 台のデバイスを同時に充電できます。充電電流は PSU 5V スタンバイ仕様によって異なる場合があります。

マザーボードが具体的にはUSB デバイスの製造元 ID に基づく Apple デバイスの場合、マシンの電源がオンかどうかに関係なく、マザーボードは最大 3 つの USB ポートに 5V の無停電電源を供給するだけだと思います。この場合、外付けドライブは、特にコマンドを与えない限り、電源をオフにすることができません。

Windows がシャットダウンするとドライブは適切に停止するとおっしゃっているので、ドライブはホスト OS からのコマンドを待機しているが、何らかの理由で Ubuntu が送信していない可能性があると考えられます (一部のドライブは待機しpower-off、他のドライブは を待機しますeject)。

考えられる解決策の 1 つは、システムがシャットダウン サイクルに入るたびに実行されるスクリプトを作成し、最初に USB パーティションをアンマウントし、次に特定のデバイスに対して「電源オフ」コマンドを送信することです。

試してみたい場合は、次の手順に従ってください。

  1. ターミナルを開きます(まだ開いていない場合には)
  2. UUIDUSB ディスク用の を以下から入手しますblkid:
    sudo blkid
    
    これにより、すべてのデバイスのリストが表示されるので、シャットダウンする USB ディスクを表すデバイスを探します。次のようなものが表示される場合があります。
    /dev/sdc1: UUID="AzJSHp-stpU-1ArB-YOMD-G7OD-l1Uz-xJhQIh" TYPE="ext4" PARTUUID="04592289-01"
    
     
  3. ホーム ディレクトリ (または任意の場所) にシェル スクリプトを作成します。
    vi ~/sleep-disks.sh
    
    注記:任意のテキスト エディターを自由に使用できます。 vi 必須ではありません。
  4. 以下を貼り付けます。
    #!/bin/sh
    
    sudo hdparm -Y /dev/disk/by-uuid/<disk-uuid>
    exit 0
    
    使用時に問題がある場合は、hdparm次の方法を使用できます。
    #!/bin/sh
    
    disk_uuid="<disk-uuid>"
    
    udisksctl unmount -b /dev/disk/by-uuid/${disk_uuid}
    udisksctl power-off -b /dev/disk/by-uuid/${disk_uuid}
    
    exit 0
    
    注記:必ず交換してください <disk-uuid> ステップ 1 で決定した適切な値を使用します。
  5. ファイルを保存する
  6. スクリプトが実行可能であることを確認します。
    sudo chmod +x ~/sleep-disks.sh
    
  7. 新しい systemd サービス レコードを作成します。
    sudo vi /etc/systemd/system/sleep-disks.service
    
  8. 以下を貼り付けます。
    [Unit]
    Description=Shut down external disks
    DefaultDependencies=no
    Before=shutdown.target reboot.target halt.target
    # This works because it is installed in the target and will be
    #   executed before the target state is entered
    # Also consider kexec.target
    
    [Service]
    Type=oneshot
    User=<YOUR_USER>
    Group=<YOUR_USER>
    ExecStart=/home/<YOUR_USER>/sleep-disks.sh
    
    [Install]
    WantedBy=halt.target reboot.target shutdown.target
    
    注記:必ず交換してください <YOUR_USER> 実際のユーザー名と ExecStart= シェル スクリプトの実際の場所を指す必要があります。
  9. ファイルを保存する
  10. デーモンをリロードします:
    sudo systemctl daemon-reload
    

sleep-disks.shこれにより、コンピューターのシャットダウン、再起動、または停止 (サスペンド) が指示されるたびにスクリプトが実行されるようになります。

このhdparm -Yコマンドは、外付けディスクに最低電力状態(「オフ」)に落とすように指示します。ドキュメント:

-Y     Force  an  IDE  drive to immediately enter the lowest power consumption
       sleep mode, causing it to shut down completely.  A hard or soft reset is
       required  before  the drive can be accessed again (the Linux IDE driver
       will automatically handle issuing a reset if/when needed).  The current
       power mode status can be checked using the -C option.

udisksctl unmountディスクがアンマウントされることが保証されるため、ディスクudisksctl power-offの電源がオフになります。

あるいは、もしこれを使わないのであれば、BIOSで「オン/オフ充電」機能を無効にすることもできます。

関連情報