ハードディスクのリストア (Partition Saving)

| | コメント(0) | トラックバック(0)

OSをインストールするとWindowsUpdateしたり、定番のソフトを入れたり面倒です。
ちょっと試験的に怪しいソフトをみたり、無茶をしたいくても、面倒でやめちゃいます。
テストマシンでも何度もやりたくはありません。
VMWareやVirtualPCで試験する方法もありますが、有料だし。。。
そこで、設定後の状態をイメージファイルにバックアップしておいて、元の状態に戻したい時にリストアしたいと思いました。

今回バックアップ/リストアに使ったソフトは、「Partition Saving」です。

・Partition Saving: point d'entrée | entry point
http://www.partition-saving.com/

「ddでやるか?」と思ったんですが、もうちょっと自由度を持たせたいので別の方法にしました(本当はうまくできなかったから)。

他にも、いくつか使ったソフトがありますが、それらは後述。

今回の条件

  • フロッピーブートで復元できる事
  • NTFSを復元できる事
  • 任意(制限あり)のパーティションに復元できる事
  • パーティションのサイズを変更できる事

など

私の環境では、すべて準備が全部整ってれば、CD-Rに保存したイメージファイルからパッチをあてたWindows 2000(2GB弱)を20分強でリストアできました。(パーティションを切り直さない場合)
パーティションを切り直すと、+5〜10分位かな。
色々なソフトを入れて容量が多少増えても数分位しか変わらないと思います。

(2004/10/15 追記 ここから)
SP適用済みのインストールCDを作成するなら、「SP+メーカー」を使用する方法もあるようです。

・SP+メーカーの説明
http://hp.vector.co.jp/authors/VA020927/original/soft/winsppm.html

・インストールCDをSP適用済みに「SP+メーカー」v0.15
http://www.forest.impress.co.jp/article/2004/09/06/okiniiri.html
窓の杜の「SP+メーカー」紹介記事
(2004/10/15 追記 ここまで)

今回使用したソフト

● Partition Saving

・Partition Saving: point d'entrée | entry point
http://www.partition-saving.com/

パーティションのバックアップ/リストアツール。
DOSコマンド。
V2.80を使用しました。

● DOSの起動ディスク

手元にあっ�FWindows 98 の起動ディスクを使いました。

SEE:
Boot Disks (このblogより)
こんなサイトもあります。

● Ranish Partition Manager

・Partition Manager
http://www.ranish.com/part/

DOSコマンド。
パーティションマネージャ。
基本パーティションと拡張パーティションの作成、コピー、リサイズができます。
fdiskでは2つ以上の基本パーティションを作成できませんが、4つまで作成する事ができます。
2004/05/20現在 2.44 が最新ですが、Betaなので、安定版の 2.40 を使いました。

● CHEJ.EXE <Multimode CHEV> (ちぇじぇ) ver 6.10

・Natrium's - Software
http://homepage1.nifty.com/natrium/software/index.html

DOSコマンド。
上記「Ranish Partition Manager」はUSモードじゃないと動かないようです。
DOS標準コマンドのCHEV.EXEがあればよかったのですが、なかったので使用しました。

必要なDOSツールをフロッピーディスクに入れておく

「Partition Saving」「Ranish Partition Manager」「CHEJ.EXE」をコピーしたフロッピーディスクを作成しておくと良いでしょう。
「Partition Saving」のフランスのドキュメント(「\doc\FR_ANSI」と「\doc\FR_ASCII」)を削除おくと容量を稼げます。(必要な人は別にして)

既にあるパーティションをバックアップする

「Partition Saving」はDOSアプリなので、NTFSに書き込み(アクセス)ができません。
DOSからアクセスできるFAT32などパー�6ィションを保存先として用意しておくこと。

まず、バックアップを取りたいハードディスクの状態を作成します。

バックアップしたい状態ができたら、DOS起動ディスクで起動します。
「Partition Saving」を引数なしで実行すると、「Textual windows インターフェイス」(GUIっぽい画面)で起動します。

