お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#51 2009-03-17 22:33:45

hir0
メンバ
登録日: 2008-09-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

こんばんは。
partition table.Error loading operating system.Missing operating system

第一パーティション FAT 32、LBA プライマリあり ブートフラグあり
第2パーティション Linux(ext2)


motiiさんMBRの情報、有難うございました。

普通にGpartedと同じ結果(サイズの算出はまだしていないですが)ですが、エラーが出ています。

もしMBRが違う情報を示している箇所がと思いましたが同じようです。
ほんとに再確認に終わってしまいましたね。

これでCドライブのチェックも行えれば悩む事は無いんですが現状では

パーティションテーブルを修復してディスクを正常に読めるようにする。
1、Windowsが起動可能になる
2、システムが上書きされて起動しないがライブCDからデータをバックアップごリカバリー
と言う事だと思うのですが。
それとTestdiskの使用方法せすね。


できる限り大容量のメディアか、別PCに接続出来る環境(外付けのケースやセカンダリとして繋ぐケーブル等)があれば事前にバックアップ出きるのですが。

後はディスクのデータの救出ですが何かツールと方法を模索してみます。
その間に他の方の情報や指示が有りましたら気兼ねなく自由に行って下さい。

オフライン

 

#52 2009-03-18 00:00:52

motii
メンバ
登録日: 2009-03-14

Re: USBにInstall失敗し、XPが起動しなくなりました..

kiyoshiさま
hirOさま
お返事ありがとうございます!


はい、わかりました!
よろしくお願いしますm(. .)m

オフライン

 

#53 2009-03-18 08:44:44

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: USBにInstall失敗し、XPが起動しなくなりました..

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2009-03-18 09:12:10)

オフライン

 

#54 2009-03-18 10:14:41

ashimo
メンバ
登録日: 2009-01-18

Re: USBにInstall失敗し、XPが起動しなくなりました..

皆様、こんにちは。
解決策とあまり関係のない話ですみません。

kiyoshiさん による投稿:

オフトピ:ちなみにmotiiさんのはXPですが、VISTAには詳しく無いのですが、VISTAではパーティションを認識するための機構があって、それがうまく認証されないと起動しないとか、どこかで見たような気がします。本当にMicrosoftは、違法コピーを防ぐためかもしれないですが、不要な余計なことを・・・。

http://www.multibooters.co.uk/mbr.html
のことでしょうか。

MBRには Disk Signatureというdrive ID numberをもっているようです。
XP以前のWinNTは、Disk Signatureを利用せず、ドライブの場所をBIOSでチェックしていたが、
Vistaでは起動時に Disk Signatureを参照するようです。
(英語力がないので、読み間違えてるかも知れません。)

EFIに対応するために、起動がBIOSに依存しないようにしたのではないでしょうか。

オフライン

 

#55 2009-03-18 12:30:13

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

解決策には詳しく無いので情報収集の手段のみ投稿します.

此方では Windows と dualboot にしているのは Fedora です.まず此方での testdisk の結果から

コード:

Disk /dev/sda - 40 GB / 37 GiB - CHS 4864 255 63
Current partition structure:
     Partition                  Start        End    Size in sectors

 1 * HPFS - NTFS              0   1  1  2610 254 63   41945652 [S3A2249D001]

Bad sector count.
 2 P hid. FAT32 LBA        4462   0  1  4863 254 63    6458130 [HDDRECOVERY]
... 以下略 ...

第2パーティションの 開始 C/H/S を LBA に変換すると
/* 計算式は http://www2.odn.ne.jp/~hab81760/myfs_fd.htm を使用 */

C/H/S=4462/0/1 => LBA=71682030

この位置の 512 バイトが PBR のはずなのでダンプしてみました.Fedora では hd の代わりに hexdump -C を使います.

コード:

