eSATA HDDホットスワップ @ Debian GNU/Linux Wheezy

id:dayflower:20100723:1279874038 を真似てやった.eSATAもUSBもSCSIエミュレーションの抽象レイヤーに乗ってるから(USBの {bus,device} IDという固有の概念を除けば)大体一緒でいいのかな.ちょっと古いドキュメントだと /proc/scsi/scsi が必ず出てくるんだが,今はもうないようだ.直接 代わりになるものってあるんだろうか...
切るとき(私の環境では /dev/sdb1/media/esata にマウント)

# umount /media/esata
# sdparm --command=sync /deb/sdb
# echo 1 > /sys/class/scsi_device/1\:0\:0\:0/device/delete
# blkid
(/dev/sdb1 が無くなったのが見えるはず)

つなぐとき

# echo "- - -" > /sys/class/scsi_host/host1/scan
# blkid
(/dev/sdb1 辺りが増えたのが見えるはず)
# mount ...

「この 1:0:0:0host1 というのをどうやって判断するか」が分からないんだが... PC起動時にディスクをつないでおけば認識されることを仮定し,一度リブート後に blkid で調べるしかないのかな.一マシンにつき一回.USBだとdevice node割り当てまでudevで自動化されてるみたいだから,eSATAでもどっかに方法はあるんだろうけど... この辺は知らないことがいっぱいだ.ls -l /dev/sdb1 で 8, 17 ってのが何なのか(どこで決まってるのか)いまいちよく分かってないし.
ちなみに対象としたeSATA接続HDDケースはCorega CG-HDC4EU3500 ( id:flalin:20100717:1279360949 ) である.