A:\> savepart.exe
  • TAB (次項目へ)
  • Shift+Tab (前項目へ)
  • 矢印キー (移動)
  • Ctrl+Tab (次のウィンドウへ移動)
  • Enter (決定)
  • Spaece (チェックボックスのOn/Off)
  • etc...

を使って操作します。

最初に現れるメニューはこんな感じ。

  • Save an element (パーティションをファイルにバックアップ)
  • Restore an element (ファイルからパーティションにリストア)
  • Copy an element (パーティションからパーティションにコピー)
  • Check a saving file (バックアップファイルのチェック)
  • Copy a saving file (バックアップファイルの複製、分割、圧縮度合いの変更など)

以下の手順でバックアップを行います。

  1. 「Action choice」ウィンドウで「Save an element」を選択します。
  2. 「Supprt choice」ウィンドウでバックアップするパーティションを選択します。
    今回は「Disk number N (N=0-3)」で対象のディスクを選択しました。
    FAT32などDOSから認識できるドライブをバックアップするなら「DOS devices」を選択してもかまいません。
  3. 「Select element choice」ウィンドウでバックアップ対象のパーティションを選択します。
  4. 「Part to save」ウィンドウでセーブする領域を選択します。
    「all sectors」を選択すると、パーティションのすべてのセクタを保存します。
    パーティションサイズや定義、場所などがまったく同じパーティションに戻すBB�忙箸い泙后�
    「occupied sectors」を選択すると、パーティションのうち使用されている部分のみ保存します。
    (今回の場合はNTFS領域の)使用領域のみが保存されます。
    異なるパーティションに復元する事ができます。
    今回の目的では、未使用領域は保存する必要がないので「occupied sectors」を選択しました。
  5. 「Destination file number」ウィンドウで保存ファイル名を指定します。
    例えば、「ntfs_01.par」など。
    ここで、「Option」ウィンドウの「Automatic nameing」にチェックをつけておくと、次項目で設定する保存ファイルサイズの最大値を超えた時、自動でファイル名をつけてくれます。
    拡張子の後ろ2文字を連番の数字がふられるようです。(filename.par, filename.p01, filename.p02,...)
  6. 「Maximum file size」ウィンドウで、保存ファイルサイズの最大値を指定します。
    最大値を超えた場合は分割して保存されます。
    保存のことを考えて、CD-Rに収まる範囲にしておけば良いと思います。
  7. 「Deflating」ウィンドウで、圧縮の度合いを決めます。
    「0」が無圧縮、「9」が圧縮最大、「6」が標準的な圧縮(デフォルト)です。
  8. 保存が始まります。
  9. 保存ファイルサイズの最大値を超えると、ファイル名を要求するウィンドウが表示されます。
  10. 保存が終了したら、「OK」を押します。
  11. 「Options file」ウィンドウで「Options file」を作成するか聞かれるので、「Yes」を選択しましょう。
    同じ事をする時や、リストアする時の助けになります。
  12. ファイル名を指定します。
    例えば「ntfs.cfg」など。
  13. 終了です。

バックアップファイルの検査

きちんとバックアップできたか検査します。

「Partition Saving」を起動して、メニューから「Check a saving file」を選択してバックアップファイルを順番に選択していく方法があります。

今回は、先ほど作成した「Options file」を使って入力の手間を省きます。
Options file名が「ntfs.cfg」だったとすると、以下の様に実行します。

A:\> savepart.exe -t -f ntfs.cfg

「-t」がチェックするオプションです。
「-f」がOption fileを指定するオプションです。
こうすると、バックアップファイルを指定しなくても、自動で検査が始まります。
また、バックアップファイルが複数ある場合でも、順番に検査してくれます。

バックアップファイルの保存場所を変えた場合は、Option fileを編集します。

file=C:\ntfs.par
file=C:\ntfs.p01
file=C:\ntfs.p02
file=C:\ntfs.p03

上記の様になっている部分を適切なファイルパスに編集します。
順番が関係あるので(上から順番に使われる)、順番に注意しましょう。

復元先NTFSのパーティションを作成する

バックアップしたパーティションはNTFSでした。
復元先のNTFSパーティションを作成します。
今回はDOSからNTFSパーティションを作成できるようにがんばってみました。