# dd if=/dev/sda bs=512 count=1 skip=71682030 2>/dev/null  | hexdump -C
00000000  eb 58 90 4d 53 57 49 4e  34 2e 31 00 02 08 20 00  |.X.MSWIN4.1... .|
00000010  02 00 00 00 00 f8 00 00  3f 00 ff 00 ee c7 45 04  |........?.....E.|
00000020  12 8b 62 00 98 18 00 00  00 00 00 00 36 00 00 00  |..b.........6...|
00000030  01 00 06 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  80 00 29 00 19 13 3b 48  44 44 52 45 43 4f 56 45  |..)...;HDDRECOVE|
00000050  52 59 46 41 54 33 32 20  20 20 fa 33 c9 8e d1 bc  |RYFAT32   .3....|
... 途中略 ...
00000180  01 27 0d 0a 49 6e 76 61  6c 69 64 20 73 79 73 74  |.'..Invalid syst|
00000190  65 6d 20 64 69 73 6b ff  0d 0a 44 69 73 6b 20 49  |em disk...Disk I|
000001a0  2f 4f 20 65 72 72 6f 72  ff 0d 0a 52 65 70 6c 61  |/O error...Repla|
000001b0  63 65 20 74 68 65 20 64  69 73 6b 2c 20 61 6e 64  |ce the disk, and|
000001c0  20 74 68 65 6e 20 70 72  65 73 73 20 61 6e 79 20  | then press any |
000001d0  6b 65 79 0d 0a 00 00 00  49 4f 20 20 20 20 20 20  |key.....IO      |
000001e0  53 59 53 4d 53 44 4f 53  20 20 20 53 59 53 7e 01  |SYSMSDOS   SYS~.|
000001f0  00 57 49 4e 42 4f 4f 54  20 53 59 53 00 00 55 aa  |.WINBOOT SYS..U.|
00000200

計算は正しいみたい.

そこで motii さんの場合のパーティション開始 LBA を

コード:

Disk /dev/sda - 80 GB / 74 GiB - CHS 9729 255 63
     Partition               Start        End    Size in sectors
* HPFS - NTFS              0   1  1  7842 254 63  125997732 [S3A2416D002]
D FAT32 LBA             7843   1  1  9148 254 63   20980827 [DATA]
D FAT32 LBA             9148 120  1  9729 254 63    9342270 [HDDRECOVERY]

から計算すると
C/H/S=0/1/1 => LBA=63 /* これは当然 */
C/H/S=7843/1/1 => LBA=125997858
C/H/S=9148/120/1 => LBA=146970180
になります.

計算があっていれば気になる HDDRECOVERY の PBR は

コード:

$ sudo dd if=/dev/sda bs=512 count=1 skip=146970180 2>/dev/null | hd

で眺めることが出来るはずです.

追加:
DATA パーティションの終了位置の次あたりは
C/H/S=9149/0/1 => LBA=146978685
C/H/S=9149/1/1 => LBA=146978748

さらに追加:
DATA パーティションが論理パーティションだとすれば(多分間違いない),その前の
C/H/S=7843/0/1 => LBA=125997795
には拡張パーティションのパーティションテーブルがあるはず.

余談:
motii さんの MBR の内容から第1パーティションの 開始 LBA を読み取ると LBA=1 !!!
つまり MBR のすぐ後ろになっています.
ここは通常使わない領域で,GRUB の stage1.5 がインストールされたりします.
MBR の bootcode 部分は見た目壊れていないみたいなので,MBR が LBA=1 の 512 バイトを PBR として処理を移し,
j が画面に出て... と推測します.

参考:CHS => LBA の変換には間に合わせの Perl スクリプト chs2lba.pl を作成し計算しました.
Usage: ./chs2lba.pl [-tH=総ヘッド数] [-SpT=トラック当たりセクタ数] C H S

コード:

#! /usr/bin/perl -s
use strict;
use warnings;

our $tH ||= 255;
our $SpT ||= 63;

sub chs2lba {
    my ($c, $h, $s) = @_;
    return ($h + $c * $tH) * $SpT + ($s - 1);
}

printf "%d\n", chs2lba(@ARGV);

最後の編集者: einundzwanzighundertsechs (2009-03-18 16:24:02)

オフライン

 

#56 2009-03-18 13:23:16

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: USBにInstall失敗し、XPが起動しなくなりました..

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2009-03-18 13:24:03)

オフライン

 

#57 2009-03-18 13:59:41

hir0
メンバ
登録日: 2008-09-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

情報が集まり出して混乱するといけないので整理すると、

#53 の発言はエラー表示に対しての意見とサポートに相談するかTestDiskでパーティション情報を修復すると言うことですね。
  
#54 はHDDRECOVERYのパーティションIDの確認方法と以前このトピックに数度出ている疑問にヒントを出しています。


motiiさんが意味を理解し易いための補助として書いています。einundzwanzighundertsechsさまと kiyoshiさまに意見をいているのではないので気分を害されたのでしたら削除します。また、私の解釈が間違っていましたらご指摘下さい。



