新しいディスクがあるので、testdisk
バックアップがどのように機能するかを確認したいと思いました。
ディスクを_gksu gparted /dev/sdc
_でパーティション分割してフォーマットした後、次のようになります。
_$ Sudo fdisk -lu /dev/sdc
Disk /dev/sdc: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c0705
Device Boot Start End Blocks Id System
/dev/sdc1 63 20980889 10490413+ 83 Linux
/dev/sdc2 20980890 117210239 48114675 5 Extended
/dev/sdc5 20980953 83891429 31455238+ 83 Linux
/dev/sdc6 83891493 100663289 8385898+ 83 Linux
/dev/sdc7 100663353 109049219 4192933+ 83 Linux
/dev/sdc8 109049283 117210239 4080478+ 82 Linux swap / Solaris
_
したがって、この後、パーティションのブートレコードをtestdisk
でバックアップしてから、復元したいと思います。私もです:
_cd /tmp
Sudo testdisk
_
... その後
[ Create ] Create a new log file
_Select a media
_から_Disk /dev/sdc - 60 GB / 55 GiB
_を選択し、次に_[Proceed ]
_を選択しますPlease select the partition table type,
_から、_[Intel ] Intel/PC partition
_を選択します[ Analyse ] Analyse current partition structure...
_を選択します。私はこれを得る:1 P Linux 0 1 1 1305 254 63 20980827 2E拡張LBA1306 0 1 7295 254 63 96229350 起動可能なパーティションはありません 5 L Linux 1306 1 1 5221 254 63 62910477 X拡張52220 1 6265 254 63 16771860 6 L Linux 5222 1 1 6265 254 63 16771797 X拡張62660 1 6787 254 63 8385930 7 L Linux 6266 1 1 6787 254 63 8385867 X拡張67880 1 7295 254 63 8161020 8 LLinuxスワップ67881 1 7295 254 63 8160957
[ Backup ] Save current partition list to backup.log file and proceed
_を選択しますn
を_Should TestDisk search for partition created under Vista ?
_に回答します。私は得る:ディスク/ dev/sdc-60 GB/55 GiB --CHS 7296 255 63 パーティションの開始終了サイズ(セクター単位) * Linux 0 1 1 1305 254 63 20980827 L Linux 1306 1 1 5221 254 63 62910477 L Linux 5222 1 1 6265 254 63 16771797 L Linux 6266 1 1 6787 254 63 8385867 LLinuxスワップ6788 1 1 7295 254 63 8160957
Enter: to continue
_を押します。私は得る:ディスク/ dev/sdc-60 GB/55 GiB --CHS 7296 255 63 パーティションの開始終了サイズ(セクター単位) 1 * Linux 0 1 1 1305 254 63 20980827 2E拡張LBA1306 0 1 7295 254 63 96229350 5 L Linux 1306 1 1 5221 254 63 62910477 6 L Linux 5222 1 1 6265 254 63 16771797 7 L Linux 6266 1 1 6787 254 63 8385867 8 LLinuxスワップ67881 1 7295 254 63 8160957
[ Quit ] Return to main menu
_を選択します[ Quit ]
_を選択します[ Quit ] Quit program
_を選択しますこれで、_backup.log
_に_/tmp
_があり、次の内容が含まれています。
_#1412861047 Disk /dev/sdc - 60 GB / 55 GiB - CHS 7296 255 63
1 : start= 63, size= 20980827, Id=83, P
2 : start= 20980890, size= 96229350, Id=05, E
5 : start= 20980953, size= 62910477, Id=83, L
6 : start= 83891493, size= 16771797, Id=83, L
7 : start=100663353, size= 8385867, Id=83, L
8 : start=109049283, size= 8160957, Id=82, L
_
上記のプロセスを繰り返すと、同じ内容が_backup.log
_に追加されます。
ここで、復元をテストしたいと思います。もう一度_Sudo testdisk
_...そして
[ Append ] Append information to log file
_Select a media
_から_Disk /dev/sdc - 60 GB / 55 GiB
_を選択し、次に_[Proceed ]
_を選択しますPlease select the partition table type,
_から、_[Intel ] Intel/PC partition
_を選択します[ Delete ] Delete all data in the partition table
_を選択しますy
をClear MBR partition table by writing zero bytes to it? (Y/N)
に答えますy
をClear partition table, confirm ? (Y/N)
に答えますPartition table has been cleared. You have to reboot for the change to take effect.
_を取得し、_[Ok]
_を押します_Disk /dev/sdc
_に戻ります。ここで_[ Analyse ] Analyse current partition structure...
_を選択します;ここで取得:
ディスク/ dev/sdc-60 GB/55 GiB --CHS 57231 64 32 現在のパーティション構造: パーティションの開始終了サイズ(セクター単位) 起動可能なパーティションはありません
[Quick Search]
_をクリックしますShould TestDisk search for partition created under Vista ? [Y/N]
_に対してn
と答えます検索が開始したらすぐにStop
を押します;これを取れ:
警告:現在のシリンダーあたりのヘッド数は64 ですが、正しい値は255である可能性があります。 [ジオメトリ]メニューを使用してこの値を変更できます。 \-一部のパーティションがTestDisk \-で見つからないか、パーティションが重複しているためにパーティションテーブルに書き込めません。
_[ Continue ]
_を押して、取得します。
ディスク/ dev/sdc-60 GB/55 GiB --CHS 57231 64 32 パーティションの開始終了サイズ(セクター単位) LLinux 0 1 32 10244 63 32 20981697
L: load backup
_に対してl
を押します。Disk /dev/sdc - ...
_に_Choose the backup you want to restore:
_を選択し、_[ Load ]
_を押します。この時点で、私はこれを取得します:
_<pre>Disk /dev/sdc - 60 GB / 55 GiB - CHS 57231 64 32
Partition Start End Size in sectors
P Linux 0 1 32 10244 36 26 20980827
L Linux 0 1 32 10244 63 32 20981697
L Linux 10244 38 26 40962 39 6 62910477
L Linux 40962 41 6 49151 63 26 16771797
L Linux 49152 1 26 53246 44 4 8385867
L Linux Swap 53246 46 4 57231 35 32 8160957</pre>
_
...および「Structure:Bad。」は赤で表示されます。画像に示されているように:
私の質問は-なぜこの「構造:悪い」なのか?私が気付くことができる唯一のことは、最初の2つのエントリが同じ範囲をカバーしているということです。しかし、なぜtestdisk
は両方をインポートするのですか?バックアップからパーティション構造を復元したい場合、これを回避するにはどうすればよいですか?
まあ、もっと知識のある答えがあれば幸いです-しかし、少なくとも私はOPを書いている間にこの問題を回避する方法を見つけました。ところで、これはUbuntu 11.04では_TestDisk 6.11, Data Recovery Utility, April 2009
_です。ディスクが空になったら、_Sudo testdisk
_を再起動し、OPのトレースに従って、同じ画面(次の画面が表示されます)を表示します。
L: load backup
_のl
を押します。Disk /dev/sdc - ...
_に_Choose the backup you want to restore:
_を選択し、_[ Load ]
_を押します。)
ここで、2番目のエントリに移動し、次のようにします。そのパーティションの_Use Left/Right Arrow keys to CHANGE partition characteristics:
_を取得するまで_D=Deleted
_。次のようになります。
さて、明らかに、これ以上「悪い構造」は報告されておらず、すべてが緑色です。興味深いことに、このパーティションのみがこのように反応します(たとえば、最初のパーティションは、D
に設定されていても変更を引き起こしません)。
今、私は_Enter: to continue
_を押すだけです。次の画面でこれを取得します。
_ Partition Start End Size in sectors
1 P Linux 0 1 32 10244 36 26 20980827
2 E extended LBA 10244 38 1 57231 63 32 96230208
5 L Linux 10244 38 26 40962 39 6 62910477
6 L Linux 40962 41 6 49151 63 26 16771797
7 L Linux 49152 1 26 53246 44 4 8385867
8 L Linux Swap 53246 46 4 57231 35 32 8160957
_
それで、_[ Write ] Write partition structure to disk
_を選択します。そして
y
をWrite partition table, confirm ? (Y/N)
に答えますYou will have to reboot for the change to take effect.
_を取得し、_[Ok]
_を押します[ Quit ] Return to disk selection
_を選択します[ Quit ] Quit program
_を選択します今、私はこれを行うことができます:
_$ Sudo fdisk -lu /dev/sdc
Disk /dev/sdc: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders, total 117210240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c0705
Device Boot Start End Blocks Id System
/dev/sdc1 63 20980889 10490413+ 83 Linux
/dev/sdc2 20980928 117211135 48115104 f W95 Ext'd (LBA)
/dev/sdc5 20980953 83891429 31455238+ 83 Linux
/dev/sdc6 83891493 100663289 8385898+ 83 Linux
/dev/sdc7 100663353 109049219 4192933+ 83 Linux
/dev/sdc8 109049283 117210239 4080478+ 82 Linux swap / Solaris
_
...そしてほとんどすべてがOPの元のパーティションテーブルと同じです-ここに「f W95 Ext'd (LBA)
」があり、その上に2番目の「_5 Extended
_」がありました(_sdc2
_、 "extended")パーティション。
誰かが私が間違っていることを指摘でき、削除した後でもまったく同じパーティションテーブルを再構築するために正確に何をすべきかを指摘していただければ幸いです。
編集:私はもっと何かを得たと思います。違いは「f W95 Ext'd (LBA)
」と「_5 Extended
_」だけではありません。しかしまた、fdisk
から-最初の場合:
_255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors
/dev/sdc2 20980890 117210239 48114675 5 Extended
_
...そして2番目の場合:
_64 heads, 32 sectors/track, 57231 cylinders, total 117210240 sectors
/dev/sdc2 20980928 117211135 48115104 f W95 Ext'd (LBA)
_
したがって、CHSジオメトリ(および拡張パーティションの領域)は間違っています。それはおそらくOPで取得された_Warning: the current number of heads per cylinder is 64 but the correct value may be 255.
_の意味です。したがって、testdisk
のメインメニューに到達したら、ジオメトリを変更できます。
[ Geometry ] Change disk geometry
_[ Heads ] Change head geometry
_ Enter the number of heads:
_ _255
_[ Sectors ] Change sector geometry
_ Enter the number of sectors per track (1-63):
_63
_[ Cylinders ] Change cylinder geometry
_(ここでは変更なし):Enter the number of cylinders:
_ _7296
_[ Ok ] Done with changing geometry
_[ Analyse ] Analyse current partition structure
_[Quick Search] Try to locate partition
_n
から_Should TestDisk search for partition created under Vista ? [Y/N]
_testdisk
は、削除されたパーティションを検出するようになりました。ヒット_L: load backup
_Disk /dev/sdc -
_から_Choose the backup you want to restore:
_、次に_[ Load ]
_ここでも_Structure: Bad.
_と重複したパーティション。 1つおきにD
に設定します-不正な構造がクリアされます:
最後に:
Enter: to continue
_[ Write ] Write partition structure to disk
_y
からWrite partition table, confirm ? (Y/N)
[Ok]
_から_You will have to reboot for the change to take effect.
_[ Quit ] Return to disk selection
_[ Quit ] Quit program
_これで、fdisk
は同じジオメトリと拡張パーティションの同じ範囲を報告します。
_255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors
...
/dev/sdc2 20980890 117210239 48114675 f W95 Ext'd (LBA)
/dev/sdc2 20980890 117210239 48114675 5 Extended # first
/dev/sdc2 20980928 117211135 48115104 f W95 Ext'd (LBA) # second
_
...そして以前のレポートと比較すると、最初のレポートと同じ範囲になっていますが、ファイルシステムタイプは同じではありません(_5 Extended
_の代わりにf W95 Ext'd (LBA)
);しかし、少なくともこのように見える方がはるかに優れています。