既にNTFSパーティションがあったり、Windows2000/XPからNTFSパーティションを作成できる場合は次の項目に進んでください。

基本的にDOSからNTFSのパーティションを作成するのはできないようです。
一般的には、「Partition Magic(パーテーションマジック)を使う」か「Windows 2000などのインストールを途中まで実行して電源を切る」という方法をとるようです。

小細工をしてみました。

「Ranish Partition Manager」はUSモードでないと動かないようなので、先に「CHEJ.EXE」を実行しました。
日本語部分が化けますが気にしないということで。

# USモードにする
A:\> chej.exe us
# 現在のパーティションの状態を表示
A:\> part.exe -p
Ranish Partition Manager       Version 2.40.00           February 08, 2001
 
                   File                Starting         Ending      Partition
   # Type Row   System Type         Cyl Head Sect    Cyl Head Sect  Size [KB]
 
   0  MBR   Master Boot Record        0    0    1      0    0    1          0 
   1  Pri   Unused                    0    0    2      0    0   63         31 
   2 >Pri 1 Windows NT NTFS           0    1    1    397  239   63  3,196,431 
   3  Pri 2 Windows NT NTFS         397  240    1    520  239   63    987,997 
   4  Pri 3 Windows FAT-32          520  240    1    582  239   63    498,015 
   5  Pri 4 Windows FAT-32          582  240    1    717  239   63  1,084,387 
   6  Pri   Unused                  717  240    1  1,232  239   63  4,136,737 
# 「Ranish Partition Manager」を起動する
A:\> part.exe

「Ranish Partition Manager」を起動後、以下を実行します。

  1. いらないパーティションの「System Type」を選択し、「Delete」キーで削除します。
  2. 作成する領域にカーソルを合わせ、「Enter」キーを押して「wizard」を起動します。
  3. 「FAT32」を選択して、好きなサイズを指定します。(FAT32の場合、512MB以上必要のようです)
  4. 「Do you want save change now?」に「Save now」と答えます。
  5. 「Do you want to format partition now?」に「No. I'll do it later」と答えます。
  6. 「Boot sector doesn't have valid information」と表示されますが、そのまま続けます。
  7. 「Insert」キーを押します。
  8. 「0x07 Windows NT NTFS -」を選択します。
  9. リストアしたパーティションから起動する場合は「B」キーを押してパーティションをアクティブにします。
  10. 「F2」キーを押してMBRの変更を保存します。
  11. 「ESC」キーを押して「Ranish Partition Manager」を終了します。
  12. コンピュータを再起動します。

NTFSパーティションにリストアする

  1. 「Partition Saving」を起動
  2. メニューから「Restore an element」を選択
  3. バックアップファイル選択
  4. リストア可能なパーティションが表示されるので、リストア先のパーティションを選択
  5. 確認して「Yes」
  6. リストアが終了したら、「OK」で終了

でもいいですが、「Option file」を作成してあるのでそれを使います。

Options file名が「ntfs.cfg」だったとします。
「ntfs.cfg」を編集してリストア先のパーティションを指定します。

  • disk : バックアップ元/リストア先のディスク[0-3]
  • main_part : パーティション[1-4]
  • ext_part : 論理ドライブ[1...]
; 1番目のディスクの1番目の基本パーティションの時
disk=0
main_part=1
; 2番目のディスクの
; 2番目の拡張パーティションの
; 2つめの論理パーティションの時
disk=1
main_part=2
ext_part=2

以下の様に実行します。

# 「ntsf.cfg」で指定したファイルを指定したパーティションにリストア
A:\> savepart.exe -r -f ntsf.cfg

「-t」がチェックするオプションです。
「-f」がOption fileを指定するオプションです。

これで、リストアができたので、Windowsを起動して確かめてみましょう。

Windows2000のシステムを1番目のハードディスクの1番目の基本パーティションにリストアしたら、以下のダイアログが出ました。

新しいデバイスのインストールが完了しました。新しい設定を有効にするにはコンピュータを再起動する必要があります。
起動時のダイアログより

パーティションサイズを変更するとでるんですかね?
2回目以降の起動では出ませんでした。


