実行中のAWSインスタンスのパーティションを作成する方法は?

実行中のAWSインスタンスのパーティションを作成する方法は?

12GB ボリュームが接続されている AWS で EC2 インスタンスを実行しています。オペレーティングシステムはUbuntuです。この12GBボリュームから2GBパーティションを作成したいと思います。

結果は次のとおりですsudo fdisk -l

$ sudo fdisk -l 
Disk /dev/xvda: 12 GiB, 12884901888 bytes, 25165824 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x89cdb65f

Device       Boot   Start        End     Sectors    Size    Id    Type
/dev/xvda1   *       2048   25165790    25163743     12G    83    Linux

オペレーティングシステムを削除せずにパーティションを作成する方法は?正確には、xvda1パーティションを作成する方法と最初と最後のセクタ値を決定する方法は?

答え1

議論が示すように、実行中のシステムのルートファイルシステムを縮小する簡単な方法はありません(resize2fsサポートされていません)。 2つのオプションがあります。

  1. 仮想マシンを再起動できない場合は、オンラインサイジングを実行する必要があります(例:この回答)。
  2. VMを再起動し、サイズ変更のためのダウンタイムがある可能性がある場合、より良いアプローチはEBSボリュームのスナップショットを作成して別のVMにマウントし、そのVMを使用してサイズ変更することです。良いガイドがあります。この回答

最初のセクタと最後のセクタに関する質問に関しては、パーティション1の最初のセクタはまだ2048であり(メッセージが表示された場合は2048を入力します)、最後のセクタ番号は入力したパーティションサイズに従ってfdisk計算されます(パーティションサイズを指定するなど)。場合)2GiB)最後のセクタを自動的に計算します。

他の人が提案したように、EBSボリュームごとに1つのパーティションを使用すると管理が簡単になるため、これを行うことをお勧めします(たとえば、ルートEBSボリュームを2GiBに縮小し、単一パーティションボリュームの代わりに10GiBの2番目のパーティションを追加します)。 。

答え2

利用可能なすべてのスペース容量 /dev/xvda全部使ってしまった分割 /dev/xvda1

ボリュームにファイルシステム(およびデータ)があるがファイルシステムの最後に未使用のスペースがある場合は、まずファイルシステムの縮小を使用しますresize2fs <device> <size>(例:)resize2fs /dev/xvda 2G

次に、そのパーティションに配置されているファイルシステムの新しいサイズに合わせてパーティションのfdisk終わりを減らします(ここでは2G減ります)。/dev/xvda1

/dev/xvda2これで、ボリュームの末尾にある空き領域を使用して新しいパーティション(たとえば)を作成できます。

2番目のパーティションの先頭は、1番目のパーティションの終わり+ 1になります。

2番目のパーティションの終わりは、使用可能なセクタの数(ここでは25165824)などの必要性によって異なります。

注:仮想化環境では、ディスクデバイス/ボリュームごとに1つのディスクパーティションのみを配置することをお勧めします。たとえば、何らかの理由でファイルシステム/ディスクパーティションを増やす必要がある場合、これにより将来の変更がはるかに簡単になります。

関連情報