增加安装 Ubuntu 的分区大小?

use*_*447 97 disk

我在驱动器上安装了 Ubuntu。问题是它的磁盘空间不足。这是安装在 vmware 上的。我扩展了虚拟驱动器并启动到 ubuntu。但是当我打开 gparted(sudo gparted) 时,移动/调整大小选项不可用。这是安装 Ubuntu 的分区,但我需要调整它的大小。有任何想法吗?我很习惯使用命令行

Ser*_*gey 206

作为事实上,你CAN 放大,而Ubuntu是运行根文件系统(我最近才知道这个自己在这里) -这听起来不可思议,但它是真实的:)

这是一个简单场景的步骤列表,其中有两个分区,/dev/sda1一个是操作系统从其启动的 ext4 分区,并且/dev/sdb2是交换分区。对于本练习,我们要删除交换分区并扩展/dev/sda1到整个磁盘。

  1. 与往常一样,请确保您有数据备份 - 例如,由于我们将修改分区表,因此如果您输入错误,则有可能丢失所有数据。

  2. sudo fdisk /dev/sda

    • 用于p列出分区。记下启动气缸/dev/sda1
    • 用于d删除交换分区 ( 2),然后再删除/dev/sda1分区。这非常可怕,但实际上是无害的,因为在您将更改写入磁盘之前,数据不会写入磁盘。
    • 使用n创建一个新的主分区。确保它的启动气缸与以前的旧气缸完全相同/dev/sda1。对于结束柱面,同意默认选择,即使分区跨越整个磁盘。
    • 用于a切换新的可引导标志/dev/sda1
    • 查看您的更改,深呼吸并使用w将新分区表写入磁盘。您将收到一条消息,告知内核无法重新读取分区表,因为设备正忙,但这没关系。
  3. 重新启动sudo reboot。当系统启动时,您将拥有一个位于较大区内的较小文件系统

  4. 下一个魔法命令是resize2fs. 运行sudo resize2fs /dev/sda1- 此表单将默认使文件系统占用分区上的所有可用空间。

就是这样,我们刚刚调整了安装 Ubuntu 的分区的大小,而无需从外部驱动器启动。

  • 两个快速说明:1. 您可以使用 `df` 显示此后的“结果”空间(确认它有效),以及 2. 记得重新创建一些交换空间! (4认同)
  • 谢谢你的好帖子。第二步,运行'n'后,提示是否删除签名。我选择保留签名,方法按预期工作。 (3认同)
  • @Isaac:是的,我们仍然需要重新启动才能让内核重新读取分区表。但是,在许多情况下快速重启比从外部介质启动要小得多(想想远程机器、无头机器、VPS 等) (2认同)
  • 非常感谢。Ubuntu 从未使用过我给 VirtualBox 虚拟磁盘的空间。现在我知道为什么了。非常感谢! (2认同)
  • @Sid:启动气缸完全相同非常重要。如果可用空间在分区之后的任何地方,您需要使用另一种方法(这需要从另一个驱动器启动) (2认同)

jtl*_*sey 52

两种方法

1. 在 Ubuntu Server 16.04 到 18.10 中测试

在 VMware ESXi 中扩展卷后(关闭虚拟机,备份/导出虚拟机,删除所有快照,然后增加磁盘大小,在执行后续步骤之前再次拍摄虚拟机快照,以便您可以恢复错误/错误)。