「Options file」のサンプル

A:\> savepart.exe -s -f ntsf.cfg

とすると、保存時の入力を省略できます。

「Options file」があると便利なのでサンプルを1つ載せておきます。

「バックアップ元/リストア先のパーティション指定」と「パックアップ先/リストア元のファイルの指定」を変更すれば大体大丈夫だと思います。

;; Partition Saving の設定ファイル
;;   savepart.cfg
;;
;; http://perso.club-internet.fr/guiboure/en/lisezmoi.html#Chapitre_12
;; 12- Options file contents 
;; を参考に設定のこと。
;;
;; 使い方
;; ・バックアップ時
;; savepart.exe -s -f savepart.cnf
;;・リストア時
;; savepart.exe -r -f savepart.cnf
;; ・保存ファイルのチェック
;; savepart.exe -t -f savepart.cnf
;;
;; 他にもオプションあり
 
; マウスの使用の有無
mouse=no
 
; 使用言語は英語
lang=en
 
; ユーザインターフェイス [console|text|text_bios]
user_interface=text
 
; バックアップ元/リストア先のディスク[0-3]
; パーティション[1-4]
; 論理ドライブ[1...]
disk=0
main_part=2
ext_part=1
 
; バックアップ元/リストア先のフロッピー [0...]
;floppy=0
 
; バックアップ元/リストア先のドライブレター [A-Z]
;device=C
 
; 圧縮率 [0(圧縮なし)-9(高圧縮)]
; バックアップ時のみ必要
def_level=6
 
; バックアップ先/リストア元のファイル名のリスト
; DOSから認識できること(NTFS不可)
; 上から順番に使われます。
file=d:\backup\data_01.par
file=d:\backup\data_02.par
file=d:\backup\data_03.par
file=d:\backup\data_04.par
file=d:\backup\data_05.par
file=d:\backup\data_06.par
file=d:\backup\data_07.par
file=d:\backup\data_08.par
file=d:\backup\data_09.par
file=d:\backup\data_10.par
file=d:\backup\data_11.par
file=d:\backup\data_12.par
file=d:\backup\data_13.par
file=d:\backup\data_14.par
file=d:\backup\data_15.par
file=d:\backup\data_16.par
file=d:\backup\data_17.par
file=d:\backup\data_18.par
file=d:\backup\data_19.par
file=d:\backup\data_20.par
 
; バックアップ先のファイルの最大サイズ[1-2047(MB)] Mb?
max_size=600
 
; バックアップ元のファイルシステム
; no=パーティション全体。
; その他=指定ファイルシステムの使用している領域のみ
;filesystem=no
;filesystem=MBR
;filesystem=firstsect
;filesystem=parttable
;filesystem=fat16
;filesystem=fat32
;filesystem=ext2
filesystem=ntfs
 
; 終了の仕方
; nobadsector=セクターエラーなし:終了
;             セクターエラーあり:エラーリスト表示
;quit=nobadsector
quit=no
 
; 終了後リブートするか
reboot=no

DOS起動でNTFSフォーマットする

上記方法でリストアできると言う事は、小さな空のNTFSパーティションのバックアップファイルを作成しておいて、それをリストアすれば、DOSから任意のNTFSパーティションを作成できるって事ですかねぇ?

一応できたっぽいけど、数MBが使用済みになってる。
NTFSってそういうもの?
それともどこかで不都合があるんでしょうかね?

注意点

例えばWindowsのシステムが入っているパーティションをリストアしてそのWindowsから起動した場合、ドライブレターが変わっていると、システムが動かないと思います。
レジストリや環境変数や設定ファイルのパス名が狂ったりするし。

あと、システムパーティションとブートパーティションの関係に気をつけましょう。
必要なファイルがなくなってしまうかもしれません。

・314470 - システム パーティションとブート パーティションについて
http://support.microsoft.com/?id=314470

  • システム パーティション = Ntldr、Boot.ini、Ntdetect.com などが保存されるディスクボリューム
  • ブート パーティション = Windows フォルダと WINDOWS\System32 フォルダが保存されるディスクボリューム

リストアにはある程度制限があるようです。

