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 が空というなかなか見られない物を見せて貰いました.
影響の少ないサーバだったので結構気楽でしたが基幹サーバだと怖いですね>_