ここからは私の意見ですがfixmbrはパーティションテーブルとは関係無い位置を修復するので万が一の誤動作を防ぐためにも修復が完了するまで行わない方が良いかも。

たしかにご指摘の通り 01 00 00 00 です。Windows起動よりリカバリー前のデータ回収に頭を切り替えた方がいいと言う事を示唆しているということでしょうか。

すこし私が混乱してきたかも。USBにインストールしようとしたデータがパーティションを切ってコピーされるのか、そのデータサイズのみ移すのか。どこでエラーが出て中断されたのか。
しかし、実際にHDDのパーティションに変更を摘要する前にエラーで停止したのか。
あっそうか、推測よりも実行と自分で書きこんだのだった。

憶測を確信に変える情報があれば気分も変わってくるのですが。

einundzwanzighundertsechsさまのご指摘のあったHDDRECOVERY の PBR は書き込みが無ければまた夜にでも投稿します。

最後の編集者: hir0 (2009-03-18 14:01:48)

オフライン

 

#58 2009-03-18 13:59:43

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

kiyoshiさん による投稿:

MBRのパーティションテーブルのうちの間違っている部分に正しい情報をddで直接書き込んで修復できないでしょうか。

それはやっぱり怖いので,私が同じ目にあったとしたら,内臓ディスクにはまず手をつけず,
1. 各パーティション(の残骸?)の開始LBA値を特定し,パーティションサイズを算出,
2. 新品のUSB 接続のハードディスクをそれに合わせてパーティションを切り,
3. Linux CD で起動して dd で各パーテション(の残骸?)を新ディスクの対応パーティションにコピー
4. コピーしたパーティションをマウントできるか確かめ(できれば中身が無事なのを確かめ)
てから,内臓ディスクをいじります.

motii さんへ,
根拠を理解してもらおうとするとどうも文章がまわりくどくなるので
取り合えず私の投稿は(#55 も)読みとばして下さい.

最後の編集者: einundzwanzighundertsechs (2009-03-18 16:11:37)

オフライン

 

#59 2009-03-18 14:14:44

hir0
メンバ
登録日: 2008-09-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

急いでいたので忘れていました。
motiiさん、#55の einundzwanzighundertsechsさんのコードで

$ sudo dd if=/dev/sda bs=512 count=1 skip=146970180 2>/dev/null | hd

を貼り付けて見てください。

そこからHDDRECOVERY の PBRのIDをみてみます。

オフライン

 

#60 2009-03-18 15:47:05

rewind
メンバ
登録日: 2008-08-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

motiiさん、およびフォーラムの皆さんこんにちは。
なんだか、私の頭ではついていけないような話しになってきているので、参考程度にしておいてください。
まづ、AX740LSの仕様説明によると
リカバリー領域として約  4.3GB
Dドライブ( FAT32 ) 約 10GB
Cドライブ( NTFS ) 残りの領域すべて
ということらしいです。
http://dynabook.com/pc/catalog/dynabook/051219ax/spec.htm

あと、フォーラムの皆様は知っておられると思いますが、
NTFSの場合、ブートセクタのバックアップがパーティションの一番後ろに
作られているので、
kiyoshiさんの 『Test Disk 』の解説のリンク先で
「Test Diskを使ってブートセクタ(ディスクパラメータ)を回復」の部分で
「Advanced」→Cドライブのパーティションを選択→「boot」→「dump」
で、オリジナルのブートセクタとバックアップブートセクタの比較ができるようです。
ただし、バックアップブートセクタが常に正しいわけではなさそうですが、
オリジナルのブートセクタとバックアップセクタ、およびXPをクリーンインストールした
ブートセクタの内容を比較すると何かヒントが見つかるかもしれませんね。

hirOさん、#51で解説されている
>>第一パーティション FAT 32、LBA プライマリあり ブートフラグあり
第2パーティション Linux(ext2)
この部分はどこの内容を読み取ればわかるのでしょうか?
お手の空いたときで結構なので少し解説していただけると幸いです。

オフライン

 

#61 2009-03-18 18:00:35

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: USBにInstall失敗し、XPが起動しなくなりました..

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2009-03-18 18:42:24)

オフライン

 

#62 2009-03-18 18:45:26

rewind
メンバ
登録日: 2008-08-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

kiyoshiさん、ありがとうございます。
リンク先これからじっくり読んでいきます。
あっ、あとコマンドのほうも実際に試してみます。
motiiさんには悪いですけど、私もこの場をお借りして勉強させていただきます。

オフライン

 

