2012秋のファイルサーバ復旧 02 新品USBメモリから起動して復旧を試みる

USBメモリ買って来ました。
中央通りのあきばおーで16GB 680円くらいでした。
ついでにHDDも買って来ました。SeagateとWDの同じ容量のやつを。

さて、今までの2Gの中身をまるごとコピーします。
ファイルコピーじゃないので dd コマンド等でやります。

買ってきたUSBメモリを追加で挿して起動します。

するといつものCentOS起動画面ではなく黒地に白のGRUB画面。

黒地に白文字のGRUB画面

これでは起動できないので新USBを外して起動してから挿すことにします。
起動はシングルユーザモードで。
メモ: 2012秋のファイルサーバ復旧 01 ディスクフル発覚→シングルユーザで起動してみる


で、起動してから挿しました。
まあ、自動でマウントされないだろうとは思っていたので手動でマウントしようとして/devを見てみると、USBメモリがいません。古いやつ(OSを起動させたやつ)は当然います。

/devをlsした結果、sdbがいない

2つめなのでsdbとしてでてくるはずなのに。

ちゃんとささっているのか確認するために dmesg が見たい。でもログディレクトリがないから出力されない!
仕方ないので元のUSBメモリにログディレクトリを出すように変更します。
あまり手をいれたくなかったんだけど・・・。

/var を ls した結果

/var/log と /var/tmp がシンボリックリンクになっていてエラーになってます。
これを削除してディレクトリを作成します。

#cd /var
#rm log
#rm tmp
#mkdir log
#chmod 777 log
#mkdir tmp
#chmod 777 tmp

とやって作成しました。

tmpとlogが作成された状態

続けて /tmp も同じようにしておきます。

/ を ls した結果


#cd /
#rm tmp
#mkdir tmp
#chmod 777 tmp

tmp が作成された状態

で、再起動してみるとエラーが減ってます。

/var/tmp /var/log /tmp ディレクトリを作成して再起動した結果

上の方のマウントエラーはしょうがない。
データ領域用のHDDは外してあるから。

下の方のrootがいないというエラーがでているということはtmpがどうこうじゃなく、passwdファイルが壊れてしまっているのでは…という不安にかられます。
できない気がするけどパスワードを変更してみます。

#passwd root
passwd: Unknown user name 'root'.

ユーザがいないので実行できない。やはり…。
すぐ上のエラーはコマンド間違えただけです。

でもこれでdmesgは見られるようになったので新USBメモリを抜き差ししてみます。
そして

more /var/log/dmesg

USBメモリを抜き差ししてdmesgを表示

sb-storage: device found at 4
sb-storage: waiting for device to settle before scanning
sb-storage: device scan complete
USB disconnect, address 4

どうやら認識しているらしい!!!
確認してみる。

#fdisk -l

fdisk -l してみた結果

うーんやっぱりでない。

で、思いついたのが、windowsでddする方法。
なんかそういうフリーウェアがあったような…と思い返してみると

DDforWindows - Silicon Linux Wiki

というのを何かの際に触っていた!
いつつかったのかは思い出せませんが見たことあるUIなので使ったはずです。

CentOSは一旦シャットダウンしてWindowsへ。

DDするまえに新USBメモリをキレイにしておきます。

コントロールパネル > コンピュータの管理

でUSBメモリのパーティションを削除しておきます。

そしてDD for Windows を起動。
このソフトだと、デバイスからデバイスへってのができないようで、一旦どこかにイメージファイルを作る必要がありそうです。

まず元USBの中身を吸い出します。

ディスクはUSBメモリ、ファイルはデスクトップに適当に

ここで気付いたのが、USBメモリ、2Gじゃなくて4Gだったんですねぇ。

で、 >> 読込 >> をクリックしてファイルに書き出し。

吸い出し中

書き出し終わったらUSBを差し替えて << 書込 << をクリック。これで新しいUSBにまるごとコピーされました。 そして起動。 無事OS選択画面がでたらシングルユーザモードで起動します。 メモ: 2012秋のファイルサーバ復旧 01 ディスクフル発覚→シングルユーザで起動してみる

元USBと同じように起動できたのでもう一度 root のパスワードを設定してみようと頑張ってみますがやっぱり出来ません。

#passwd root
passwd: Unknown user name 'root'.

じゃあもうユーザ追加してみたら?という近所のおじさんの助言にしたがって useradd してみます。
まさかのrootユーザ追加。

#useradd root
useradd: unknown GID 100
Group 'mail' not found. Createing the user mailbox file with 0600

mail というグループがないというエラー。
じゃあ、こいつも作ってみます。

#groupadd mail

エラーにならない。正常に作成されたのか?と思い su してみる。

#su root
su: relocation error: /lib64/libaudit.so.0: symbol __cxa_finalize???2.2.5 not defined in file libc.so.6 with link time reference

エラーです。さっきエラーで作成されなかったんだろうと思いつつも確認してみます。

#id root
id: root: No such user

やっぱりいない。
もう一度追加してみます。

#useradd root
useradd: unknown GID 100
Createing mailbox file: File exists
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

こんどはホームディレクトリにファイルをコピーできないというエラー。

root ユーザ追加してみた結果

こうなったら vipw と vigr で強引に解決するんだ!というおじさんに言われるがままに実行してみました。

vipw した状態

rootのIDが500になってます。この時点でおかしい。本来は0のはず。
編集してしまいます。

root のIDを0に変更

そして保存しようとするとよくわからない質問をされます。

保存しようとしてよくわからない質問

"/etc/gtmp" 32L, 441C written
You are using shadow groups on this system.
Would you like to edit /etc/gshadow now [y/n]?

gshadowファイルを編集しますか?といっています。
よくわからないのでy。
するとまたよくわからないファイルが開かれるけどよくわからないのでそのまま wq; で閉じる。

写真撮り忘れたので画像はありません。

続けて同様に vigr します。

vigr してファイルを開く

root の id を 0 に変更

そしてまた謎の質問

"/etc/ptmp" 22L, 947C written
You are using shadow passwords on this system.
Would you like to edit /etc/shadow now [y/n]?

さっきと逆でpasswd関係の何かを編集するかどうか聞いてきているっぽいですがよくわからないのでy。

表示された謎の文字列

やはりよくわからないのでそのまま wq; で保存して閉じてしまいます。
そしてルートになったりしてみますがやはりできません。
whoami してもよくわからない。
シングルユーザモードで whoami するとこうなるのが当然とかそういうものなんかということも知らないので正しいかどうかも判断できません。

#su root
su: relocation error: /lib64/libaudit.so.0: symbol __cxa_finalize, version GLIB 2.2.5 not defined in file libc.so.6 with link time reference
#id root
id: root: No such user
#whoami
whoami: cannot find name for user ID 0

root になろうと頑張ってみた結果

もうどうにもダメそうなので復旧は諦めてOS入れなおしします。
次回へ

コメント