Since version 2.20, if you saved only occupied sectors of a FAT or ext2 partition (or NTFS for V2.30), you could restore it on a partition with a different format if certain size constraints are regarded. Nevertheless, the disk must have the same sector size as the saved partition, and the partition type must be the same (or must be compatible since V2.30).
FAQ Q 4の答え部分より
「Part to save」ウィンドウで「occupied sectors」を選択して(または、Option fileの「filesystem」でファイルシステムを選択して)「FAT」「ext2」「NTFS」パーティションを保存した場合は、全体のサイズが許せば、(開始位置や終了位置などの)異なるパーティションにリストアで4?泙后� ただし、保存したファイルのヘッダ情報とリストア先のディスクの間で、セクタサイズとパーティションタイプは同じでなくてはいけません。
私的訳(解釈)

後半の「パーティションタイプ」はおそらくパーティションテーブルに書かれているパーティションタイプの事だと思います。
「0x07」は「HPFS(OS/2), NTFS」、「0x0B」は「FAT32」、「0x05」は「拡張パーティション」・・・など。
詳しくは以下参照。

・Harddisk Partitioner PartitionStar - Partition Types
http://www.star-tools.com/partitionstar/english/manual/bid.html

・パーティションとその切り方
http://nobumasa-web.hp.infoseek.co.jp/partition/partition.html

だから、「NTFS」のパーティションを保存して「FAT16」や「FAT32」のパーティションにリストアはできないと思う。
(やり方が悪いのかもしれない。それとも訳(解釈)が悪い?)

「全体のサイズが許せば」というのは、「全要領3GBのNTFSパーティションで使用領域1GBのを「occupied sectors」で保存した場合、2GBや4GBのNTFSパーティションにリストアできる。0.5GBのNTFSパーティションにはリストアできないという意味。

パーティションの全セクタを保存する時のTIPS?

「Part to save」ウィンドウで「all sectors」を指定した場合(または、Option fileの「filesystem=no」にした場合)、未使用領域が同じ値が連続してると(?)圧縮率が高くなります。
また、バックアップ/リストア時の速度も上がるようです。

そこで「ファイル復活阻止ツール ExClear」を使って未使用領域を0埋めしておきます。

・ファイル復活阻止ツール ExClear
http://hp.vector.co.jp/authors/VA025590/ExClear/ExClear.html

Windowsアプリ。
指定したドライブの未使用領域を0埋めします。
単純に空き容量一杯のファイルを作り、0で塗りつぶすという処理を行います。
「ExClear」実行後、「\ExClr$$$\00000000\」フォルダが残ってしまうので、削除しましょう。

使用領域なしの512MBのNTFSパーティションをFAT32パーティションにバックアップするのに要した時間とバックアップファイルサイズを、0埋めあり/なしで調べました。
(実行前がどの程度不規則だったかは分かりませんが・・・)
ハードディスクは1台です。

          0埋め実行前      0埋め実行後
圧縮度合い=0の時 6分33秒 (509MB) → 7分54秒 (509.  MB)
圧縮度合い=1の時 6分35秒 (278MB) → 1分31秒 (  4.15MB)
圧縮度合い=6の時 7分52秒 (267MB) → 1分55秒 (  2.26MB)

圧縮度合い=1の時のリストアするのにかかった時間を調べました。

0埋めなし 2分26秒
0埋めあり 1分19秒

1.86GBを使用している3GBのパーティションを開き領域を0埋めをして、圧縮度合い=1で実行した時はこの位の時間がかかりました。

バックアップ 27分26秒
リストア     11分45秒

0埋めにも時間がかかるので、何度もリストアするようなら、0埋めしておくのもいいかもしれません。
というか、そんな事するなら、初めから「occupied sectors」でいいじゃんという話もありますが?

「Partition Saving」のサイトにあった情報表示ソフト

・Download (Partition Saving)
http://perso.club-internet.fr/guiboure/en/telechargement.html
からダウンロードできるユーティリティ

●DISKINFO (diskinfo.zip)

ハードディスクを解析して、ディスクの情報を表示します。