#63 2009-03-18 18:57:01

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

あまり投稿が重なると motii さんが迷うかも知れないので出来れば回答を控えたいのですが...

kiyoshiさん による投稿:

ただ、各パーティションではなく、内蔵HDDまるごとddでコピーするでしょうけど。

それではパーティションテーブルの壊れたマウントできない HDD がもう一つできてしまいます.
確かに完全コピーでバックアップの意味はありますが,私は早期のデータの救出を最優先に考えています.
まずHDDに正しいパーティションの「枠」を作っておいてそこに「残骸」を嵌め込むのです.
うまくいけば他の Windows に繋いでも中身を確認出来ます.
-- 「残骸」に「枠」を合わせる作業の方が困難,計算を間違えると「枠」が「残骸」を切り裂いてしまう --

追伸:あくまで「私が同じ目にあったら」の話です.
幸いにもそのような経験は無く,testdisk は -- 実績はあるでしょうが -- 最近になって知ったぐらいで動作の詳細に確信は無い.
それなら自分の使い慣れた tool を組み合わせてどこまで出来るかを考えます.

最後の編集者: einundzwanzighundertsechs (2009-03-18 20:15:03)

オフライン

 

#64 2009-03-18 22:29:50

hir0
メンバ
登録日: 2008-09-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

rewindさん今晩は。
私も勉強中と言うよりあれこれ興味をもってしまう質なので正式に勉強したわけではありませんが、まずHDDの先頭に1セクタ=512bytesのMBRと言われる領域があります。
この辺りは

http://caspar.hazymoon.jp/OpenBSD/arch/ … cture.html
こちらをご覧になれば分かるかと。

と有りましたが、それと合わせて読んで頂けると理解の手助けになると思います。

まず512bytesの最初の領域にリンク先で言うブートストラップローダに通常WindousやLinuxのブートローダーが格納されます。その領域の後半部分は何もない事の方が多いので 00 で埋め尽くされています。

次にパーティションテーブルの領域が来るわけですが、16bytesで1パーティションの領域を表しています。
パーティションは4つまで作れるので、最高16bytes x 4

ブートフラグは 80 で表されます。

16bytesの内訳は
ブートフラグ(1bytes)
開始位置,CHS(3bytes)
パーティションID(1bytes)
終了位置,CHS(3bytes)
開始位置,LBA(4bytes)
セクター数,LBA(4bytes)

以上を踏まえてみると

コード:

00000000  33 c0 8e d0 bc 00 7c fb  50 07 50 1f fc be 1b 7c  |3.....|.P.P....||
00000010  bf 1b 06 50 57 b9 e5 01  f3 a4 cb bd be 07 b1 04  |...PW...........|
00000020  38 6e 00 7c 09 75 13 83  c5 10 e2 f4 cd 18 8b f5  |8n.|.u..........|
00000030  83 c6 10 49 74 19 38 2c  74 f6 a0 b5 07 b4 07 8b  |...It.8,t.......|
00000040  f0 ac 3c 00 74 fc bb 07  00 b4 0e cd 10 eb f2 88  |..<.t...........|
00000050  4e 10 e8 46 00 73 2a fe  46 10 80 7e 04 0b 74 0b  |N..F.s*.F..~..t.|
00000060  80 7e 04 0c 74 05 a0 b6  07 75 d2 80 46 02 06 83  |.~..t....u..F...|
00000070  46 08 06 83 56 0a 00 e8  21 00 73 05 a0 b6 07 eb  |F...V...!.s.....|
00000080  bc 81 3e fe 7d 55 aa 74  0b 80 7e 10 00 74 c8 a0  |..>.}U.t..~..t..|
00000090  b7 07 eb a9 8b fc 1e 57  8b f5 cb bf 05 00 8a 56  |.......W.......V|
000000a0  00 b4 08 cd 13 72 23 8a  c1 24 3f 98 8a de 8a fc  |.....r#..$?.....|
000000b0  43 f7 e3 8b d1 86 d6 b1  06 d2 ee 42 f7 e2 39 56  |C..........B..9V|
000000c0  0a 77 23 72 05 39 46 08  73 1c b8 01 02 bb 00 7c  |.w#r.9F.s......||
000000d0  8b 4e 02 8b 56 00 cd 13  73 51 4f 74 4e 32 e4 8a  |.N..V...sQOtN2..|
000000e0  56 00 cd 13 eb e4 8a 56  00 60 bb aa 55 b4 41 cd  |V......V.`..U.A.|
000000f0  13 72 36 81 fb 55 aa 75  30 f6 c1 01 74 2b 61 60  |.r6..U.u0...t+a`|
00000100  6a 00 6a 00 ff 76 0a ff  76 08 6a 00 68 00 7c 6a  |j.j..v..v.j.h.|j|
00000110  01 6a 10 b4 42 8b f4 cd  13 61 61 73 0e 4f 74 0b  |.j..B....aas.Ot.|
00000120  32 e4 8a 56 00 cd 13 eb  d6 61 f9 c3 49 6e 76 61  |2..V.....a..Inva|
00000130  6c 69 64 20 70 61 72 74  69 74 69 6f 6e 20 74 61  |lid partition ta|
00000140  62 6c 65 00 45 72 72 6f  72 20 6c 6f 61 64 69 6e  |ble.Error loadin|
00000150  67 20 6f 70 65 72 61 74  69 6e 67 20 73 79 73 74  |g operating syst|
00000160  65 6d 00 4d 69 73 73 69  6e 67 20 6f 70 65 72 61  |em.Missing opera|
00000170  74 69 6e 67 20 73 79 73  74 65 6d 00 00 00 00 00  |ting system.....|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  f4 02 f5 02 00 00 80 00  |................|
000001c0  02 00 0c fe 3f 55 01 00  00 00 d5 14 15 00 00 00  |....?U..........|
000001d0  01 56 83 fe ff ff d6 14  15 00 eb cf 3b 09 00 00  |.V..........;...|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

