Ubuntu Server 20.04.1 LTS,在安装过程中并未分配全部磁盘空间?

在安装Ubuntu Server 20.04.1 LTS时,我选择将整个磁盘作为分区(这是推荐给初学者的默认分区方式,因为我不需要其他分区)。
fdisk -l的输出:
Device           Start        End    Sectors   Size Type
/dev/nvme0n1p1    2048    1050623    1048576   512M EFI System
/dev/nvme0n1p2 1050624    3147775    2097152     1G Linux filesystem
/dev/nvme0n1p3 3147776 2000406527 1997258752 952.4G Linux filesystem

但是当我用df -h命令检查时,我最大的分区只有大约200GB。其余大约750GB的空间去哪了?
Filesystem                         Size  Used Avail Use% Mounted on
udev                                32G     0   32G   0% /dev
tmpfs                              6.3G  1.7M  6.3G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  196G   12G  175G   7% /
tmpfs                               32G     0   32G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                               32G     0   32G   0% /sys/fs/cgroup
/dev/nvme0n1p2                     976M  104M  805M  12% /boot
/dev/nvme0n1p1                     511M  7.8M  504M   2% /boot/efi
/dev/loop1                          56M   56M     0 100% /snap/core18/1885
/dev/loop2                          71M   71M     0 100% /snap/lxd/16922
/dev/loop0                          55M   55M     0 100% /snap/core18/1880
/dev/loop3                          30M   30M     0 100% /snap/snapd/8542
/dev/loop4                          30M   30M     0 100% /snap/snapd/8790
/dev/loop5                          72M   72M     0 100% /snap/lxd/16099
overlay                            196G   12G  175G   7% /var/lib/docker/overlay2/33a73507dae561e19ce713e1a10bd44f68b6d231a7d27d7db5c2ae971dae834a/merged
tmpfs                              6.3G     0  6.3G   0% /run/user/1000

如所要求,以下是lsblk的输出结果:
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0    55M  1 loop /snap/core18/1880
loop1                       7:1    0  55.3M  1 loop /snap/core18/1885
loop2                       7:2    0  70.6M  1 loop /snap/lxd/16922
loop3                       7:3    0  29.9M  1 loop /snap/snapd/8542
loop4                       7:4    0  29.9M  1 loop /snap/snapd/8790
loop5                       7:5    0  71.3M  1 loop /snap/lxd/16099
nvme0n1                   259:0    0 953.9G  0 disk 
├─nvme0n1p1               259:1    0   512M  0 part /boot/efi
├─nvme0n1p2               259:2    0     1G  0 part /boot
└─nvme0n1p3               259:3    0 952.4G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   200G  0 lvm  /

任何帮助都会受到欢迎,提前感谢!

1/dev/nvmen1p3 完全没有显示出来,这真的很奇怪。你能运行 lsblkdf -h / 吗? - user1119410
df -h只提供了上面的/dev/mapper/ubuntu--vg-ubuntu--lv部分。 - user1119603
我猜测一下:安装程序设置了留出磁盘空间以便进行快照。 - sudodus
1请参阅此处的讨论:LVM容器的大小是如何确定的? - sudodus
7个回答

我也使用了默认的Ubuntu 20.04安装ISO,并选择了lvm选项。我遇到了与操作系统磁盘未占用我分配的空间相同的问题。Eddie的建议和提供的链接解决了我的问题。总结如下:
root@util:~# vgdisplay
<snip>
root@util:~# lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
<snip>
root@util:~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
<snip>

之前

root@util:~# df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               3.9G     0  3.9G   0% /dev
tmpfs                              795M  1.1M  793M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   98G  6.5G   86G   8% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/xvda2                         976M  105M  805M  12% /boot
/dev/loop2                          56M   56M     0 100% /snap/core18/1944
/dev/loop0                          32M   32M     0 100% /snap/snapd/10707
/dev/loop1                         132M  132M     0 100% /snap/docker/796
/dev/loop3                          70M   70M     0 100% /snap/lxd/19188
/dev/loop4                          33M   33M     0 100% /snap/snapd/11588
/dev/loop5                          56M   56M     0 100% /snap/core18/1997
/dev/loop6                          71M   71M     0 100% /snap/lxd/19647
tmpfs                              795M     0  795M   0% /run/user/1000

之后