以下示例在已使用 LVM 的系统上扩展根分区上的卷。

  1. ssh进入系统,切换到root并运行cfdisk
    #cfdisk

  2. 在此处输入图片说明

  3. 在此处输入图片说明

  4. 在此处输入图片说明

  5. 在此处输入图片说明

  6. 在此处输入图片说明

  7. 在此处输入图片说明

  8. 在此处输入图片说明

  9. 在此处输入图片说明

  10. 在此处输入图片说明

  11. 在此处输入图片说明

  12. 在此处输入图片说明

  13. 退出 cfdisk 后

     # fdisk -l /dev/sda 
     Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 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: 0xc8b647ff
    
     Device     Boot    Start      End  Sectors  Size Id Type
     /dev/sda1  *        2048   999423   997376  487M 83 Linux
     /dev/sda2        1001470 16775167 15773698  7.5G  5 Extended
     /dev/sda3       16775168 41943039 25167872   12G 8e Linux LVM (***** See new partition /dev/sda3*****)
     /dev/sda5        1001472 16775167 15773696  7.5G 8e Linux LVM
    
    Run Code Online (Sandbox Code Playgroud)
  14. 在下一步之前重新启动系统(否则你可能会得到Device /dev/sda3 not found (or ignored by filtering)

     # shutdown now -r
    
    Run Code Online (Sandbox Code Playgroud)
  15. 初始化新卷

     # pvcreate /dev/sda3
       Physical volume "/dev/sda3" successfully created
    
    Run Code Online (Sandbox Code Playgroud)
  16. 获取要扩展的卷的名称

     # vgdisplay
       --- Volume group ---
       VG Name               linuxetc1-vg (***** this is vg i'm extending*****)
       System ID             
       Format                lvm2
       Metadata Areas        1
       Metadata Sequence No  3
       VG Access             read/write
       VG Status             resizable
       MAX LV                0
       Cur LV                2
       Open LV               2
       Max PV                0
       Cur PV                1
       Act PV                1
       VG Size               7.52 GiB
       PE Size               4.00 MiB
       Total PE              1925
       Alloc PE / Size       1925 / 7.52 GiB
       Free  PE / Size       0 / 0  
       ...
    
    Run Code Online (Sandbox Code Playgroud)
  17. 扩展卷组

     # vgextend linuxetc1-vg /dev/sda3
       Volume group "linuxetc1-vg" successfully extended
    
    Run Code Online (Sandbox Code Playgroud)
  18. 扩展根

     # lvextend -l+100%FREE /dev/linuxetc1-vg/root
       Size of logical volume linuxetc1-vg/root changed from 6.52 GiB (1669 extents) to 18.52 GiB (4741 extents).
       Logical volume root successfully resized.
    
    
     Or if you only wanted to give 5 more GB to root
     # lvextend -L +5g /dev/linuxetc1-vg/root
    
    Run Code Online (Sandbox Code Playgroud)
  19. 获取下一步的文件系统名称

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root  6.3G  2.5G  3.5G  42% /            (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    
    Run Code Online (Sandbox Code Playgroud)
  20. 扩展文件系统

     # resize2fs /dev/mapper/linuxetc1--vg-root
     resize2fs 1.42.13 (17-May-2015)
     Filesystem at /dev/mapper/linuxetc1--vg-root is mounted on /; on-line resizing required
     old_desc_blocks = 1, new_desc_blocks = 2
     The filesystem on /dev/mapper/linuxetc1--vg-root is now 4854784 (4k) blocks long.
    
    Run Code Online (Sandbox Code Playgroud)
  21. 查看增加的尺寸

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root   19G  2.5G   15G  15% /         (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    
    Run Code Online (Sandbox Code Playgroud)

2. 在 Ubuntu Server 18.04.3 LTS 中测试的更快方法

这种方法比第一种方法快一点。这是由于cfdisk菜单中名为“调整大小”的新选项可以节省一些步骤。

在 VMware ESXi 中扩展卷后(关闭虚拟机,备份/导出虚拟机,删除所有快照,然后增加磁盘大小,在执行后续步骤之前再次拍摄虚拟机快照,以便您可以恢复错误/错误)。

以下示例在已使用 LVM 的系统上扩展根分区上的卷。

  1. ssh进入系统,切换到root并运行cfdisk

  2. 选择要扩展的分区并选择“调整大小”。 在此处输入图片说明

  3. 设置“新尺寸”。 在此处输入图片说明

  4. 按 Enter 后,您将看到带有以下注释“Partition [someNumber] resized”的屏幕: 在此处输入图片说明

  5. 接下来,您需要“写入”(保存)您的更改: 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

  6. 退出cfdisk。当您退出时,您可能会看到消息“正在同步磁盘”。 在此处输入图片说明 在此处输入图片说明

  7. 此时我重新启动了系统,但可能没有必要。现在您可以从第 19 步从第一种方法(下面重复)中提取。

  8. (19) 获取下一步的文件系统名称

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root  6.3G  2.5G  3.5G  42% /            (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    
    Run Code Online (Sandbox Code Playgroud)
  9. (20) 扩展文件系统

     # resize2fs /dev/mapper/linuxetc1--vg-root
     resize2fs 1.42.13 (17-May-2015)
     Filesystem at /dev/mapper/linuxetc1--vg-root is mounted on /; on-line resizing required
     old_desc_blocks = 1, new_desc_blocks = 2
     The filesystem on /dev/mapper/linuxetc1--vg-root is now 4854784 (4k) blocks long.
    
    Run Code Online (Sandbox Code Playgroud)
  10. (21) 查看增加的尺寸

     # df -h
     Filesystem                      Size  Used Avail Use% Mounted on
     udev                            477M     0  477M   0% /dev
     tmpfs                           100M  4.6M   95M   5% /run
     /dev/mapper/linuxetc1--vg-root   19G  2.5G   15G  15% /         (***** this line*****)
     tmpfs                           497M     0  497M   0% /dev/shm
     tmpfs                           5.0M     0  5.0M   0% /run/lock
     tmpfs                           497M     0  497M   0% /sys/fs/cgroup
     /dev/sda1                       472M  105M  343M  24% /boot
     tmpfs                           100M     0  100M   0% /run/user/1000
    
    Run Code Online (Sandbox Code Playgroud)

文章:
https : //wiki.ubuntu.com/Lvm
http://www.geoffstratton.com/expand-hard-disk-ubuntu-lvm

  • 在 ESXi 下运行的 18.10 上完美运行。谢谢! (4认同)
  • 大多数更快的方法对我来说都有效,但是,在运行“sudo resize2fs /dev/mapper/ubuntu--”之前,我还必须运行“sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-root” vg-root` [本指南帮助我解决了这个问题](https://computingforgeeks.com/extending-root-filesystem-using-lvm-linux/) (3认同)
  • 很棒的指南!遵循此扩展作为 Proxmox VM 运行的 Ubuntu 上的存储。 (2认同)
  • 极好的!这次真是万分感谢。这适用于在 ESXi 上运行的 18.04。 (2认同)
  • 只有 1 个对我有用,2 个在调整大小时不起作用(Ubuntu 18.04.3 LTS)。 (2认同)
  • “无法调整分区 #5 的大小。”(仅此而已) (2认同)

yos*_*ile 28

你快到了。
不能在 Ubuntu 运行时使用 GParted 调整分区大小。
您需要将 GParted ISO 作为 CD 附加到 VM 机器并重新启动机器,以便加载 GParted 而不是 Ubuntu(我认为您可以在机器启动后立即按 F12 从虚拟 CD 启动)。
一旦你启动到 GParted,移动/调整大小的选项将被启用,因为 Ubuntu 当前没有运行。


小智 13

jtlindsey 的“更快”方法适用于 LVM,但缺少一些步骤。df -h不会显示额外的空间。

  1. 继续执行直至第 9 步。
  2. 运行sudo lsblk以确定您的分区名称(我的是 sda3)。
  3. 跑步sudo pvresize /dev/sda3
  4. 运行sudo lvextend -L +76G /dev/mapper/ubuntu--vg-ubuntu--lv(用您自己的大小和名称替换)
  5. 返回到他的方法并完成剩余的步骤。

来源: https: //askubuntu.com/a/1047512/393368

  • 谢谢。添加这些命令使 jtlindsey 在 Ubuntu 20.04.2 LTS 上“更快”地工作 (3认同)

Spi*_*ail 7

我注意到我的 ubuntu 虚拟机有一个 LVM,它根本没有使用所有分配的空间。因此,要向我的 LVM 添加空间,非常简单:https: //wiki.ubuntu.com/Lvm章节:“调整分区大小”。

例如:了解您是否有 LVM 的快速方法是df -h 查找以下行:

/dev/mapper/ubuntu--vg-ubuntu--lv  689G   20G  639G   3% /
Run Code Online (Sandbox Code Playgroud)

并且...请注意,这实际上并不是经典的“/dev/sda1”类型的安装点。

然后在该分区上运行扩展命令。

sudo lvextend -L +500g /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Run Code Online (Sandbox Code Playgroud)

另一个提醒我检查 LVM 的快速线索是,当我查看 fdisk 分区时,我注意到我有一个大的 /dev/sda3 分区,但该分区并未真正安装在任何地方。(即:当我使用 mount 命令检查时)。