Solaris でmirror disk を読み書きする

何時も使う頃には忘れてしまうのでこちらにもメモ.

/etc/passwd を空っぽにしちゃったという問い合わせでした.
logout しちゃっててコンソールも閉じちゃってて外からも入れません.
system disk はミラーになっています.
インストールCD から起動してDisk にアクセスし,手で/etc/passwd にroot の情報を書いてあげて仮復旧までしました.

マシンはV480 Solaris10 6/06 でした.
先ず,STOP-A 押してok プロンプトから

boot cdrom

でインストールCD から起動します.

インストーラが起動するので日本をを選択し,次の画面で右クリックしてターミナルを開きます.
以降このターミナルで作業.

format コマンドなどでdisk 情報を調べてメモします.
ミラーの片方のSolaris ボリュームマネージャ構成の存在するスライスをread-only でmount.今回は/ のc1t0d0s0 を/mnt にmount.

# mount -o ro /dev/dsk/c1t0d0s0 /mnt

構成ファイルをcp

# cp /mnt/kernel/drv/md.conf /kernel/drv/md.conf

umount

# umount /mnt

ドライバ更新

# update_drv -f md

ボリューム構成

# metainit -r

対象のスライスをmount.
今回は/etc/passwd の含まれる/ の/dev/md/dsk/d0 を/mnt にmount

# mount /dev/md/dsk/d0 /mnt

後は煮るなり焼くなりという感じ.
今回は,

# echo "root:x:0:0:Super-User:/:/sbin/sh" > /mnt/etc/passwd

とかやってumount してdisk から起動してごにょごにょという感じでした.

しかし,/etc/passwd が空というなかなか見られない物を見せて貰いました.
影響の少ないサーバだったので結構気楽でしたが基幹サーバだと怖いですね>_