root@util:~# df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               3.9G     0  3.9G   0% /dev
tmpfs                              795M  1.1M  793M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  196G  6.5G  180G   4% /
tmpfs                              3.9G     0  3.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/xvda2                         976M  105M  805M  12% /boot
/dev/loop2                          56M   56M     0 100% /snap/core18/1944
/dev/loop0                          32M   32M     0 100% /snap/snapd/10707
/dev/loop1                         132M  132M     0 100% /snap/docker/796
/dev/loop3                          70M   70M     0 100% /snap/lxd/19188
/dev/loop4                          33M   33M     0 100% /snap/snapd/11588
/dev/loop5                          56M   56M     0 100% /snap/core18/1997
/dev/loop6                          71M   71M     0 100% /snap/lxd/19647
tmpfs                              795M     0  795M   0% /run/user/1000

2是的,这个方法有效,仅使用lvextend并没有产生任何效果。 - Madeo
2哇,这个解决方案太棒了。我真的不知道你可以用LVM进行如此快速的实时操作。 - Manchineel
1这对我来说很有效,只花了几秒钟就将多个生产Elasticsearch节点的容量从200 GB提升到约1024 GB,在大规模导入期间完成。 - Moonchild
1非常感谢。绝对有效! - newbieee
1仅用了30秒,我就成功将分区扩展到了我的4TB硬盘的全部容量。感谢! - Mehdi S.
7这在Ubuntu Server 22.04上有效。谢谢!我不知道为什么它没有使用“完整磁盘”,当我明确选择了“使用完整磁盘”。 - phocks
传奇。让我免去了重新开始复杂安装的麻烦。 - Lewis

我也遇到过这个问题。下面的链接提供了如何扩展LVM分区以使用所有可用空间的说明。

https://www.linuxtechi.com/extend-lvm-partitions/

以上链接中没有提到的是,使用此命令使用所有剩余空间而不是指定要添加的特定数量:

lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

安装过程有误导性,因为我明确选择了使用所有可用空间的选项,但并没有充分利用所有可用空间。

你的lvextend命令是我在新的Ubuntu服务器安装中所需要的,以便使用整个磁盘。 - M. K.

你的根文件系统位于一个LVM逻辑卷(LV) /dev/mapper/ubuntu--vg-ubuntu--lv(196 GB)上。

提供该LV的LVM卷组(VG)可能只有一个物理卷(PV),很可能是SSD上的第三个分区(/dev/nvme0n1p3,容量为952.4G)。

这个VG可能仍然有很多可用的磁盘空间,你可以用它来扩大LV的大小或者创建另一个LV。这可能是Ubuntu安装程序的一种磁盘空间分配策略,不直接将所有可用磁盘空间用于根文件系统,给你一些余地来决定如何处理剩余的磁盘空间。

你没有在"df"命令中使用"-T"参数,所以它没有告诉你文件系统的类型;但是大多数现代Linux文件系统都有工具来调整它们的大小。ext4肯定支持这个功能。

这里有一个关于LVM工具的教程: https://www.digitalocean.com/community/tutorials/how-to-use-lvm-to-manage-storage-devices-on-ubuntu-18-04

如果在安装过程中没有明确选择使用LVM,这可能也是选择加密的结果;通常情况下,加密是通过LVM完成的。
希望对你有所帮助。

2我重新检查了安装程序,确实“使用LVM”已经被预选中,我可能会被误导。然而,这仍然是Canonical的一个奇怪策略,以这种方式进行并将其称为“使用完整分区”,并将其标记为初学者推荐。 - user1119603

只需在终端中运行以下命令即可:
sudo resize2fs -p /dev/mapper/ubuntu--vg-ubuntu--lv`

那对我来说就行了。然后用以下方式检查一下:
df -h

必须先运行

lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

然后

sudo resize2fs -p /dev/mapper/ubuntu--vg-ubuntu--lv

第一个命令扩展逻辑卷(lv),第二个命令调整大小。

然后检查 df -h



所以我成功地调整了驱动器的大小,而无需重新启动...

在部署了具有45GB硬盘的80GB虚拟机模板之后,我需要做的是...

使用parted将驱动器调整到最大容量。

在parted中键入以下命令:
list (显示正在使用的分区)
resizepart 3 80G (数字3是我的分区号 对您来说可能不同)

然后退出parted,并以root身份键入以下命令(如果您不知道如何获取root权限,请执行sudo su)。

pvresize /dev/sda3
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
df -H

这对我来说毫无帮助。我刚刚安装了最新的Debian netinst版本。而且它还要小四倍以上。 - GTodorov
我在Ubuntu 20上进行这个操作,但是步骤应该是一样的。 - Aleksandar Pavić