Discussion:
[問題] 關於移除USB硬碟
(时间太久无法回复)
*unicef
2011-06-21 06:58:02 UTC
Permalink
大家好:
我遇到的問題是這樣的,手邊的硬碟外接盒晶片,會在安全的移除硬體
之後將硬碟磁頭Unload並斷電,此作法在Windows XP是沒有問題的,
可是當我將硬碟接上Linux(文字介面),雖然打了umount,可以卸載,不過這個裝
置卻還是在系統中,而且硬碟磁盤仍然繼續運轉,如果再這時拔除USB線,就會聽
到磁頭緊急降落的聲音,而且在硬碟的SMART狀態中,Power-Off Retract Count會+1,
不知道是否有指令可以做到像Windows XP的安全移除硬體這樣的效果?

另外我發現,剛剛提到的安全移除自動斷電,是跟外接盒晶片的設計有關,並非
Windows切斷USB電源。

不知是否有關於這方面的資訊可提供參考呢?感恩大家!

PS:OS:Ubuntu 10.10 Server(不使用圖形化界面)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.48.80
Edward Liu
2011-06-21 12:45:56 UTC
Permalink
Post by *unicef
大家好:
我遇到的問題是這樣的,手邊的硬碟外接盒晶片,會在安全的移除硬體
之後將硬碟磁頭Unload並斷電,此作法在Windows XP是沒有問題的,
可是當我將硬碟接上Linux(文字介面),雖然打了umount,可以卸載,不過這個裝
置卻還是在系統中,而且硬碟磁盤仍然繼續運轉,如果再這時拔除USB線,就會聽
到磁頭緊急降落的聲音,而且在硬碟的SMART狀態中,Power-Off Retract Count會+1,
不知道是否有指令可以做到像Windows XP的安全移除硬體這樣的效果?
hdparm -Y
hdparm -y
?
--
gcin, gcin windows 中文輸入 <http://hyperrate.com/dir.php?eid=67>
griffen
2011-06-22 04:59:56 UTC
Permalink
※ 引述《hdw770715 (*unicef)》之銘言:
: 不知是否有關於這方面的資訊可提供參考呢?感恩大家!
: PS:OS:Ubuntu 10.10 Server(不使用圖形化界面)

如果kernel在2.6.32之前,可以直接echo suspend給usb裝置,來強制suspend
但是新的kernel不行,我現在的作法比較笨,步驟很麻煩,以下都要su權限
1. umount 以及 eject,這部份沒啥好提
2. unbind partition from usb storage:
"cd /sys/bus/usb/drivers/usb-storage/"
ls之後會看到其中有串數字,例如"1-4:1.0",這是usb硬碟的partition
所以1-4就是指usb硬碟,這號碼會隨著你接在不同usb port上不同
"echo -n 1-4\:1.0 > unbind"
3. unbind disk from usb:
如果硬碟不是接在root hub上可以跳過這步驟
"cd /sys/bus/usb/drivers/usb/"
ls之後理論上會看到步驟2的usb硬碟"1-4"
"echo -n 1-4 > unbind"
4. 切換到auto state來suspend usb硬碟
"cd /sys/bus/usb/devices/1-4/" <--注意要對到步驟三的號碼
"echo auto > power/level"
理論上就會auto suspend了,過幾秒usb硬碟應該就不會動了

建議寫個script來做這些事吧,不過說實在,個人認為不需要suspend硬碟再拔掉吧?
連windows 7都不這樣做了,應該不用擔心這個吧

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.66.243.96
*unicef
2011-06-22 07:36:54 UTC
Permalink
※ 引述《griffenchen (griffen)》之銘言:
: ※ 引述《hdw770715 (*unicef)》之銘言:
: : 不知是否有關於這方面的資訊可提供參考呢?感恩大家!
: : PS:OS:Ubuntu 10.10 Server(不使用圖形化界面)
: 如果kernel在2.6.32之前,可以直接echo suspend給usb裝置,來強制suspend
: 但是新的kernel不行,我現在的作法比較笨,步驟很麻煩,以下都要su權限
: 1. umount 以及 eject,這部份沒啥好提
: 2. unbind partition from usb storage:
: "cd /sys/bus/usb/drivers/usb-storage/"
: ls之後會看到其中有串數字,例如"1-4:1.0",這是usb硬碟的partition
: 所以1-4就是指usb硬碟,這號碼會隨著你接在不同usb port上不同
: "echo -n 1-4\:1.0 > unbind"
: 3. unbind disk from usb:
: 如果硬碟不是接在root hub上可以跳過這步驟
: "cd /sys/bus/usb/drivers/usb/"
: ls之後理論上會看到步驟2的usb硬碟"1-4"
: "echo -n 1-4 > unbind"
: 4. 切換到auto state來suspend usb硬碟
: "cd /sys/bus/usb/devices/1-4/" <--注意要對到步驟三的號碼
: "echo auto > power/level"
: 理論上就會auto suspend了,過幾秒usb硬碟應該就不會動了
: 建議寫個script來做這些事吧,不過說實在,個人認為不需要suspend硬碟再拔掉吧?
: 連windows 7都不這樣做了,應該不用擔心這個吧
是比較怕硬碟運轉中拔掉,會傷到資料,
之前有一顆,就是這樣掛掉的,
看起來都沒有程序在對硬碟存取,就很理所當然的拔線,
以為硬碟發出的"髂"聲,不會怎樣,結果還是死了orz
從那之後就開始注意起硬碟的SMART狀態。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.23.249.120
→ griffenchen:沒有程序做存取,還是有可能資料還在cache上  06/22 15:36
继续阅读narkive:
Loading...