パスワードを忘れた? アカウント作成
494554 journal

bananan_wの日記: NFS Server停止 1

日記 by bananan_w

Linux で構築してあるNFS Serverが停止してしまった。
NFS Serverのモジュールだけが駄目になってしまっているみたいだった。
NFS Server からのレスポンスが全くなく、
NFS Server上には nfsd は残っているけど、停止後、nfsdの起動はできない状態。

# shutdown -r

の実行後は問題なく再起動してきて、NFS Serverもいつも通りに動いてくれました。

というわけで、debian etch の kernel を入れ換え。

また起きたら具合悪いなぁ。エスカレーション先とか、
dump イメージのとりかたって流儀あったりするか教えてヱロイ人。

K7マシンにP6向けパッケージが入ってたよ...orz...
とりあえずK7向けカーネルに入れ換えておくよ...
---
5/18 は 8:00 に戸呂駅。
経路等は後ほど調べておきましょう。

---
某プログラムの大まかな仕様は固まりましたっ。
GUIデザインは慣れないけど、大雑把にはできたので、
「具合のいい」形のコードを吐けるようになったら後は一気にコーディングしましょう。

エンジン部分はCで書いたコードのまるごと流用で、
ちょっとだけ機能追加な予定なので、動き始めたら早いだろうし。

---
以下、メモのような殴り書き

■チェックボックス
・親を選択状態とした場合には、子に相当するものは全選択となるようにする
・親を明示的に非選択状態とした場合には、子に相当するものは全てを非選択となるようにする
・親が選ばれた状態で、子に相当するものの一つが非選択状態に変更されたら、親も非選択状態となる
・check all/clear all ボタンのようなものは作らない
・/dev/hda は hda* すべての親である
・Extendedなパーティションは、hda5-64の親である

■pixmap
・削除対象とされるパーティションは白色点灯とする
・削除済みのパーティションは白色
・パーティションの表示には最低幅の保証を行なう。実装は別途記述。
・pixmapのパーティションの上にマウスカーソルを持っていくと、パーティション名とFSとサイズの情報がポップアップすること
・その他は某ソフトの仕様のままでおk

■確認用ダイアログ
・実行ボタンを押された時に、ユーザへ確認のための情報を表示する
・処理方式と処理対象(すべてのファイル名を列挙)を表示する
・ただし、hdaもしくはExtendedが処理対象の場合には、子に相当するものは列挙しない

■消去進捗表示ダイヤログ
・デバイスファイル毎に並列処理を行なうので、それぞれ複数の進捗ダイヤログを表示させる
・hda1,hda2,hdb1 の処理を行なう場合には、hda1とhda2のダイヤログと、hdb1のダイヤログの二つ
・ダイヤログには以下のものを表示
プログレスバー
開始時間
終了予定時間
書き込みを行なった量(cylinder/byte/プログラム内の独自単位のどれか)
残量(同上)
処理方式
何回中、何度目か?
該当ダイヤログの残りの処理パーティション

■完了ダイヤログ
・処理中ダイヤログが、すべて終了した時に表示される
・処理中ダイヤログと同数表示される
・正常終了/異常終了のメッセージとアイコンを表示する
・成功/異常に関わらず、ログを出力する(ログについては後述)
・ログ出力した旨の表示もする

■全体完了ダイヤログ
・全ての完了ダイヤログが正常終了であった場合には、正常終了
・処理ダイヤログのどれかが正常終了しなかった場合には、異常終了
・完了ダイヤログで出したログメッセージについての情報を出しておく事

■ログ
・処理ダイヤログの処理単位で別ファイルに出力する
・ファイル名例 : /tmp/gtshred_log_yyyymmddhhmmss_hda.log
・hda1単独で指定された場合には、hda 部分は hda のままとする
・処理対象のファイルパスに、/dev/ 以降に / が使用される場合には、ハイフンで置換する
・symlink attack を回避するため、ログファイルを書き込む直前に(存在すれば)削除する
・ログフォーマットは流用+ディスクログで新たに入れる部分の追加

■ディスク上のログ
・処理対象のディスク上にもログを保存する
・処理対象ディスクのsector 0のoffset 0x00-0x01BEの、
ブートレコーダのプログラムコードが入っている場所に書く。
・以下の情報を格納する
確保した領域に満たない部分はゼロでパディングする。
マジックナンバー : 0x00-0x0F : 0x00, 0x08, 0x00, 0x07, 0x00, 0x08
gtshred : 0x10-0x1F : "gtshred\0"
gtshred_version : 0x20-0x2F : "VER 00.00.00\0"
消去方式 : 0x30-0xAF : ""AR380-19 : 3 pass : random, specified character, complement of the specified character\0"
処理対象デバイス名 : 0xB0-0xCF : "MAXTOR 5A300J0\0"
処理対象のserial number : 0xD0-0xEF : "1234abcd\0"
処理対象のファイル名 : 0xF0-0x0FF : "/dev/hda\0"
処理開始日時 : 0x0100-0x011F : "start:yyyymmddhhmmss\0"
処理完了日時 : 0x0120-0x013F : "end:yyyymmddhhmmss\0"
partition table : 0x01BD-0x1CBB : 0x00(hdaとExtendedパーティションのみ。他は触らない)
boot sig : 0x01FE-0x1FF : 0xAA55

■pixmapの最低幅保証
・1:最低とする幅は定義しておく
・2:pixmapエリア全体の幅として使用可能な幅の長さも定義しておく(もう固定長でいいや)
・3:パーティションのpixel幅は、[2]より小さい場合には、必ず[2]以上とするように計算する
・4:全てのディスクに対して割り振った幅の大きさの和を計算しておく
・5:[2]と[4]に差分がある場合には、幅の最も大きなパーティションの幅を、和が[2]と等しくなるように減ずる

とりあえずこんな感じかな。
多分、具合良く動くだろう。これで。
追加したい仕様がある人はコメントつけるといいよ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • なかなか良い感じっすねえ。

    指定した処理完了後に作業内容のサマリーが、なんとなく文書として整形されて出てくると、「消去作業証明書」の代わりに使えてうれしいかなーと思ったり。でもこれは最悪、指定条件でログをフィルタして、そこから要素を抜き出して列記するだけでもいいかなあ。

    旧謎プログラムでは、一見パーティションごとの指定ができるように見えて、実はデバイス丸ごとの消去になってましたが、今見たこの仕様ではパーティションを選択できるようになるみたいですねー。これは大歓迎。

    パーティション選択は、画面上半分のリストにチェックを入れる方法と、画面下のレイアウト表示をクリックするのと、2つの方法があるのかな。作業の実際としてはレイアウト表示をクリック選択というのはなくても問題なくて、上のリストでチェックした結果が下半分の表示に反映されれば問題ないと思います。(いや意外と実装面倒かなーと思いまして)

    あとはあれかな、GUI周りは AcronisのTrueImageあたりをお試し版で使ってもらって「へーこんななんやー」とか眺めてもらうと面白いかも。
    --
    GUST NOTCH な気分でいこう!
typodupeerror

人生の大半の問題はスルー力で解決する -- スルー力研究専門家

読み込み中...