[FreeBSD-users-jp 94072] Re: graid3 の復旧

2012-12-13 スレッド表示 Yoshiharu ITO
いとうといいます.

たびたびすいません.

メタデータの格納位置と構造がおおよそわかったので,時間がとれたときに
チャレンジしてみようかと思います.

が,ちょっと先になりそうですので,もしこれよりもまっとうな方法をご存知の
方がいらっしゃいましたら,お知らせいただけると嬉しいです.

以下,メモになります.

- メタデータはプロバイダが管理している領域の最終セクタに格納されている
- GEOM::RAID3 で探せば見つかるだろう
- sys/geom/raid3/g_raid3.h にある stuct g_raid3_metadata がメタデータ
  の構造だが過去のモノも含めると 3 通りあるようだ
- それを見分けるのは md_version である
- ディスクの状態を示すのは md_dflags である
- これの G_RAID3_DISK_FLAG_BROKEN が立っているのだろう
- メタデータの有効性を確認するためのハッシュ値も格納されているからメタ
  データをいじったらハッシュ値も更新しておかないとダメ

2012年12月13日 13:42 Yoshiharu ITO yochy4...@gmail.com:
 いとうといいます.

 大変申し訳ありませんが,お知恵を拝借できないでしょうか.

 当方 HDD 5 台で graid3 を運用しておりました.

 やんごとなき理由からハードウエア構成変更のため SATA ケーブルの抜き差し
 を含む作業を行った後に,シングルユーザーモードで起動確認を行いました.

 すると,こともあろうに SATA ケーブルの接続ミスで 2 台 HDD が見えない状態
 になってしまっていて,RAID3 が DEGRADED するどころか,その時に見えてい
 た HDD 全てが broken したことになってしまい,最終的に

  too few valid components.

 と graid3 プロバイダすら起動しなくなってしまいました(ここポイント).

 データ部へのアクセスは行なっていないわけですから,メタデータ部だけを何とか
 すれば復旧するのでは,つまり graid3 label をするだけでいいのかなぁと考えて
 みたりもしておりますが

 # g_raid3_metadata って HDD のどこに格納されてるんだ とか探してみたり

 このような状態から復旧させる,よい方法は無いでしょうか.

 以上,よろしくお願いいたします.

 --
 よっちい

-- 
よっちい


[FreeBSD-users-jp 94073] Re: svn update の使い方は ?

2012-12-13 スレッド表示 Dobashi.M
At Thu, 13 Dec 2012 08:42:10 +0900,
Naomichi Nonaka wrote:
 SVN上ではrelease/9.1.0はreleng/9.1のある時点でのsnapshotに名前が付いた
 ものとなってます。

つまり、と言うか、svnでの利用方法としては、普段(stableや headの利用では
無い場合)は (例えば 9.0から始めたとして)

svn checkout ~base/releng/9.0/...。セキュリティブランチは updateで。
そして 9.1にupにしようとしたら

svn switch ~base/releng/9.1/ で 9.1に upして、
セキュリティブランチは updateで...と言う感じでしょうか。

/ Name : Dobashi Mitsuyoshi  /
   / Email : md...@luna.wak2.jp /






[FreeBSD-users-jp 94074] buildworld fail in FreeBSD 9.0-STABLE

2012-12-13 スレッド表示 鬼生田浩一
鬼生田です。

 9.1が出たので、updateしようとしていますが、buildworld で
こけます。/usr/src/UPDATING を確認しましたが、手順は変更な
さそうです。

以下、2つのuname -a なマシン両方で同じ現象となります。
 9.0-STABLE FreeBSD 9.0-STABLE #1
 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #3:

# make buildworld
Cut
cc -O2 -pipe  -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall 
-Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Ww
rite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align 
-Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls 
-Wold-style-definition -Wno-pointer-sign -c expr.c
cc1: warnings being treated as errors
/usr/src/bin/expr/expr.y: In function 'main':
/usr/src/bin/expr/expr.y:291: warning: implicit declaration of function 
'yyparse'
/usr/src/bin/expr/expr.y:291: warning: nested extern declaration of 'yyparse'
expr.c: At top level:
expr.c:813: warning: no previous prototype for 'yyparse'
*** Error code 1

