LinuxでSATAデバイスを正しくイジェクトする方法は?私はイジェクトコマンドがUSBデバイスのためにそれを行うことができることを知っています:
eject usbDevicePath
SATAデバイスでも同じように機能しますか?キャッシュを同期し、SATAデバイスの電源を適切に切りますか?
解決策は、ドライブの電源を切ってプラグを抜く前に、ソフトウェアを介してドライブをスピンダウンすることです。これを行う最良の方法は、scsiaddと呼ばれるユーティリティを使用することです。このプログラムは、LinuxのSCSIサブシステムにドライブを追加および削除できます。さらに、かなり最新のカーネルでは、デバイスを削除すると停止コマンドが発行されます。これはまさに私たちが探しているものです。
実行:
$ Sudo scsiadd -p
次のように出力する必要があります。
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: SAMSUNG HD300LJ Rev: ZT10
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
Vendor: LITE-ON Model: DVDRW LH-20A1L Rev: BL05
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi5 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: WDC WD10EACS-00Z Rev: 01.0
Type: Direct-Access ANSI SCSI revision: 05
取り外したいドライブを特定してから、以下を発行します。
$ Sudo scsiadd -r Host channel id lun
scsiadd-p出力からの対応する値を代入します。たとえば、「WDC WD10EACS-00Z」を削除したい場合は、次のコマンドを実行します。
$ sync & Sudo scsiadd -r 5 0 0 0
すべてが機能する場合、scsiaddは次のように出力する必要があります。
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: SAMSUNG HD300LJ Rev: ZT10
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
Vendor: LITE-ON Model: DVDRW LH-20A1L Rev: BL05
Type: CD-ROM ANSI SCSI revision: 05
Dmesgの終わりを再確認できます。見るべき:
[608188.235216] sd 5:0:0:0: [sdb] Synchronizing SCSI cache
[608188.235362] sd 5:0:0:0: [sdb] Stopping disk
[608188.794296] ata6.00: disabled
この時点で、ドライブはLinuxのSCSIサブシステムから削除され、回転していないはずです。プラグを抜いて電源を切るのは安全です。
この回答 最も役に立ちました:アンマウント後、LVM、LUKSなどを停止します:
echo 1 >/sys/block/sdX/device/delete
mountコマンドが役に立ちます。 man mount を参照してください。
したがって、そのデバイスを「イジェクト」する必要があります。デバイスがどれであるかを確認するだけで、次の方法で実行できます。
# Sudo df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 145G 50G 87G 37% /
したがって、/ dev/sda1を「排出」する場合は、次を使用します。
Sudo umount /dev/sda1
もちろん、デバイスが使用中/ビジーの場合、sda1が私のOSがある場所のように、それはあなたにそれをさせません:D