web-dev-qa-db-ja.com

仮想マシンのディスクのサイズが増加したが、gdiskが新しいスペースを使用したくない

私はVMと仮想ディスクを持っています(/dev/sdb)10Gサイズ

管理者は仮想ディスクのサイズを60Gに増やしました。

マシンを再起動したところ、ディスクが大きいことがわかりました。

root@DMZMHLX3:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sdb      8:16   0   60G  0 disk 
└─sdb1   8:17   0   10G  0 part /app
...

次に、別のパーティションを追加します。

gdiskは、ディスクのサイズが60Gであるが、最後の使用可能なセクターは古い10Gディスクイメージサイズに対応するセクターであることを教えてくれます。

root@DMZMHLX3:~# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 125829120 sectors, 60.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FCE659D1-3690-4C3C-93EC-79B51EE8556D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        20969471   10.0 GiB    8300  

最後に使用可能なセクターは、20971486ではなく125829120のようなものでなければなりません。

したがって、ディスクイメージのサイズが増加し、VMに変更が表示されますが、新しく利用可能な領域の使用方法がわかりません。

fdiskは私を示しています:

root@DMZMHLX3:~# fdisk -l /dev/sdb
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
Disk /dev/sdb: 60 GiB, 64424509440 bytes, 125829120 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: gpt
Disk identifier: FCE659D1-3690-4C3C-93EC-79B51EE8556D

Device     Start      End  Sectors Size Type
/dev/sdb1   2048 20969471 20967424  10G Linux filesystem

それは不一致を認識します:

GPT PMBRサイズの不一致(20971519!= 125829119)は、w(rite)によって修正されます。しかし、fdiskを書き込もうとすると失敗します。

Command (m for help): w
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument
root@xxx:~# 

この問題を解決するにはどうすればよいですか?

最終的な目標は、既存のパーティションのサイズを増やすことですが、新しいパーティションを追加するだけでも、すでに満足しています。

2
gelonida

無効な引数でfdiskのサイズ変更が失敗します 投稿によると、 parted を使用しているようです(例:Sudo parted -l)そして、パーティションテーブルがディスク全体をカバーしていないなどの問題を "fix"させます。

その修正をそのツールに適用して問題を解決したら、Sudo fdisk /dev/sdb1コマンド、そして明らかにSudo resize2fs /dev/sdb1その後、変更を適用します。

重要:ディスクパーティションを変更する前に、システム全体のバックアップを作成することを忘れないでください。

私はこれをかなり簡単に解決することができました。 partedをインストールし、実行したときにパーティションテーブルがディスク全体をカバーしていないことを通知したため(duh)、Fix/Cancelに対して、Fixで応答しました。

どうやら、私はSudo fdisk /dev/vdaですが、後で実行する必要がありましたSudo resize2fs /dev/vda3変更を適用します。

ソース

さらに、 パーティションfdiskのサイズ変更が無効な引数で失敗します 投稿に関する他のユーザーからのアドバイスがあり、回答やコメントの形式で役立ちます。


サポートリソース

2
Pimp Juice IT

LinuxのVMwareディスクのパーティションを拡張する の手順は次のとおりです。

  • Partedを使用してGPTテーブルを修復します:Sudo parted -l
  • これらのディスクにアクセスし、ディスクをアンマウントするサービスをすべて停止します。次に例を示します。

    Sudo systemctl stop jenkins.service
    Sudo systemctl stop Apache2.service
    Sudo umount /dev/sdb1
    

    この手順は、以下で説明するように、GPartedディスクから起動することで回避できます。

  • Fdiskからパーティションを拡張します:Sudo fdisk /dev/sdb


VM内からディスクを拡大するには、ディスクを使用している可能性があるすべてのサービスを停止する必要があるため、VM GParted

記事 GPartedを使用してLinuxネイティブパーティションのディスクサイズを増やす は、手順全体を詳細に説明しています。

2
harrymc

その理由は、GPTにはディスクの最後に配置されたパーティションテーブルのバックアップコピーがあるため、ディスクに「新しい最後」がある場合でも、バックアップは自動的にディスクに移動せず、使用可能なブロックを古いものに制限します"範囲"。

GPT(x、次にz in gdisk)を「ザップ」(ワイプ)して、同じパーティションエントリで新しいGPTを作成できます(次のように入力します)同じ開始およびオプションで同じ終了)。

UEFIブートを実行している場合は、保持する必要のあるブートコードがないため、保護MBRをザップしても問題ありません。

編集:実際には、単にxしてからegdiskに入れることができるようです。

0
Tom Yan