USBメモリ買って来ました。
中央通りのあきばおーで16GB 680円くらいでした。
ついでにHDDも買って来ました。SeagateとWDの同じ容量のやつを。
さて、今までの2Gの中身をまるごとコピーします。
ファイルコピーじゃないので dd コマンド等でやります。
買ってきたUSBメモリを追加で挿して起動します。
するといつものCentOS起動画面ではなく黒地に白のGRUB画面。
これでは起動できないので新USBを外して起動してから挿すことにします。
起動はシングルユーザモードで。
メモ: 2012秋のファイルサーバ復旧 01 ディスクフル発覚→シングルユーザで起動してみる
で、起動してから挿しました。
まあ、自動でマウントされないだろうとは思っていたので手動でマウントしようとして/devを見てみると、USBメモリがいません。古いやつ(OSを起動させたやつ)は当然います。
2つめなのでsdbとしてでてくるはずなのに。
ちゃんとささっているのか確認するために dmesg が見たい。でもログディレクトリがないから出力されない!
仕方ないので元のUSBメモリにログディレクトリを出すように変更します。
あまり手をいれたくなかったんだけど・・・。
/var/log と /var/tmp がシンボリックリンクになっていてエラーになってます。
これを削除してディレクトリを作成します。
とやって作成しました。
続けて /tmp も同じようにしておきます。
で、再起動してみるとエラーが減ってます。
上の方のマウントエラーはしょうがない。
データ領域用のHDDは外してあるから。
下の方のrootがいないというエラーがでているということはtmpがどうこうじゃなく、passwdファイルが壊れてしまっているのでは…という不安にかられます。
できない気がするけどパスワードを変更してみます。
ユーザがいないので実行できない。やはり…。
すぐ上のエラーはコマンド間違えただけです。
でもこれでdmesgは見られるようになったので新USBメモリを抜き差ししてみます。
そして
どうやら認識しているらしい!!!
確認してみる。
うーんやっぱりでない。
で、思いついたのが、windowsでddする方法。
なんかそういうフリーウェアがあったような…と思い返してみると
DDforWindows - Silicon Linux Wiki
というのを何かの際に触っていた!
いつつかったのかは思い出せませんが見たことあるUIなので使ったはずです。
CentOSは一旦シャットダウンしてWindowsへ。
DDするまえに新USBメモリをキレイにしておきます。
でUSBメモリのパーティションを削除しておきます。
そしてDD for Windows を起動。
このソフトだと、デバイスからデバイスへってのができないようで、一旦どこかにイメージファイルを作る必要がありそうです。
まず元USBの中身を吸い出します。
ここで気付いたのが、USBメモリ、2Gじゃなくて4Gだったんですねぇ。
で、 >> 読込 >> をクリックしてファイルに書き出し。
書き出し終わったらUSBを差し替えて << 書込 << をクリック。これで新しいUSBにまるごとコピーされました。 そして起動。 無事OS選択画面がでたらシングルユーザモードで起動します。 メモ: 2012秋のファイルサーバ復旧 01 ディスクフル発覚→シングルユーザで起動してみる
元USBと同じように起動できたのでもう一度 root のパスワードを設定してみようと頑張ってみますがやっぱり出来ません。
じゃあもうユーザ追加してみたら?という近所のおじさんの助言にしたがって useradd してみます。
まさかのrootユーザ追加。
mail というグループがないというエラー。
じゃあ、こいつも作ってみます。
エラーにならない。正常に作成されたのか?と思い su してみる。
エラーです。さっきエラーで作成されなかったんだろうと思いつつも確認してみます。
やっぱりいない。
もう一度追加してみます。
こんどはホームディレクトリにファイルをコピーできないというエラー。
こうなったら vipw と vigr で強引に解決するんだ!というおじさんに言われるがままに実行してみました。
rootのIDが500になってます。この時点でおかしい。本来は0のはず。
編集してしまいます。
そして保存しようとするとよくわからない質問をされます。
gshadowファイルを編集しますか?といっています。
よくわからないのでy。
するとまたよくわからないファイルが開かれるけどよくわからないのでそのまま wq; で閉じる。
写真撮り忘れたので画像はありません。
続けて同様に vigr します。
さっきと逆でpasswd関係の何かを編集するかどうか聞いてきているっぽいですがよくわからないのでy。
やはりよくわからないのでそのまま wq; で保存して閉じてしまいます。
そしてルートになったりしてみますがやはりできません。
whoami してもよくわからない。
シングルユーザモードで whoami するとこうなるのが当然とかそういうものなんかということも知らないので正しいかどうかも判断できません。
もうどうにもダメそうなので復旧は諦めてOS入れなおしします。
次回へ
中央通りのあきばおーで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入れなおしします。
次回へ
コメント
コメントを投稿