web-dev-qa-db-ja.com

Linuxでのパーティションのサイズ変更-スーパーブロックエラーの不正なマジックナンバー

Partedとresize2fsでパーティションのサイズを変更しようとしていました。

私は以下を試しました:

#parted
Partition Table: msdos
Number  Start   End     Size    Type     File system     Flags
 1      2097kB  21.0GB  21.0GB  primary  ext4            boot
 2      21.0GB  500GB   479GB   primary  ext4
 3      500GB   500GB   536MB   primary  linux-swap(v1)

(parted) rm 2
(parted) mkpart
Partition type?  primary/extended? primary
File system type?  [ext2]? ext4
Start? 41GB
End? 500GB
(parted) q
Information: You may need to update /etc/fstab.

#resize2fs /dev/sda2
resize2fs 1.42.5 (29-Jul-2012)
resize2fs: Bad magic number in super-block while trying to open /dev/sda2
Couldn't find valid filesystem superblock.

残念ながら、なぜこれが機能しないのか理解できません。それはext4パーティションでした。データを失うことなくパーティションのサイズを変更したいと思います。

fdisk list before operation:
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        4096    40962047    20478976   83  Linux
/dev/sda2        40962048   975718399   467378176   83  Linux
/dev/sda3       975718400   976764927      523264   82  Linux swap / Solaris

Now fdisk shows:
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        4096    40962047    20478976   83  Linux
/dev/sda2        80078848   975718399   447819776   83  Linux
/dev/sda3       975718400   976764927      523264   82  Linux swap / Solaris
3
Joel G Mathew

まず、重要な違いについて非常に明確にしたいと思います。

  • パーティションは、ファイルシステムの開始位置と終了位置への単なるポインタです。最新のディスクでは、これらの開始点と終了点はセクター値として表されます。
  • ファイルシステムは、パーティション(または他のコンテナー)内に存在する複雑なデータ構造です。通常、ファイルシステムは、含まれているパーティションの開始点を基準にして定義されます。

あなたの/dev/sda2はセクター40,962,048で始まっていました。セクター80,078,848で始まるように変更しました。したがって、ファイルシステムの重要な初期部分が始まりますパーティションの外側なんらかの方法で参考書の表紙を動かし、テーブルの上に平らに座って、1センチメートルほど下に移動した場合と同様です。本の任意のページを移動します。この本を開いたとき、最初の1、2章とともに、目次が欠落していることに気付くでしょう。これらのページは、本から抽出されて、自由に浮かんでいます。したがって、すべてを読む以外に本の中で何も見つけることができません-そしてそれでも、その一部が欠落しているでしょう。

一般的に、パーティションのstartの移動またはサイズ変更を伴うパーティション操作は、GPartedを使用して行うのが最適です。これは、パーティションとファイルシステムのデータ構造を移動およびサイズ変更してすべてが正しく機能するようにするための操作の適切な順序を知っています。 。 GPartedでさえ、パーティションのサイズを変更するときにリスクがないわけではありませんが、特に開始点が関係する場合は、大量のデータを移動する必要があるため、バグ、電源障害、ハードウェア障害、またはその他の問題が原因で、パーティション全体。 必須 GPartedなしで実行する場合は可能ですが、パーティションとファイルシステムの違いを完全に理解し、この違いが順序に与える影響を理解する必要があります。さまざまな操作(ファイルシステムのサイズ変更、ファイルシステムの移動、パーティション境界の変更)を実行します。

あなたの特定のケースでは、私がお勧めするのは:

  1. 新しい/dev/sda2を削除します。
  2. 元の開始セクター値と終了セクター値を使用して、/dev/sda2を再作成します。これらが正確に以前と同じであることを確認してください。
  3. 再作成された/dev/sda2にアクセスできることを確認します。
  4. 重要なデータを/dev/sda2からバックアップします。
  5. パーティションの先頭を本当に移動する必要があるかどうかを再評価します。あなたの最終的な目標が何であるかわからないので、私はあなたのためにこれをすることはできません。おそらく、エンドポイントを移動することも同様に機能します(そしてそれはより安全です)。または、別のディスクを追加する方がよいでしょう。または、再パーティション化する必要がまったくない場合もあります。
  6. ディスクを再パーティション化する必要がある場合は、GPartedを使用してジョブを実行します。
4
Rod Smith