のこの部分

000001b0  00 00 00 00 00 00 00 00  f4 02 f5 02 00 00 80 00  |................|
000001c0  02 00 0c fe 3f 55 01 00  00 00 d5 14 15 00 00 00  |....?U..........|
000001d0  01 56 83 fe ff ff d6 14  15 00 eb cf 3b 09 00 00  |.V..........;...|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

探して見てください。
これを16bytesの説明で区切ると
80 /  00 02 00  /  0c  /  fe 3f 55 / 01 00 00 00 / d5 14 15 00
00 /  00 01 56  /  83  /  fe ff ff / d6 14 15 00 / ed cf 3b 09
00 /  00 00 00  /  00  /  00 00 00 / 00 00 00 00 / 00 00 00 00
00 /  00 00 00  /  00  /  00 00 00 / 00 00 00 00 / 00 00 00 00
になります。

少し?オフトピックぎみですが
トピックにそってもう少し続きますが取り合えず途中でアップします。
motiiさんも状況を理解した方がまわりが何を言っているのか判断しやすくなると思います。もし解らなくてもリンクを眺めるよりは多少解り易いのでは?
間違った解説箇所があればドンドン指摘下さい。
アップ後また続きを「編集」で追加しておきます。

まずブートストラップローダ領域の後方に 00 で埋められている辺りに目星をつけると 付近に 80 を見付ける事が出来ます、ブートフラグの前にパーティションを表す16bytesは見当たりません。

これで第一パーティションにブートフラグが建っている事がわかりました。
次に
ブートフラグ(1bytes)
開始位置,CHS(3bytes)
パーティションID(1bytes)
終了位置,CHS(3bytes)
開始位置,LBA(4bytes)
セクター数,LBA(4bytes)

と照らし合わせるとよく解ると思います。
80 /  00 02 00  /  0c  /  fe 3f 55 / 01 00 00 00 / d5 14 15 00
00 /  00 01 56  /  83  /  fe ff ff / d6 14 15 00 / ed cf 3b 09
00 /  00 00 00  /  00  /  00 00 00 / 00 00 00 00 / 00 00 00 00
00 /  00 00 00  /  00  /  00 00 00 / 00 00 00 00 / 00 00 00 00

こう言うのを見つけました。
http://hp.vector.co.jp/authors/VA008536/data/partition.html

CHSとLBAの箇所をアップしようとしたら何だか終わりの予感の書き込みが、、、
やはりオフトピぎみなので切り上げます。

最後の編集者: hir0 (2009-03-18 23:47:24)

オフライン

 

#65 2009-03-18 23:21:50

motii
メンバ
登録日: 2009-03-14

Re: USBにInstall失敗し、XPが起動しなくなりました..

すみません
皆さん

忙しくて;
えーっと...よし ゆっくり読んで..

明日の昼ぐらいに報告しに来ます!

みんな ありがとう。
ネットでここまでしてくれたのは、初めてで
とっても嬉しいです。

