我最近安装了 Ubuntu 20.04 服务器*,一段时间后由于“设备上没有剩余空间”而遇到了麻烦。直到那时我才意识到 Ubuntu 安装并未完全使用可用磁盘空间:
\n$ lsblk\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\n[...]\nnvme0n1 259:0 0 931.5G 0 disk \n\xe2\x94\x9c\xe2\x94\x80nvme0n1p1 259:1 0 1.1G 0 part /boot/efi\n\xe2\x94\x9c\xe2\x94\x80nvme0n1p2 259:2 0 1.5G 0 part /boot\n\xe2\x94\x94\xe2\x94\x80nvme0n1p3 259:3 0 929G 0 part \n \xe2\x94\x94\xe2\x94\x80ubuntu--vg-ubuntu--lv 253:0 0 100G 0 lvm /\nRun Code Online (Sandbox Code Playgroud)\n据我了解输出,分区nvme0n1p3大小为 929 GB,但 Ubuntu 仅使用其中的 100 GB。我不知道为什么会发生这种情况,因为我有一个较旧的 Ubuntu 20.04 Server 安装,看起来正如我所期望的:
$ lsblk\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\n[...]\nnvme0n1 259:0 0 953.9G 0 disk\n\xe2\x94\x9c\xe2\x94\x80nvme0n1p1 259:1 0 512M 0 part /boot/efi\n\xe2\x94\x9c\xe2\x94\x80nvme0n1p2 259:2 0 1G 0 part /boot\n\xe2\x94\x94\xe2\x94\x80nvme0n1p3 259:3 0 952.4G 0 part \n \xe2\x94\x94\xe2\x94\x80ubuntu--vg-ubuntu--lv 253:0 0 952.4G 0 lvm /\nRun Code Online (Sandbox Code Playgroud)\n\n$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 929G \nresize2fs 1.45.5 (07-Jan-2020)\nThe containing partition (or device) is only 26214400 (4k) blocks.\nYou requested a new size of 243531776 blocks.\nRun Code Online (Sandbox Code Playgroud)\n所以它告诉我包含分区的大小只有 100 GB,但lsblk显然告诉我一些不同的东西。
如何让 Ubuntu 使用所有可用的 929 GB?
\n*尽管我确信我告诉安装程序使用所有可用磁盘空间,但 Ubuntu 22.04.1 LTS 服务器仍然会发生同样的情况。
\nnot*_*vvy 22
由于 Ubuntu 使用 LVM 卷,因此需要先更改卷的大小,然后才能resize2fs增加底层文件系统的大小。
lvextend这可以使用如下方式完成:
$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv\n Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <928.96 GiB (237813 extents).\n Logical volume ubuntu-vg/ubuntu-lv successfully resized.\nRun Code Online (Sandbox Code Playgroud)\n该-l +100%FREE选项指示lvextend将包含卷组的所有可用空间添加到逻辑卷。
现在我们可以resize2fs修改文件系统,使其使用所有可用空间:
~$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv\nresize2fs 1.45.5 (07-Jan-2020)\nFilesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required\nold_desc_blocks = 13, new_desc_blocks = 117\nThe filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 243520512 (4k) blocks long.\nRun Code Online (Sandbox Code Playgroud)\n现在确实如此:
\n$ lsblk\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\n[...]\nnvme0n1 259:0 0 931.5G 0 disk \n\xe2\x94\x9c\xe2\x94\x80nvme0n1p1 259:1 0 1.1G 0 part /boot/efi\n\xe2\x94\x9c\xe2\x94\x80nvme0n1p2 259:2 0 1.5G 0 part /boot\n\xe2\x94\x94\xe2\x94\x80nvme0n1p3 259:3 0 929G 0 part \n \xe2\x94\x94\xe2\x94\x80ubuntu--vg-ubuntu--lv 253:0 0 929G 0 lvm /\nRun Code Online (Sandbox Code Playgroud)\n我在如何调整 Ubuntu 的根 LVM 分区大小中找到了解决方案。我推荐这篇文章以获取更详细的背景信息。
\n您还可以一步完成扩展/调整大小:
\n$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv\n Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <928.96 GiB (237813 extents).\n Logical volume ubuntu-vg/ubuntu-lv successfully resized.\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
15110 次 |
| 最近记录: |