1.ディスクを買う
最近のSunマシンはSCA-2というタイプのディスクが使われている。これはぱっと見るとWide-SCSI(68pin)のようだが、それよりもピン数が多い(80pin)コネクタがついている。電源コネクタが無い(80pin内に入っている)ので、すぐわかる。
基本的にはこのタイプならどれでも物理的に接続できる。しかし、Solarisではタグ付きコマンドキューというSCSIの機能を利用しているので、これが問題を起こすかもしれない。信頼できるベンダーから買う方がいい。
Sunのディスクはニューテックが品質&価格でおすすめ。そこらで売っているベアディスクと殆ど値段が変わらないし、Sunマシンとの相性も保証されている。
2.既存のディスクをそのままに、何とか接続する
リプレースするためにデータの移行を行う。既存のディスクと買ったディスクを両方マシンに接続する。
SCA2はSCSIバックプレーン側コネクタのジャンパーでSCSI-IDが決まる。ユーザがIDを割り振ることはできない。差し込む位置で勝手に決まる。
SS20までのマシンなら下側が ID=3,上側がID=1になる。ブートは通常、ID=3のディスクから行われる。
ULTRA以降はID=0,1になっている。ブートはID=0からだ。こっちの方が素直な割付である。
SPARCstationでもULTRAでも専用のディスクマウンターが必要になる。結構値が張るので、データ移行だけなら段ボール等でショートしないよう、だましだまし接続しておく。
3.マシンの電源を入れる
通常通り電源を投入する。もしかしたらPROMモニタで boot -r をするべきかもしれない。
4.formatする
どのようなパーティションにするか、この時点で決めることになる。元々複数のパーティションだったのを混ぜるのか、あるいは元のパーティションと一対一で作成するのかなど、検討を行う。
パーティションサイズは移行元のパーティションサイズよりも小さくすることができる。当たり前だが、すでに使用されている容量よりも小さくすることはできない。
ちなみに、このformatという名称だが、Windowsなどでいうフォーマットと全く違う。これはWindowsで言えばFDISKみたいなもので、Windowsでいうフォーマットはnewfsだ。
5.パーティションごとにデータの移行を行う
以下の手順をパーティション数だけ繰り返す。
・移行後パーティションにファイルシステムをnewfsで作り込む。
・移行後のパーティションをどっかにマウントする。
・パーティションごとに以下のようにdump&restoreでデータ移行を行う。
こんな感じ
# newfs /dev/rdsk/c0t1d0s0
newfs: /dev/rdsk/c0t1d0s0 last mounted as /opt2
newfs: construct a new file system /dev/rdsk/c0t1d0s0: (y/n)? y
/dev/rdsk/c0t1d0s0: 208278 sectors in 58 cylinders
of 27 tracks, 133 sectors
101.7MB in 4 cyl groups
(16 c/g, 28.05MB/g, 13504 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 57632, 115232, 172832,
#
# mount /dev/dsk/c0t1d0s1 /mnt
#
# ufsdump 0f - /dev/rdsk/c0t3d0s0 | (cd /mnt; ufsrestore rf -)
DUMP: Writing 32 Kilobyte records
DUMP: Date of this level 0 dump: Sat Oct 16 15:36:51 1999
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t3d0s0 (ss20:/) to standard output.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Estimated 34962 blocks (17.07MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
Warning: ./lost+found: File exists
DUMP: 34942 blocks (17.06MB) on 1 volume at 478 KB/sec
DUMP: DUMP IS DONE
#
ちなみに、SunOSでは dump/restore になる。引数は同じ。
6.ブートブロックを書き込む。
この作業をしないとブートできない。これはKernelを呼び出すIPLのようなものだ。
こんな感じ、もちろん書き込み先は適宜変えること。
# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t1d0s0
7./etc/vfstab/を書き換える
スライスを完全に一対一でコピーすればこの作業は必要ない。移動したり、変更したりした場合は適宜書き換えること。もちろん取り替えた後でも書き換えられるが、その場合はシングルユーザモードになっているだろう。
8.ディスクを取り替える
電源を切り、古いディスクと新しいディスクを入れ替える。手順に間違えがなければそのまま動くはず。