皆さまの助けがなければ今ごろ
hddすっからかんでした(;_;)

オフライン

 

#66 2009-03-18 23:30:47

rewind
メンバ
登録日: 2008-08-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

hirOさん、説明ありがとうございます。
セクタエディタなどを使いつつ理解していこうと思います。

motiiさんへ、
私があなたのお役に立てることはほぼ終わりました。
トラブルが、ベストな形で解決することを願っています。

オフライン

 

#67 2009-03-19 01:00:42

kiyoshi
拒否
From: Linux-Loving-Person
登録日: 2007-02-07

Re: USBにInstall失敗し、XPが起動しなくなりました..

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

最後の編集者: kiyoshi (2009-03-19 01:49:35)

オフライン

 

#68 2009-03-19 02:05:19

hir0
メンバ
登録日: 2008-09-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

:) motiiさん今晩は:)
途中で横道にそれましたが基本的に #51 のスタンスなので、その続き(暇をみてツールとその他方法探し)をします。

HDDRECOVERY の PBR ダンプデータは張り付けてあればコメントします。(他にコメントが付かなければ):D

einundzwanzighundertsechsさま本当にいつも勉強になります(変な意味じゃ無いですよ)。
接触が有るたびに教えられたり見習うべき手法を発見します。

最後の編集者: hir0 (2009-03-19 02:06:05)

オフライン

 

#69 2009-03-19 02:28:43

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

motii さんへ,読みとばして下さい.混乱されませんように.
kiyoshi さんへ,

それではパーティションテーブルの壊れたマウントできない HDD がもう一つできてしまいます.

が非難めいて響いたならばあやまります.それは本意ではありません.
もちろんディスクに余裕があり完全バックアップも取っておけば2重の安心感で作業が出来ます.

私はデータの無事(or 破壊)が確認できるまでは,たとえ完全バックアップがあったとしても
「内臓ハードディスクには何も書き込まない」方針をとります.

私が同じ目にあったなら,破損ディスクはしばらく凍結し,とにかくデータを確認したいので,
各パーティションを破壊されたパーティションテーブルから切り出して(<= ここが私にとって重要),
(A) 前述の方法を試みる.
(B) 各パーティションを他のディスクにイメージファイルとして保存し loopback マウントを試みる.
(C) 他のディスクにパーティションを作らずディスクの先頭から書き込んでしまう.
     昔のフロッピーディスクのように,ディスク1つがまるまる1つのファイルシステムになるようにしてマウントを試みる.
     /* 4GB の FAT32 ではサルベージ以外の文脈で経験済み */

(A)と(B)は80GB強の予備のディスクが1つあれば試せます.
ただし(B)は他ディスクのファイルシステムによるファイルサイズの上限を考えておく必要があります.(ext3 なら 4TB)
(C)は重要なデータを含むパーティションが収まるサイズのディスクがあれば最優先で試します.
(A)と(C)はうまくいけば他の Windows マシンで使えるので仕事が続けられます.
平坦な道では無いことは認めます.

元々,各パーティションの LBA=offset の計算方法を提案するだけに留めるつもりでした.
サルベージの経験が無いため,それ以上は力になれそうにありません.しばらく引っ込むことにします.
決して変な意味に取らないでください.遅筆のためこれだけ書くのにとっても疲れてしまうのです.
短く書ける良い思いつきがあれば提案します.

hir0 さんへ,
褒めていただけるのは嬉しいのですが,「さま」づけは気恥ずかしいので「さん」でお願いします.

最後の編集者: einundzwanzighundertsechs (2009-03-19 05:31:43)

オフライン

 

#70 2009-03-19 10:05:57

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

私の念頭にある手順の概略を整理しておきます.

0. 目標
DATA 領域,NTFS 領域の必要なデータを救出する.RECOVERY 領域は後回し.Windows を起動するのが目的ではない.
(私はデータの救出さえ出来たらメーカ推奨の方法で工場出荷時の状態に戻すことも視野に入れています)

1. 前提
DATA, NTFS 両領域の開始LBA値(PBRの位置)とセクター単位のサイズがC/H/S等から計算できていること.
数値を調整する等の試行錯誤の可能性あり.(PBRの位置が正確ならサイズが多少違っても何とかなるのではと思ってます)

2. 必要な物
充分な容量(80GB以上)の USB 外付けディスク(複数あれば完全バックアップや作業領域としても使えるが,1台と仮定)
(あれば)確認用の Windows マシン

