web-dev-qa-db-ja.com

MBRテーブルで重複したパーティションを修正する方法は?

PCにインストールしたUbuntuが起動画面で止まっています。そこで、新しくインストールしようとしましたが、インストールウィザードでパーティションテーブルが空で表示されます。パーティションが重複していることを知りました。

問題を解決するためにこのリンクを見つけました http://gparted.org/h2-fix-msdos-pt.php 。しかし、fdiskの出力には意味がないようです。

$ Sudo fdisk -l -u /dev/sda
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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: 0x49fec944

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      616448   257441624   128412588+   7  HPFS/NTFS/exFAT
/dev/sda2       452753408   484210687    15728640    7  HPFS/NTFS/exFAT
/dev/sda3       484210688   488394751     2092032    c  W95 FAT32 (LBA)
/dev/sda4       257433598   452753407    97659905    5  Extended
/dev/sda5       257433600   452753407    97659904   83  Linux
Partition table entries are not in disk order

私たちを手伝ってくれますか?

1
user260538

sfdiskを使用したパーティションテーブルの修正:

  1. ライブのUbuntuディスクで起動します。

  2. ディスクデバイスの問題を確認します。ここで/dev/sdaを使用してpartedを使用します。

    Sudo parted /dev/sda unit s print
    

    表示されるはずです:

    Error: Can't have overlapping partitions.
    
  3. パーティションの詳細は次の方法で確認できます。

    Sudo fdisk -l -u /dev/sda
    

    あなたにとって、あなたの投稿によると:

    Disk /dev/sda: 250.1 GB, 250059350016 bytes
    255 heads, 63 sectors/track, 30401 cylinders, total 488397168 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: 0x49fec944
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *      616448   257441624   128412588+   7  HPFS/NTFS/exFAT
    /dev/sda2       452753408   484210687    15728640    7  HPFS/NTFS/exFAT
    /dev/sda3       484210688   488394751     2092032    c  W95 FAT32 (LBA)
    /dev/sda4       257433598   452753407    97659905    5  Extended
    /dev/sda5       257433600   452753407    97659904   83  Linux
    
  4. 重複の確認:プライマリパーティション/dev/sda1の終わりが拡張パーティション/dev/sda4の始まりと重複していることがわかります。

    sda1終わり= 257441624

    sda4開始= 257433598

  5. documentation that-」で示唆されているように、開始セクタまたは終了セクタが問題かどうかわからない場合、各パーティションの開始セクタが正しいと仮定します、終了セクタにエラーがある可能性がある」、拡張パーティションsda4の開始セクタが正しいと仮定します。したがって、プライマリパーティションsda1の終了セクターを変更することを検討します。

    計算:

    sda1newEnd=sda4開始-1 = 257433598-1 = 257433597

    sda1newSize=sda1newEnd-sda1開始+ 1 = 257433597-616448 + 1 =256817150

  6. sfdiskコマンドを使用して、ファイル内のパーティションテーブルのコピーをダンプします。

    Sudo sfdisk -d /dev/sdaはパーティションテーブルの詳細をダンプする必要があります。これはファイルにダンプでき、必要な修正が行われた後、sfdiskにフィードバックできます。 [OPへ:質問を編集し、Sudo sfdisk -d /dev/sda]の出力を含めてください

    パーティションテーブルのコピーをダンプします。

    Sudo sfdisk -d /dev/sda > sda-backup.txt
    

    これは次のようになります。

    # partition table of /dev/sda
    unit: sectors
    
    /dev/sda1 : start=   616448, size=256825177, Id= 7, bootable
    /dev/sda2 : start=452753408, size= 31457279, Id= 7
    /dev/sda3 : start=484210688, size=  4184064, Id= c
    /dev/sda4 : start=257433598, size=195319810, Id= 5
    /dev/sda5 : start=257433600, size=195319808, Id=83
    
  7. 任意のテキストエディタを使用して、前の手順で作成したルート権限でファイルを開きます。この例では、nanoを使用します。

    Sudo nano sda-backup.txt
    

    sda-backup.txtファイルが現在のディレクトリにあると仮定します。そうでない場合は、ファイルの絶対パスで再配置します。)

    新しいパーティションテーブルダンプが次のようになるように、sda1256825177)の古いサイズを修正済みのサイズ(256817150)に変更します。

    # partition table of /dev/sda
    unit: sectors
    
    /dev/sda1 : start=   616448, size=256817150, Id= 7, bootable
    /dev/sda2 : start=452753408, size= 31457279, Id= 7
    /dev/sda3 : start=484210688, size=  4184064, Id= c
    /dev/sda4 : start=257433598, size=195319810, Id= 5
    /dev/sda5 : start=257433600, size=195319808, Id=83
    

    ファイルを保存します(Ctrl+O nano)の場合、エディターを閉じます(Ctrl+X nano)。

  8. sfdiskコマンドを使用して、修正されたパーティションの詳細をパーティションテーブルにフィードバックします。

    Sudo sfdisk /dev/sda < sda-backup.txt
    
  9. ディスクデバイスでpartedを実行して、問題が解決したかどうかを確認します。

    Sudo parted /dev/sda unit s print
    
  10. 手順9でパーティションテーブルが修正されたことを確認したら、デバイスでGPartedまたは他のパーティションエディターを使用できます。


