web-dev-qa-db-ja.com

仮想ディスクのサイズを変更した後、アクティブパーティションのサイズを増やすにはどうすればよいですか?

容量が不足しているWebサーバーを実行しています。 VMware ESXで仮想マシンとして実行されており、ハードドライブのサイズを2倍にしました。

Disk /dev/sda: 96 GiB, 103079215104 bytes, 201326592 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
Disklabel type: dos
Disk identifier: 0x51f6b050

Device     Boot   Start       End  Sectors  Size Id Type
/dev/sda1  *       2048    999423   997376  487M 83 Linux
/dev/sda2       1001470 100661247 99659778 47.5G  5 Extended
/dev/sda5       1001472 100661247 99659776 47.5G 8e Linux LVM

これは、dev/sdaが96GBであることを示しています。これは、物理ボリュームを参照する必要があります。つまり、以下の表には、sda1、sda2、sda2の3つのパーティションがあります。

ただし、DFコマンドを実行すると、次のようになります。

Filesystem                     1K-blocks     Used Available Use% Mounted on
udev                             4068132        0   4068132   0% /dev
tmpfs                             817508     9312    808196   2% /run
/dev/mapper/webserver--vg-root  44762192 35857748   6607612  85% /
tmpfs                            4087524        0   4087524   0% /dev/shm
tmpfs                               5120        0      5120   0% /run/lock
tmpfs                            4087524        0   4087524   0% /sys/fs/cgroup
/dev/sda1                         482922   152390    305598  34% /boot
tmpfs                             817508        0    817508   0% /run/user/1000

パーティションでない場合、これらは何ですか?問題は/ dev/mapper/webserver--vg-rootのようです(システムを使用できるように、ファイルをいくつか削除しただけです)。ディスク容量の増加に基づいてサイズを増やすにはどうすればよいですか?

前もって感謝します

2
Simon Greer

余分なディスク領域が表示されない理由は、(拡張した)ディスクとオペレーティングシステムの使用可能な領域の間に複数のレベルが関係しているためです。

  • ディスク自体
  • ディスク上のパーティション(単一のディスクをさまざまな目的で使用できるようにします)
  • LVM(論理ボリューム管理。ディスクスペースをより簡単に管理できます)
  • ファイルシステム(パーティションまたは論理ボリューム内のファイルストレージを管理する)

これらの各層には、ディスク領域の増加について通知する必要があります。

LVMを使用しているため、2つのアプローチがあります。 Rui 's answer (十分に近い—新しいディスクの追加について説明していますが、新しいプライマリパーティションを追加できます)で説明されているように、新しいパーティションを追加して使用できます。同じ方法で既存のディスクに追加されたスペースを使用します)。代わりに、既存のパーティションを拡張することもできます...

レイヤーを見ていきましょう:

  1. ディスク自体:あなたはすでにそれをしました。
  2. パーティション:パーティションを拡張するには、gpartedやプレーンなfdiskなどのグラフィカルツールを使用できます。

    fdisk /dev/sda
    

    既存のパーティションとそのコンテナーを削除し、開始セクターをメモします。

    p
    

    (これにより、パーティションテーブルが出力され、後で再度必要になる情報が提供されます)

    d
    5
    d
    2
    

    これはデータを削除せず、マーカーを削除するだけです(いずれの場合も、fdiskに書き込むように指示しない限り、ディスク上で何も変更されません)。新しい拡張パーティションを作成します。

    n
    e
    

    デフォルトのパーティション番号を受け入れます。最初のセクターについては、fdiskが以前にsda2に使用したものと同じ開始セクターを使用していることを確認してください(この場合は1001470)。最後のセクターの場合、fdiskは自動的に可能な最大値を選択します(必要なすべてのディスク領域を使用します)。内部に新しい論理パーティションを作成します。

    n
    l
    

    ここでも、開始セクター(この場合は1001472)を確認し、すべてのディスク領域を使用します。

    w
    

    変更をディスクに書き込みます。使用中にパーティションを変更したため、この時点で再起動する必要があります。

  3. LVM:新しいディスクスペースについてLVサブシステムに通知する必要があります。これを行うには、最初にパーティションを占める物理ボリュームを拡張します。

    pvresize /dev/sda5
    

    次に、論理ボリューム

    lvresize -r -l 100%PVS /dev/mapper/webserver--vg-root
    
  4. ファイルシステム:これは簡単です。上記のlvresize-rオプションは、fsadmというツールを使用して処理しました。

2
Stephen Kitt

重要な注意:パーティションを台無しにする数時間前にVMのスナップショットを作成することをお勧めします。変更が行われるとすぐにVMWareのスナップショットが失敗することがよくあります。 実行した後。

これを行う最も簡単な方法は、新しいディスクと新しいプライマリパーティションを作成し、それをボリュームグループに追加することです。

Fdiskで新しいパーティションを作成する必要があります。

次に、新しいディスクに新しいパーティションを作成します(または、古いディスクのパーティション1ではなく/ dev/sdaとパーティション3-/dev/sda)

Sudo fdisk /dev/sdb
n         -- new 
p         -- primary
(accept all defaults with ENTER)

パーティションのタイプを変更します。

t
1
8E         -- Linux LVM

それを書くために:

w        
q

(私は/dev/sdb1はこの時点で作成されました。その他の場合は、以下のvgextendに置き換えてください)

システムによっては、この時点で再起動するように求められる場合があります。再起動するか、次を実行します。

partprobe

コマンドがない場合は、次のコマンドでインストールします。

Sudo apt-get install parted

ボリュームグループ(VG名)の内容を確認します。

vgdisplay

これからは、webserver--vgだと思います

パーティションをボリュームグループに追加します。

vgextend webserver--vg /dev/sdb1

次に、を使用してサイズを変更できます(リアルタイム、リファレンスのチュートリアルのようにlvextend +サイズ変更を行うよりも優れています)

lvextend -r -l+100%FREE /dev/vg/webserver--vg-root

追伸これは、パーティションを削除せずに、@ Stephen Kittへの代替ルートです。これは、ディスクを拡張するのに十分な柔軟性があり、手順はそれほど複雑ではありません。欠点は、時間の経過とともに、ファイルシステムの拡張時にファイルシステムの管理がより複雑になることです。現状では、この手順は多くの場合、物理マシンを対象としています。 2番目のディスクでLVMパーティションを拡大します。

参照:

Linuxシステムを再起動せずにパーティションテーブルを再読み取り
LVM(論理ボリューム管理)を管理および使用する方法

関連する質問:

LVMルートの成長

1
Rui F Ribeiro

ディスクがGPTを使用している場合、partedはこれを解決するための優れた方法です。

例:

Sudo parted
(parted) select /dev/sda
Using /dev/sda
(parted) mkpart
Partition type?
primary File system type? [ext2]?
Start? 1
End? 10000
(parted) quit
cro@mac-mini-Ubuntu $
1
Cro