Stop in /usr/src/bin/expr.
*** Error code 1

Stop in /usr/src/bin.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

Googleで検索すると、以下のようなものが見つかりますが
解決できません。
http://www.mail-archive.com/freebsd-questions@freebsd.org/msg257286.html

解決方法をご存知の方おられましたら、お教えください。

---
Oniuda


[FreeBSD-users-jp 94075] Re: buildworld fail in FreeBSD 9.0-STABLE

2012-12-13 スレッド表示 Dobashi.M
At Thu, 13 Dec 2012 19:03:01 +0900,
Koh-ichi Oniuda (鬼生田浩一) wrote:
 /usr/src/bin/expr/expr.y: In function 'main':
 /usr/src/bin/expr/expr.y:291: warning: implicit declaration of function 
 'yyparse'
 /usr/src/bin/expr/expr.y:291: warning: nested extern declaration of 'yyparse'
 expr.c: At top level:
 expr.c:813: warning: no previous prototype for 'yyparse'

当方で9.1の buildworldが完了した /usr/obj/usr/src/bin/expr を無くして
/usr/src/bin/expr での操作です。

# ls -l
total 28
-rw-r--r--  1 root  wheel137 12月 11 20:48 Makefile
-rw-r--r--  1 root  wheel   9079 12月 11 20:48 expr.1
-rw-r--r--  1 root  wheel  10743 12月 11 20:48 expr.y

# make
Warning: Object directory not changed from original /usr/src/bin/expr
yacc  -o expr.c expr.y
cc -O2 -pipe -march=nocona -std=gnu99 -fstack-protector -Wsystem-headers 
-Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings 
-Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline 
-Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -c 
expr.c
cc -O2 -pipe -march=nocona -std=gnu99 -fstack-protector -Wsystem-headers 
-Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings 
-Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline 
-Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign  -o 
expr expr.o 
gzip -cn expr.1  expr.1.gz

# ls -l
total 104
-rw-r--r--  1 root  wheel137 12月 11 20:48 Makefile
-rwxr-xr-x  1 root  wheel  20390 12月 13 22:32 expr
-rw-r--r--  1 root  wheel   9079 12月 11 20:48 expr.1
-rw-r--r--  1 root  wheel   3781 12月 13 22:32 expr.1.gz
-rw-r--r--  1 root  wheel  27616 12月 13 22:32 expr.c
-rw-r--r--  1 root  wheel  20896 12月 13 22:32 expr.o
-rw-r--r--  1 root  wheel  10743 12月 11 20:48 expr.y

となります。
/usr/obj/usr/src/bin/expr で作られるのが以下ですが、それがここで作成さ
れています。

# ls -l
total 80
-rw-r--r--  1 root  wheel   1962 12月 11 21:53 .depend
-rwxr-xr-x  1 root  wheel  20390 12月 11 21:56 expr
-rw-r--r--  1 root  wheel   3781 12月 11 21:56 expr.1.gz
-rw-r--r--  1 root  wheel  27963 12月 11 21:53 expr.c
-rw-r--r--  1 root  wheel  20896 12月 11 21:56 expr.o

単体テストの参考にもならないかも知れませんが...

ただ、言われている事ですが「buildworldが原因不明の理由で失敗する場合は
/usr/objを消去してみましょう。」そうです。
# cd /usr/obj
# rm -rf *
# chflags -R noschg *
# rm -rf *

もしくは当方も今回行いましたが、/usr/srcを新しくしてから svnで
checkoutしました。(これまでは csupを使っていました。)

又、省略せずに手続きを記しても、いいかも知れません。
-- 
/ Name : Dobashi Mitsuyoshi  /
   / Email : md...@luna.wak2.jp /