3. DATA領域吸い出しの準備
サイズの小さい DATA 領域の吸いだしで勘を掴む.Live CD で起動しディスクを問題のマシンに接続,
ディスクにパーティションを1つ作成し,タイプとサイズは DATA 領域のタイプ・サイズに合わせる.
新品なら大抵の場合,ディスク全体に広がったパーティションが既に1つ存在するのでタイプを合わせてサイズを縮小.
サイズがどうしても等しくならなければ DATA 領域サイズより多少大きくしておく.
(多少大きくても大丈夫とは思うが経験が無いため不明).フォーマットは不要.

4. DATA領域吸い出し
外付けディスクのデバイスファイルが /dev/sdb だとしたら 作成したパーティションは /dev/sdb1 となる.

コード:

 $ sudo dd if=/dev/sda bs=512 count=「DATA領域サイズ」 skip=「DATA領域開始値」 of=/dev/sdb1

/dev/sdb1 がマウント出来るか確かめる.(あれば Windows マシンに繋いでマウント出来るか確かめる.)

5. 対策
マウントできたら一休み.吸い出したファイルシステムは不健康なので,大事なファイルは健康なディスクにコピーする.
そのためにも,もう一つディスクが有った方が良い.ファイルシステムのチェックもする.
(Windows を使ったことが殆ど無いので詳しい方法は??? 我が家の Windows はハード初期不良のチェックのためのもの)
マウントしないときは /dev/sdb, /dev/sdb1 を testdisk, fdisk, dd と hd で解析して対策を立てる.
testdisk, LBA値とサイズの計算以外はごく一般的なコマンドの組み合わせなのでアドバイスを求めやすい.
ここで煮詰まっても,ともかく次に挑戦,データを少しでも救出する.

6. NTFS領域吸い出しの準備
3 で作ったパーティションの後ろにパーティションを作成(/dev/sdb2),タイプとサイズは NTFS 領域のタイプ・サイズに合わせる.
以下同様.

7. NTFS領域吸い出し
同様に

コード:

 $ sudo dd if=/dev/sda bs=512 count=「NTFS領域サイズ」 skip=「NTFS領域開始値」 of=/dev/sdb2

/dev/sdb2 がマウント出来るか確かめる.

8. 再び対策
5. と同様

追伸:
細かいことを書いていたらキリがないのでこれで勘弁して下さい.少し休みます.短く書けることなら書き込みます.
初心の方にはハードルが高いところもあるので,ずっと簡単な方法があればそちらを実行してください.
失敗が再チャレンジへの気力をできるだけそがないように工程を並べたつもりです.

最後の編集者: einundzwanzighundertsechs (2009-03-19 13:27:25)

オフライン

 

#71 2009-03-19 11:49:00

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

motii さんへ,
今後しばらく,解決に目処がつくまでの間は LiveCD で起動直後には !! 必ず !!,

$ sudo chmod a-w /dev/sda*

を実行して,内臓HD(及びそのパーティション)への書き込みを禁止してから作業して下さい.
たとえ単なる情報収集だったとしてもです.
情報収集のつもりの dd コマンドがタイプミスにより内臓HDへの書き込みになってしまう恐れがあります.
作業中 Permisson Denied 等のメッセージがあったら掲示板で誰かに相談して下さい.

最後の編集者: einundzwanzighundertsechs (2009-03-19 12:00:44)

オフライン

 

#72 2009-03-19 14:47:02

motii
メンバ
登録日: 2009-03-14

Re: USBにInstall失敗し、XPが起動しなくなりました..

みなさん こんにちは
お返事ありがとうございました!

einundzwanzighundertsechsさんの言われていたコード実行してみました。


