流体軸受 HDD への換装


Link Station の HDD(WD1200AB) は、ボールベアリングであることを知った。
どおりでうるさいわけである。

流体軸受の HDD、Seagate の ST3120026A を接続してみた。
WD1200AB がアクセスしないときも常に 「キィ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ン」といっていたのに対し、 ほぼ、無音ともいえるほど、うそのように静かである。

早速、換装することにする。

実験機に接続

実験機に
  • WD1200AB をセカンダリマスタに、
  • ST3120026A をセカンダリスレーブに
    して接続する。
    それぞれ hdc, hdd となる
    dmesg を見ると
    hdc: attached ide-disk driver.
    hdc: host protected area => 1
    hdc: 234441648 sectors (120034 MB) w/8192KiB Cache, CHS=14593/255/63, UDMA(33)
    hdd: attached ide-disk driver.
    hdd: host protected area => 1
    hdd: 234441648 sectors (120034 MB) w/8192KiB Cache, CHS=14593/255/63, UDMA(33)
    
    と、まったく同じジオメトリのようである。

    パーティションの作成

    fdisk で WD1200AB とまったく同じパーティション構成とする
    Command (m for help): p
    
    Disk /dev/hdd: 255 heads, 63 sectors, 14593 cylinders
    Units = cylinders of 16065 * 512 bytes
    
       Device Boot    Start       End    Blocks   Id  System
    /dev/hdd1             1       262   2104483+  83  Linux
    /dev/hdd2           263       295    265072+  82  Linux swap
    /dev/hdd3           296     14593 114848685   83  Linux
    

    フォーマット

    hdd1 をフォーマットする
    intel# mke2fs -j /dev/hdd1
    mke2fs 1.29 (24-Sep-2002)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    263296 inodes, 526120 blocks
    26306 blocks (5.00%) reserved for the super user
    First data block=0
    17 block groups
    32768 blocks per group, 32768 fragments per group
    15488 inodes per group
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912
    
    Writing inode tables: done
    Creating journal (8192 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 39 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    
    Filesystem features を見る
    intel# tune2fs -l /dev/hdd1
    tune2fs 1.29 (24-Sep-2002)
    Filesystem volume name:   
    Last mounted on:          
    Filesystem UUID:          44e69fee-2b69-40f6-a2da-038a9c6a2655
    Filesystem magic number:  0xEF53
    Filesystem revision #:    1 (dynamic)
    Filesystem features:      has_journal dir_index filetype sparse_super
    Filesystem state:         clean
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              263296
    Block count:              526120
    Reserved block count:     26306
    Free blocks:              509639
    Free inodes:              263285
    First block:              0
    Block size:               4096
    Fragment size:            4096
    Blocks per group:         32768
    Fragments per group:      32768
    Inodes per group:         15488
    Inode blocks per group:   484
    Last mount time:          Thu Jan  1 09:00:00 1970
    Last write time:          Tue Jan 20 21:38:22 2004
    Mount count:              0
    Maximum mount count:      39
    Last checked:             Tue Jan 20 21:38:18 2004
    Check interval:           15552000 (6 months)
    Next check after:         Sun Jul 18 21:38:18 2004
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    First inode:              11
    Inode size:               128
    Journal UUID:             
    Journal inode:            8
    Journal device:           0x0000
    First orphan inode:       0
    Default directory hash:   tea
    Directory Hash Seed:      d5f88881-05f9-4c0f-87d0-b5a4e5925057
    
    やはり dir_index が付いている。
    dir_index を消して、fsck をかける
    intel# tune2fs -O ^dir_index /dev/hdd1
    tune2fs 1.29 (24-Sep-2002)
    intel# fsck -fD /dev/hdd1
    fsck 1.29 (24-Sep-2002)
    e2fsck 1.29 (24-Sep-2002)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 3A: Optimizing directories
    Optimizing directories:  2
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    
    /dev/hdd1: ***** FILE SYSTEM WAS MODIFIED *****
    /dev/hdd1: 11/263296 files (0.0% non-contiguous), 16481/526120 blocks
    
    続いて hdd3
    intel# mke2fs -j /dev/hdd3
    mke2fs 1.29 (24-Sep-2002)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    14368768 inodes, 28712171 blocks
    1435608 blocks (5.00%) reserved for the super user
    First data block=0
    877 block groups
    32768 blocks per group, 32768 fragments per group
    16384 inodes per group
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
            4096000, 7962624, 11239424, 20480000, 23887872
    
    Writing inode tables: done
    Creating journal (8192 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 24 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    
    intel# tune2fs -l /dev/hdd3
    tune2fs 1.29 (24-Sep-2002)
    Filesystem volume name:   
    Last mounted on:          
    Filesystem UUID:          aad31a05-40ce-4fe7-8443-946823ea4404
    Filesystem magic number:  0xEF53
    Filesystem revision #:    1 (dynamic)
    Filesystem features:      has_journal dir_index filetype sparse_super
    Filesystem state:         clean
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              14368768
    Block count:              28712171
    Reserved block count:     1435608
    Free blocks:              28253066
    Free inodes:              14368757
    First block:              0
    Block size:               4096
    Fragment size:            4096
    Blocks per group:         32768
    Fragments per group:      32768
    Inodes per group:         16384
    Inode blocks per group:   512
    Last mount time:          Thu Jan  1 09:00:00 1970
    Last write time:          Tue Jan 20 21:40:18 2004
    Mount count:              0
    Maximum mount count:      24
    Last checked:             Tue Jan 20 21:38:42 2004
    Check interval:           15552000 (6 months)
    Next check after:         Sun Jul 18 21:38:42 2004
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    First inode:              11
    Inode size:               128
    Journal UUID:             
    Journal inode:            8
    Journal device:           0x0000
    First orphan inode:       0
    Default directory hash:   tea
    Directory Hash Seed:      3d62c1e7-d740-472a-9392-0157dcc9e0c2
    
    WD1200AB の場合は、large_file が指定されていたが、 今回は着いていない。謎。

    dir_index のみを消す。

    intel# tune2fs -O ^dir_index /dev/hdd3
    tune2fs 1.29 (24-Sep-2002)
    
    intel# fsck -fD /dev/hdd3
    fsck 1.29 (24-Sep-2002)
    e2fsck 1.29 (24-Sep-2002)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 3A: Optimizing directories
    Optimizing directories:  2
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    
    /dev/hdd3: ***** FILE SYSTEM WAS MODIFIED *****
    /dev/hdd3: 11/14368768 files (0.0% non-contiguous), 459105/28712171 blocks
    

    ファイルのコピー

    / , /mnt をそれぞれコピーする
    intel# cd /tmp
    intel# mkdir hdc
    intel# mkdir hdd
    intel# mount /dev/hdc1 /tmp/hdc
    intel# mount /dev/hdd1 /tmp/hdd
    intel# cd /tmp/hdc
    intel# tar cf - . |(cd ../hdd; tar xvpf -)
    
    intel# cd ..
    intel# umount /tmp/hdc
    intel# umount /tmp/hdd
    
    intel# mount /dev/hdc3 /tmp/hdc
    intel# mount /dev/hdd3 /tmp/hdd
    intel# cd /tmp/hdc
    intel# tar cf - . |(cd ../hdd; tar xvpf -)
    
    さすがに 120GB のコピーには時間がかかる。。
    と思っていたら、なんと実験機の Linux がリブートしてしまった。
    もう一度やってみても同じ

    仕方がないので、Link Station に2台の HDD を接続して /mnt をコピーする。
    ところが、一晩経ってもコピーが終わらない。
    同じ IDE チャンネルにつながっているからか、 そもそもパフォーマンスが悪いのか。

    結局、実験機の

  • WD1200AB をセカンダリマスタに、
  • ST3120026A をプライマリスレーブに
    接続して、コピーを完了した。

    HDD の交換

    Link Station を分解し、元々の HDD (WD1200AB) を取りだし、 変わりに新しい HDD (ST3120026A) を組み付けた。
    交換、起動とも、特に問題なし。

    swap の設定

    Link Station Vine 上で、swap を有効にする
    linkstationVine# mkswap /dev/hda2
    Setting up swapspace version 1, size = 265068K
    linkstationVine# swapon -a
    linkstationVine# cat /proc/meminfo
            total:    used:    free:  shared: buffers:  cached:
    Mem:  64200704 34271232 29929472        0  3244032 18427904
    Swap: 271425536        0 271425536
    

     BUFFALO Link Station をハックしよう  → 止まるようになった HDD
    Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
    yasunari @ yamasita.jp
    山下康成京都府向日市