web-dev-qa-db-ja.com

サイズ変更後のパーティションの問題

EDIT3
これはまったく絶望的なケースかもしれないので、私はもっと簡単な別の方法を投稿しましたが、それでも助けが必要です。
https://superuser.com/questions/706244/will-this-work-backup-partition-contents-of-both-linux-and-windows

最近、Windows8とKDELinux Mintがインストールされているディスク上のパーティションのサイズを変更しました(/ sda2で別のパーティション/ sda1を作成しました)。多くのことがうまくいかなかった。

まず、コンピューターはBIOSを超えて起動せず、grubレスキューを提供してくれました。 Live Linux USBでは、ブート修復アプリを使用してgrubを(/ sdaに)再インストールしました。ありがたいことに、Linuxは新しいgrub2メニューから起動しましたが、ロードしようとするとWindowsがクラッシュしていました。 Linuxで詳しく調べてみると、KDE ​​PartitionManagerやGPartedなどのアプリはどちらも/ sdaディスクのパーティションを読み取れないことがわかりました。

KDE Partition Managerは、「このデバイスで有効なパーティションが見つかりませんでした」と表示します。 GPartedは、すべてが割り当てられておらず、「パーティションのすべての制約を満たすことができない」ことを示しています。

次に、別のアプリ、FixPartsをインストールしました。それは私に次のことを与えました:

Warning: 0xEE partition doesn't start on sector 1. This can cause problems
in some OSes.

そして

Disk size is 250069680 sectors (119.2 GiB)
MBR disk identifier: 0x0FB1A4FB
MBR partitions:

                                                   Can Be   Can Be
Number  Boot  Start Sector   End Sector   Status   Logical  Primary   Code
   1                    63       192779   primary     Y        Y      0x07
   2      *         208839    134062424   logical     Y        Y      0x07
   5             134066176    234067967   logical     Y        Y      0x83
   6             234067968    250068991   primary              Y      0x82

fdisk -lは私にこれを与えました:

Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 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: 0x0fb1a4fb

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63      192779       96358+   7  HPFS/NTFS/exFAT
/dev/sda2   *      208839   134062424    66926793    7  HPFS/NTFS/exFAT
/dev/sda3       134066175   250068991    58001408+   f  W95 Ext'd (LBA)
/dev/sda5       134066176   234067967    50000896   83  Linux
/dev/sda6       234067968   250068991     8000512   82  Linux swap / Solaris

ここで、sda1は単なる空のNTFSパーティションであり、sda2には私のWindows 8が含まれ、sda5はLinux /(root)です。/homeは別のディスクにあります。

データを保持したい。また、SSDであるため、Windows8とLinuxを同じディスク上に配置したいと思います。可能であれば、GrubとWindowsの両方のブートファイルを同じディスクに配置したいのですが、それは別の問題です。