GPartedのドキュメントでは、 testdisk を使用してディスクデバイスをスキャンし、パーティションテーブルを再構築する代替方法も提案しています。 testdiskアプリケーションは GParted Live に含まれています。したがって、コマンドラインの方法に慣れていない場合は、別の方法を試すことができます。

ソース

1
precise

Rustyの提案はうまくいくはずですが、それは少し威圧的です。同じことはfdiskでもう少し簡単に行うことができます:

  1. Sudo fdisk /dev/sdaと入力して、ディスクでfdiskを起動します。
  2. pと入力して適切なディスクで作業していることを確認し、パーティションテーブルを表示して、投稿したパーティションと同じパーティションが表示されていることを確認します。
  3. dと入力し、パーティション番号の入力を求められたら、1と入力します。
  4. nと入力して、新しいパーティションを作成します。プロンプトが表示されたら、パーティションタイプにp、パーティション番号に1(実際、fdiskはこの詳細を要求しないと思います)、616448を最初のセクターに、257433597(開始拡張パーティションのポイント-1)最後のセクター。 (最後のセクターの値がデフォルトである場合があります。この場合、Enterキーを押すだけです。)
  5. pと入力して、パーティションが正しいことを確認します。 /dev/sda1の終点が1セクターbefore/dev/sda4の開始点であることを除いて、それらはあなたが今持っているもののように見えるはずです。
  6. wと入力して、変更を保存して終了します。

あなたが私の手順に従うか、さびたものに従うかに関わらず、注意してください/dev/sda1内のファイルシステムは、セクター257,433,597を超えて使用できると考える可能性があります。その場合、この方法でディスクを修復すると、そのパーティションで問題が発生する可能性があります。この問題を回避する方法は本当にありません。notによって現在の問題を修復すると、/dev/sda5が消えたり、その内容が破損したりするような方法でパーティションテーブルが破損するリスクがあります。問題は間違いなく整理されています。ただし、/dev/sda1が破損するリスクを軽減するために、WindowsでCHKDSKを実行(またはそのGUIフロントエンドを使用)して、/dev/sda1の整合性を検証することをお勧めします。私は前向きではありませんが、CHKDSKが小さすぎるコンテナパーティションを検出することを期待しています。パーティションがファイルシステムに対して小さすぎる場合、問題を修正するためにファイルシステムのサイズ変更を行う必要がありますが、これを行うafterパーティションのサイズを変更して、/dev/sda5の損傷のリスクを最小限に抑えます。ただし、これはすべて予防策です。 /dev/sda1のファイルシステムが/dev/sda1の最後までサイズ変更されていない可能性があります。その場合、私とさびたお勧めの方法でパーティションのサイズを変更しても問題は発生しません。 (私たちは両方とも同じことをするように言っていますが、仕事をするために使用するツールが異なるだけです。)

1
Rod Smith

現在サポートされているリリース(12.04または13.10)をダウンロードして起動し、現在のインストールから保存したいデータをバックアップします。次に、fdiskを使用してパーティション5と4を削除し、再インストールします。

0
psusi

GPartedでサイズ変更/移動を行う場合、追加オプション「Align to:」があり、3つのオプションがリストされます。

  • MiB
  • シリンダー/これを選択してもう一度試してください-それは私のために働いた
  • None

同じ問題が発生したときに、ここで見つけました。 http://ubuntuforums.org/showthread.php?t=1980664&p=12319906#post12319906

0
gygoole