Parted はパーティションが重複することはできません。

Parted はパーティションが重複することはできません。

たとえば、デバッグ目的でディスクを割り当てられていないすべての領域に拡張する必要があります。

私のディスク全体のサイズは931.5GBで、次のパーティションがあります。

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0 107.5G  0 part /
└─sda3   8:3    0   3.8G  0 part [SWAP]

したがって、私の/dev/sda2パーティションは931.5GB未満です。より多くのスペースを確保するには、partedコマンドを使用してこのパーティションを増やす必要があります。

未割り当て領域は819.72GB(gpartedを参照)parted /dev/sda resizepart 2 500GBですが、このコマンドは次のエラーを返します。

 Can't have overlapping partitions

/dev/sdaがマウントされず、奇妙に分離されてパーティションを縮小できるように、ライブUSBを使用してこれをすべて行っています。

 parted /dev/sda resizepart 2 50GB

別の点は、この問題に対する解決策が見つかった場合は、bashスクリプトを使用してこのプロセスを自動化するために-sオプションを使用したいと思います。

これは fdisk -l コマンドの出力です。

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C680462D-DE3F-4A97-B2A2-50226E7F9668

Device         Start       End   Sectors   Size Type
/dev/sda1       2048   1050623   1048576   512M EFI System
/dev/sda2    1050624 226453503 225402880 107.5G Linux filesystem
/dev/sda3  226453504 234440703   7987200   3.8G Linux swap

ありがとう

答え1

成長できない理由/dev/sda2は、スワップパーティションが/dev/sda3近すぎて/dev/sda2成長を許可できないためです。パーティション/dev/sda2は226453503セクタで始まり、スワップパーティションは次のセクタ226453504で始まります。したがって、実際には次のセクタに追加のパーティションを要求することです(これは非常に悪い考えなのでgparted許可されません)。

この問題を解決するには、スワップ領域をドライブの端に移動するか(gparted思うように)削除し、サイズが大きくなった後に追加し直すことができます/dev/sda2(最も使い慣れたパーティションツールを使用)。残念ながら、特定の状況に応じてプロセスを自動化する提案はありません。しかし、少なくとも今、問題の根本原因を知ることになりました。

非常に似た問題と解決策がありますここ

答え2

新しいブートパーティション(または追加の手順を必要とする可能性がある他のパーティション)を追加した後にこの問題が発生する可能性がある場合、もう1つの非常に簡単な解決策は、parted gdiskSortを使用してサイズ変更する前にペアパーティションを使用することです。

gdisk /dev/sdX
Command (? for help): s

その後、 parted でパーティションのオーバーラップエラーが発生しなくなりました。

答え3

ディスクサイズとパーティションサイズが異なる複数のclonzillaイメージに対するElderの回答を自動化し、デフォルトのレイアウトEFI + OS + Swapが常に同じで、OSがスワップ時にスリープモードではないと仮定すると、最も難しい部分はスワップパーティションを移動しますすることです。ディスクの最後まで。 Gpartedは、端に基づく位置を許可しないようです(負の開始/終了番号を使用)。出力を処理してparted printディスクサイズを確認し、mkpartgpartedコマンドで使用する開始位置と終了位置を自動的に計算する必要があります(必要に応じてパーティションの先頭を並べ替えます(2048セクタなど))。シェルスクリプトなどのプログラミングが必要です。

関連情報