[〜#〜]編集[〜#〜]
最初は「0xEEパーティションがセクター1で始まらない」と思っていましたが、今はよくわかりません。私の他のディスク(私は3つを得ました)は同じエラーを出しますが、パーティションアプリはそれらを読み取ることができます。ただし、ブート修復アプリがすべてのディスクにgrub2を再インストールするのを見たのを覚えているので、おそらくそれは関連しています。また、Windows 8パーティション(/ dev/sda2)が論理的であることがわかりましたか? Windowsは論理から起動できないため、以前は起動できませんでした。データを失うことなく、どうすればそれを変更できますか?

EDIT2
ブート修復アプリからの本当に詳細な情報: http://paste.ubuntu.com/6805345/

3
Djalaal

私の良さ、これはただの混乱です。

目立つ問題のほんの一部を次に示します。

「0xEEパーティションはセクター1で開始しません」

現在、これらのディスクにはタイプ0xEEパーティションがありません。このメッセージが示すように、あなたがそれを持っていた場合、ある時点であなたのディスクは非常に異なるパーティションテーブルメカニズムでパーティション化されました。 「完全に破壊されたようです。このような状況では、「ハイブリッド」パーティションテーブルスキーム(可能な限り同じパーティションを記述する並列MBRおよびEFIパーティションテーブル)がその寿命の1インチ以内に修復された結果である可能性があります。または、おそらく1インチ先です。

これは、Windows8が起動しない理由の1つの可能性です。 Microsoftは、MBRパーティションテーブルでパーティション分割されたディスクにインストールすることは、EFIの方法で起動しないことを意味し、その逆も同様であると誤って想定しています。パーティションを根本的に「修復」して、パーティションテーブルスキームをEFIからMBRに変換できた場合は、おそらくWindowsの地獄を混乱させているでしょう。

もちろん、ブロック#1で開始されなかったタイプ0xEE MBRパーティションテーブルエントリは、そもそも破損の兆候であったため、何が起こったのかnotこれでした。もう1つの考えられる説明は、0xEEパーティションテーブルエントリがゴーストであったことです。これは、Windowsがマシン上でEFIの方法でブートストラップしている、またはブートストラップしたことがあるという兆候がないという事実によってサポートされています。

ブート修復アプリがすべてのディスクにgrub2を再インストールするのを見たのを覚えています。

これを、タイプ0xEE保護MBRレコードを完全に存在しない状態に「修復」することと組み合わせると、EFIパーティションテーブルがすべて消去されます。もちろん、これは、そもそも実際にEFIパーティション化されていることを前提としています。

=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img.

Grubは通常のMBRウイルスモードでインストールされており、EFIパーティションテーブルがある場所にcore.imgがあります。

今、私はWindows 8パーティション(/ dev/sda2)が論理的であることがわかります???

fdiskからの出力にはありませんが、ありません。それを示すものは何もありません。また、マイナーデバイス番号2が割り当てられているという事実は、それがプライマリパーティションであることを強く示しています。セカンダリパーティションは、5から始まる番号を取得します。

もちろん、FixPartsは真実を語っている可能性があります(そして間違いなくそうです)。この場合、MBRパーティションテーブルにはアクティブなプライマリパーティションがまったくありません、Windows 8は本当に拡張パーティションの論理ボリュームにあり、不思議なことはありません起動しません。 VBR bootstrapブートマネージャがその場でBPBを修正しない限り、プログラムはセカンダリパーティションでうまく再生されません。Grubはそれを行わないと確信しています。ここでプライマリパーティションからセカンダリパーティションへの変換を元に戻す必要があります。Windows8ボリュームは間違いなくプライマリパーティションである必要があります。

/dev/sda1: LABEL="SYSTEM RESERVED" UUID="01CF186FCBFB6340" TYPE="ntfs"
...
/dev/sda2    *        208,839   134,062,424   133,853,586   7 NTFS / exFAT / HPFS

最初のプライマリパーティションは明らかにあなたの (Poor Man's)システムボリューム です。ただし、2番目のプライマリパーティション(またはfdiskまたはFixPartsのどちらを信じているかによって、最初のセカンダリパーティション)はアクティブとしてマークされたパーティションです。これもWindowsを混乱させます。手始めに、アクティブフラグがないため、最初のプライマリパーティションを「システム」として認識しません。

また(fdiskが正しいと仮定して)、(EFIの方法ではなく)古いPC/ATファームウェアの方法で起動しているため、bootstrapは間違ってロードされます間違ったボリュームからのVBR(それが本当にシステム予約済みボリュームであることが意図されている場合)FixPartsが正しい場合、bootstrapは、間違ったボリュームから、間違ったBPB値で間違ったVBRをロードします同様に。

それは私をに連れて行きます:

=================== hexdump -n512 -C /dev/sda1
00000000  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|
...
000001a0  0d 0a 4e 54 4c 44 52 20  69 73 20 6d 69 73 73 69  |..NTLDR is missi|
000001b0  6e 67 00 0d 0a 4e 54 4c  44 52 20 69 73 20 63 6f  |ng...NTLDR is co|
000001c0  6d 70 72 65 73 73 65 64  00 0d 0a 50 72 65 73 73  |mpressed...Press|

Poor Manのシステムボリュームには、古いWindows NT 5.x VBR bootstrapプログラムが含まれています。

=================== hexdump -n512 -C /dev/sda2
00000000  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|
....
000001a0  63 75 72 72 65 64 00 0d  0a 42 4f 4f 54 4d 47 52  |curred...BOOTMGR|
000001b0  20 69 73 20 63 6f 6d 70  72 65 73 73 65 64 00 0d  | is compressed..|
000001c0  0a 50 72 65 73 73 20 43  74 72 6c 2b 41 6c 74 2b  |.Press Ctrl+Alt+|

2番目のプライマリパーティションにWindowsNT 6.x VBR bootstrapがあります。これにより、アクティブフラグがあるため、「ブート」ボリュームと「システム」ボリュームが組み合わされます。

sda1: __________________________________________________________________________

    Boot sector type:  Windows 2000/XP: NTFS
    Boot files:        

sda2: __________________________________________________________________________

    Boot sector type:  Windows 8/2012: NTFS
    Boot files:        /bootmgr /Windows/System32/winload.exe

しかし、MicrosoftのBootManagerは適切に存在していません。 BCDストアが完全に欠落しています。 2番目のプライマリパーティションのVBR bootstrapプログラムは、Microsoftのブートマネージャーを見つけることができます。しかし、Microsoftのブートマネージャーは、システムボリュームにBCDストアを持っていません。

sdc1: __________________________________________________________________________

    Boot sector type:  Windows 8/2012: NTFS
    Boot files:        /bootmgr /Boot/BCD /NTLDR /ntdetect.com

対照的に、3番目のディスクでは、最初のプライマリパーティションがアクティブとしてマークされているため、PoorManのシステムボリュームになります。 MicrosoftのBootManagerとBCDストアの両方があり、Windows NT 6.x VBR bootstrapプログラムがあります。これは、最初のディスクが何であるかを疑っています shouldのように見えますが、そうではありません。

私は提案します:

  • sda2がセカンダリパーティションである問題を修正します。
  • sda1をアクティブとしてマークします。
  • sda1は、以前のように、PoorManの「システム」ボリュームになりました。
  • Windows NT 6.2 VBR bootstrapプログラムをsda1に配置します。
  • Microsoftのブートマネージャーをsda1に配置します。
  • sda1にBCDストアを作成します。
  • Windows8の「ブート」ボリュームであるsda2を起動するためのBCDエントリを追加します。
  • sda1は、PC/ATの方法で少なくともbootstrap)になります。
  • それを実現するには、次のいずれかを行います。
    • MBRウイルスモードでgrubを廃止し、従来のMBR bootstrapプログラムをsdaに再インストールします。
    • 現在、hd0,msdos0またはhd0,msdos1についてはまったく言及されていないため、不足しているエントリをgrubに追加します。

後は君しだい。

6
JdeBP