# 1番目のドライブの情報を表示
# 引数ばドライブの番号[0-3]
A:\> diskinfo.exe 0
DiskInfo V1.02                          Copyright (c) Damien Guibouret 2002-2003
Number of disks: 1.
 
Detection for disk 0:
Disk with extended access (version 0x21, functions 0x5)
Number of cylinders: 16383
          heads    : 16
          sectors  : 63
Size of sectors    : 512
        disk       : 19807200
Getting parameters with standard access:
Last cylinder: 1023
     head    : 254
     sector  : 63

●PARTINFO (partinfo.zip)

ハードディスクのパーティションテーブルを解析し、その情報を表示します

# 1番目のドライブのパーティションテーブル情報の表示
# 引数ばドライブの番号[0-3]
A:\> partinfo.exe 0
PartInfo V1.02                          Copyright (c) Damien Guibouret 2002-2003
Number of disks: 1.
 
Disk 0: Cylinder: 16382
        Head: 15
        Sector: 63
        Sector size: 512
        Disk size (sector): 19807200
        Access type: linear
Partition 1: main partition: 1, extended partition 0
             Partition type: 0x07 (QNX,OS/2,NT,Unix)
             Begin cylinder: 0
             Begin head: 1
             Begin sector: 1
             End cylinder: 397
             End head: 239
             End sector: 63
             First sector: 63
             Number of sectors: 6392862
Partition 2: main partition: 2, extended partition 0
             Partition type: 0x07 (QNX,OS/2,NT,Unix)
             Begin cylinder: 397
             Begin head: 240
             Begin sector: 1
             End cylinder: 520
             End head: 239
             End sector: 63
             First sector: 6392925
             Number of sectors: 1975995
Partition 3: main partition: 3, extended partition 0
             Partition type: 0x0b (Win95 FAT-32 (b))
             Begin cylinder: 520
             Begin head: 240
             Begin sector: 1
             End cylinder: 582
             End head: 239
             End sector: 63
             First sector: 8368920
             Number of sectors: 996030
Partition 4: main partition: 4, extended partition 0
             Partition type: 0x0b (Win95 FAT-32 (b))
             Begin cylinder: 582
             Begin head: 240
             Begin sector: 1
             End cylinder: 717
             End head: 239
             End sector: 63
             First sector: 9364950
             Number of sectors: 2168775

●FILEINFO (fileinfo.zip)

Partition Savingで作成したファイルのヘッダ情報を表示したり、正当性をチェックします。

# ヘッダ情報の表示
A:\> fileinfo.exe FILENAME.PAR
FileInfo V1.10                          Copyright (c) Damien Guibouret 2002-2003
Header: version: 0x0002
        last file: 0
        data CRC: 0x59b20065
        header CRC: 0x43b55756
        compression: 0
        type of element saved: 0
        type of support: 0
        CRC before: 0x00000000
        size before: 0
        size: 209715096
        disk number: 0
        head number: 254
        cylinder number: 1023
        sector number: 63
        disk size: 19807200
        sector size: 512
        access type: 0
        needed inc.: 0
        partition number: 2 - 0
        partition type: 0x7
        begin sector (CHS): 1
        begin head (CHS): 240
        begin cylinder (CHS): 397
        end sector (CHS): 63
        end head (CHS): 239
        end cylinder (CHS): 520
        first sector: 6392925
        sector numbers: 1975995
# ファイルの正当性チェック (およびヘッダ情報の表示)
A:\> fileinfo.exe -t FILENAME.PAR
(略)

リンク

・番外:Partition-Savingを使って
http://www.saturn.dti.ne.jpF7Esugita/backup/howto_savepart.html
日本語のPartition-Savingの使い方説明

・デジタルARENA / リカバリー環境はメーカーごとに何が違う?
http://arena.nikkeibp.co.jp/qa/os/20040507/108533/
ちょっと関係ないけどリンクだけ。

トラックバック(0)

このブログ記事を参照しているブログ一覧: ハードディスクのリストア (Partition Saving)

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/286

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2004年5月20日 02:06に書いたブログ記事です。

ひとつ前のブログ記事は「IECookiesView」です。

次のブログ記事は「DISK操作ツールのリンク集」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261