私は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:~#
この問題を解決するにはどうすればよいですか?
最終的な目標は、既存のパーティションのサイズを増やすことですが、新しいパーティションを追加するだけでも、すでに満足しています。
無効な引数で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のサイズ変更が無効な引数で失敗します 投稿に関する他のユーザーからのアドバイスがあり、回答やコメントの形式で役立ちます。
LinuxのVMwareディスクのパーティションを拡張する の手順は次のとおりです。
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ネイティブパーティションのディスクサイズを増やす は、手順全体を詳細に説明しています。
その理由は、GPTにはディスクの最後に配置されたパーティションテーブルのバックアップコピーがあるため、ディスクに「新しい最後」がある場合でも、バックアップは自動的にディスクに移動せず、使用可能なブロックを古いものに制限します"範囲"。
GPT(x
、次にz
in gdisk
)を「ザップ」(ワイプ)して、同じパーティションエントリで新しいGPTを作成できます(次のように入力します)同じ開始およびオプションで同じ終了)。
UEFIブートを実行している場合は、保持する必要のあるブートコードがないため、保護MBRをザップしても問題ありません。
編集:実際には、単にx
してからe
をgdisk
に入れることができるようです。