dポイントプレゼントキャンペーン実施中!

SUNのNetraT1において、/usrが破損してしまい、バックアップで保存してある/usrのTARファイルから上書きした際、失敗してしまいOS(Solaris8)が起動しなくなってしまいました。

対応として、OSのCDROMからブートしてTARファイルから復元を試みましたがうまく行きません。

試みようと考えている方法としては、下記を考えております。

 1・OS CDROMからブート
 2・シェルをCSHに変更し、/usrに通っていたPATHを/cdrom…に変更
 3・/usrをumount、実機のハードディスクを/usrにmount
 4・バックアップファイルの復元
    (ソフトウェアミラー構成なので3と4を2回実施)
 5・実機の起動

 ※CSHを使用しているのは、動作中にPATH設定を変更出来たシェルだったた  めです。

 ※/usrにマウントしなければならない理由ですが、TARで圧縮する際に
  /usrごと行ってしまった為、解凍先を変更できない為です。

実施した結果としては、PATHを変更したにもかかわらず、/usr/libを参照してしまい、tar、ls等コマンド実行時に実機の破損したld.so.1等のモジュールを読む為、エラーになってしまいます。

 設定したPATH (Solaris8 CDROMディスクへのPATHです)

  path (/sbin /cdrom/Solaris_8/Tools/Boot/usr/sbin/install.d \
     /cdrom/Solaris_8/Tools/Boot/usr/bin /cdrom/Solaris_8 \
     /Tools/Boot/usr/lib)

フルパスでコマンドを実行しても同様です。

 例:#/cdrom/Solaris_8/Tools/Boot/usr/sbin/fsck


コマンドを実行した際、PATHを/usrに見に行かせない方法がございましたら教えていただけないでしょうか。
 
また、TARで/usrに解凍する様に作成したバックアップファイルを、解凍時に
別のディレクトリ配下に解凍する事は可能なのでしょうか。

勉強不足で申し訳ございませんが、よろしくお願いいたします。

A 回答 (1件)

pax(1)コマンドの-sオプションを使用すれば、絶対パスで取ったtarアーカイブを相対パスで展開出来ると思います。



○pax(1)
 http://docs.sun.com/app/docs/doc/806-0624/6j9vek …


以下、手元にあるSolaris 10(x86版)での実行例です。
たぶん、Solaris 8でも変わりないと思いますが。

Solaris10% ls -l
合計 0
Solaris10% ls -l /tmp/{A,B}
-rw-r--r-- 1 user other 0 10月 14日 01:13 /tmp/A
-rw-r--r-- 1 user other 0 10月 14日 01:13 /tmp/B
Solaris10% tar cvf test.tar /tmp/{A,B}
a /tmp/A 0K
a /tmp/B 0K
Solaris10% tar tvf test.tar
tar: ブロックサイズ = 4
-rw-r--r-- 100/1 0 10月 14日 01:13 2005年 /tmp/A
-rw-r--r-- 100/1 0 10月 14日 01:13 2005年 /tmp/B
Solaris10% rm -f /tmp/{A,B}
Solaris10% ls -l /tmp/{A,B}
/tmp/A: ファイルもディレクトリもありません。
/tmp/B: ファイルもディレクトリもありません。
Solaris10% pax -r -v -s ',^/,./,' -f test.tar
USTAR アーカイブ形式
/tmp/A
/tmp/B
Solaris10% ls -l ./tmp
合計 0
-rw-r--r-- 1 user other 0 10月 14日 01:13 A
-rw-r--r-- 1 user other 0 10月 14日 01:13 B
Solaris10% ls -l /tmp/{A,B}
/tmp/A: ファイルもディレクトリもありません。
/tmp/B: ファイルもディレクトリもありません。
Solaris10%
    • good
    • 0
この回答へのお礼

Lean様、ご回答いただきありがとうございます。
paxコマンドがこのような使い方が出来るとは知りませんでした。
テストでうまく動いたので、早速実機にて試してみます。

ありがとうございました。

お礼日時:2005/10/14 17:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!