ubuntu@ubuntu:~$ sudo dd if=/dev/sda bs=512 count=1 skip=146970180 2>/dev/null | hd
00000000  eb 58 90 4d 53 44 4f 53  35 2e 30 00 02 08 22 00  |.X.MSDOS5.0...".|
00000010  02 00 00 00 00 f8 00 00  3f 00 0f 00 44 96 c2 08  |........?...D...|
00000020  f0 60 8e 00 87 23 00 00  00 00 00 00 02 00 00 00  |.`...#..........|
00000030  01 00 06 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  80 00 29 fd da 2b a4 4e  4f 20 4e 41 4d 45 20 20  |..)..+.NO NAME  |
00000050  20 20 46 41 54 33 32 20  20 20 33 c9 8e d1 bc f4  |  FAT32   3.....|


全く意味不明です、、、




電話の件ですが
忙しいので時間が取れません;;
時間が取れたら電話してみます!
ありがとう。


einundzwanzighundertsechsさんへ

わかりました! これからLive DCから起動するときは、
$ sudo chmod a-w /dev/sda*を使います!ありがとうございました。



よろしくおねがいします。

最後の編集者: motii (2009-03-22 16:04:54)

オフライン

 

#73 2009-03-19 21:21:09

hir0
メンバ
登録日: 2008-09-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

今晩は、第2拡張領域のPBRの情報が必要見たいです。
申し訳ないですが、
$ sudo dd if=/dev/sda bs=512 count=1 skip=125997858 2>/dev/null | hd

をお願いします。
そこに入れ子構造の論理領域の情報が有ると思うので。

オフライン

 

#74 2009-03-19 23:12:56

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

motii さん,皆さんこんばんは,できるだけ短く書きます.用語の使い方を決めておきましょう.

HD は 512 byte=1 セクターとして,セクター単位で通し番号を振り管理しています.
その通し番号を LBA(値) と呼びましょう.
「LBA=5 からの 2セクター」では 5 はHD内の位置を示す「序数」で, 2 はセクター数を示す「数量」です.
つまり LBA=5 と LBA=6 の 2つのセクターを指します.

dd コマンドにくっつける
bs=512 count=1 skip=63
は,
512byte(=1セクター)を単位として,LBA=63 からの 1 セクター
の意味になります.
2>/dev/null は エラーメッセージを一時的に抑制するおまじないです.

HDではパーティション(領域)は LBA が連番のセクターの塊です.今必要なのは
「DATA領域は LBA=x からの y セクターである」
と言った情報です.

パーティションの最初のセクタ−(LBA=x からの 1 セクター)には
PBR と呼ばれるパーティションの情報が詰まっています.
PBR には特徴があり dd と hd コマンドを併用して人間が読めるようにすると判別がつきます.

どのような復旧手段を取るにせよ,「PBR を探してパーティションの開始位置をはっきり特定しよう.」と言うのが当面の目的です.

#72 のコマンドは リカバリ領域の開始を探すためのもので,結果情報は PBR に間違いは無いのですが...
何故か NO NAME ?? testdisk は HDDRECOVERY の文字列を何処から拾ってきた??
もう少し念をいれて探っておくのが良いでしょう.後で拡張パーティションテーブルも探して見ましょう.

コマンドの練習も兼ねて NTFS領域(c ドライブ)の PBR も見たいので,
#72 及び hir0 さんの #73 のコマンドを見比べつつ応用し,「LBA=63 からの 1 セクター」の情報を見せてください.
(練習のために,要所を除いて私は具体的なコマンドでは指示をしないようにします.ある程度意味を知ってもらわないと,
残ったデータの破壊だけでなく,次の投稿で注意するような危険があります.)

Live CD 起動直後には #71 のコマンドを実行することをお忘れ無く.

最後の編集者: einundzwanzighundertsechs (2009-03-20 04:01:09)

オフライン

 

#75 2009-03-20 00:04:56

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: USBにInstall失敗し、XPが起動しなくなりました..

motii さんへ,
今の作業は motii さんの HD を衆目に晒そうとしているようなものです.
PBR の特徴(特に右側の可読部分)を #55 の2番目の箱,#72 の結果から把握して,
コマンドの結果が当面の目的「PBRの捜索」と関係のない,個人情報漏洩につながるものだと判断したならば
「一切貼り付けない」,「一部を省略する」,「ほんの一部だけ示す」の処置をして下さい.

後に探すことになるであろう拡張パーティションテーブルは此方では次のようになりました.

コード:

$ sudo dd if=/dev/sda bs=512 count=1 skip=14988645 2>/dev/null | hd
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
000001c0  c1 a5 82 fe ff d4 3f 00  00 00 f1 c3 0b 00 00 00  |......?.........|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200

解析に必要なのは 「コマンド部分」 及び 「左の欄が 000001b0 の行から最後まで」 で,
000001f0 の行の中央最後の 55 aa がパーティションテーブルの印です.
* は すべて 0 であるため hd が省略をしたという印です.

短くしようと思ったのに結局長くなってしまいました.休み休み行きましょう.作業の要所でまた会いましょう.

最後の編集者: einundzwanzighundertsechs (2009-03-20 01:14:49)

オフライン

 

Board footer

Powered by FluxBB