Tech エントリー[サーバー]
USB 接続 で Linux に外付け HDD を
5, 6 年前に利用していたノートパソコンの Libretto L1 は初期ハードティスクの 10G から新たに 40G を購入して置換していていましたが、その後、ノート環境は PowerBook --> MacBook へと移行してきました。
現役引退後の Libreto は自宅サーバーとして数ヶ月運用していましたがスペックに問題があったので別筐体に移行... 数年放置していました。
(前置きが毎度長いですが) 現在のサーバーは、ちゃんとバックアップしていなかったので余っている Libertto で利用していた 40 G ハードディスク を USB 接続の外付け HDD にすることにしました。
ちょうど、Mac のハードディスクの交換作業をしている所だったので、以下を参考に (って自分のブログだけど) 恵安の 2.5 インチのハードケースを購入。
[J] MacBook ハードディスク置換 (余ったHDDどうすんの ? 編) - Jamz (Tech)
あまりよく調べず、考えずに以前買ったものと同じものを買ってしまい大失敗しました。
Libretto のハードディスクは Ultra ATA 100 というインターフェース (接続口) らしく、上記ハードケースは Serial ATA という規格で届いてから組み立てようとして分かった...
3,000 円くらい無駄にしましたが、U-ATA 対応の下位モデルを再購入。
㈱恵安 2.5インチドライブケース JHHD-251シリーズ
ケースに生のハードディスクを装填 ? 装着して、いざ Linux 側で見てみると...
USB接続の外付け HDD をマウント
まずはケーブルをつないだ状態で以下のいずれかのコマンドを実行して認識されているか確認。
lsusb #1
cat /proc/bus/usb/devices #2
cat /proc/scsi/scsi #3
dmesg #4
USB 接続のハードディスクは、通常は SCSI として認識されているようなので #3 の情報を確認することで状態を確認できるようです。
#4 の dmesg というコマンドは man dmesg で内容を見ると以下のように解説されています。
dmesg は、カーネルのリングバッファの内容を表示・制御するために用いる。
詳しくはよくわかりませんがカーネルがらみの情報を表示するようで、おそらくそこに USB 接続した機器の情報もあがってくるのでしょう。
私のマシンの実行結果は以下のような感じでした。
cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: TOSHIBA Model: MK4019GAX Rev: 0811
Type: Direct-Access ANSI SCSI revision: 02
長いので途中省略しますが、dmesg の結果は以下。これを見て思ったのは dmesg の出力結果はログっぽいですね。多分そうなのかな ?
dmesg
# (snip)
USB Mass Storage support registered.
Vendor: TOSHIBA Model: MK4019GAX Rev: 0811
Type: Direct-Access ANSI SCSI revision: 00
# (snip)
SCSI device sda: 78140160 512-byte hdwr sectors (40008 MB)
sda: test WP failed, assume Write Enabled
sda: assuming drive cache: write through
SCSI device sda: 78140160 512-byte hdwr sectors (40008 MB)
sda: test WP failed, assume Write Enabled
sda: assuming drive cache: write through
sda: sda1 sda2 sda3
# (snip)
EXT3 FS on sda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
SELinux: initialized (dev sda1, type ext3), uses xattr
# (snip)
EXT3 FS on sda2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
SELinux: initialized (dev sda2, type ext3), uses xattr
USB として認識されているけど SCSI という扱いのようにも見れます。... よくわかりません。
っで、後述しますが、ここで気づけばよかったことが一つ。
この USB 外付け HDD は、元々 Linux マシンで利用していたハードディスクなのでパーティションが切られている使用中の状態でした。
/dev/sda で認識されているようですが、パーティションの分だけ sda1, sda2, sda3 という形で分かれていた模様。
まずはマウント、ということで以下のコマンドを実行して中身を見てみると...
# root で実行
mkdir /mnt/usbdisk
mount /dev/sda1 /mnt/usbdisk
cd /mnt/usbdisk
ls -la
lrwxrwxrwx 1 root root 29 11月 7 2004 System.map -> System.map-2.4.22-1.2199.nptl
-rw-r--r-- 1 root root 582775 10月 30 2003 System.map-2.4.22-1.2115.nptl
-rw-r--r-- 1 root root 571130 8月 5 2004 System.map-2.4.22-1.2199.nptl
-rw-r--r-- 1 root root 49612 10月 30 2003 config-2.4.22-1.2115.nptl
-rw-r--r-- 1 root root 49606 8月 5 2004 config-2.4.22-1.2199.nptl
drwxr-xr-x 2 root root 1024 11月 7 2004 grub
# (snip)
lrwxrwxrwx 1 root root 26 11月 7 2004 vmlinuz -> vmlinuz-2.4.22-1.2199.nptl
何かおかしい、あまり見たことのないファイルが並んでいる。でも、いくつか知っているキーワードも grub とか vmlinuz とか ...
しばらく色々調べながら試行錯誤していると、何となくパーティションの問題ではないかということが見えてきました。
多分、上記で見えているのは boot パーティションの内容。だとしたら、その他のパーティションはどう見れるんだ ? ということで再度調べて見ると sda1 以外に sda2, 3 があることに気づいたので改めて以下の内容でマウントしてみました。
# root ね
mkdir /mnt/usbhd1
mkdir /mnt/usbhd2
mount /dev/sda1 /mnt/usbhd1
mount /dev/sda2 /mnt/usbhd2
sda2 をマウントした先 (/mnt/usbhd2) を見てみるとビンゴ。よく見る /bin, /home などが見えました。
ちなみに /dev/sda3 は swap パーティンションでしたので除外しています。
ということで無事 Linux で外付けハードディスクが使えるようになりました。
(書き込みの確認はこれからですが...)
やること
この後やる事。
- OS 起動時の自動マウント (fstab / autofs & auto.misc ? )
- 定期バックアップ (rsync)
参考ページ
- Proton.jp : Linuxで使う外付けデバイスについてのTips
- @IT:USBのハードディスクを接続するには
- cosyroom.net:exblog : USB外付けHDDを認識させる
- USB HDD の利用
- 外付け HDD にバックアップ
その他、おこぼれ情報ですが、GParted というパーティションを操作するツールで VMWare の仮想ディスクサイズを変更する方法とか
- GParted -- Welcome
- パーティションを操作できるフリーソフト「GParted Live CD」 - GIGAZINE
- VMware で仮想ディスクのサイズを変更したくなったとき :: Drk7jp
玄箱のパーティションを変更した話などがありました。
コメント (0) トラックバック (1) Atom/RSS
投稿: 2007年06月30日 13:57 / 最終更新: 2007年06月30日 18:41
» 既存の HDD を Linux 上でフォーマット
« サン・マイクロとリクルートの Mashup Award の第三回が開催される



コメント (投稿する)