增加安装了Ubuntu的分区大小?


60

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


您可以看到它们是如何raspi-config在Raspberry Pi中实现的,扩展根文件系统几乎是您每次设置新的Raspberry Pi时都要做的事情。github.com/RPi-Distro/raspi-config/blob/…–
sshow

Answers:


16

你快到了。
不能调整大小,而Ubuntu的运行使用的GParted分区。
您将需要将GParted ISO的CD光盘连接到VM机器,然后重新引导机器,以便将GParted而不是Ubuntu加载(我认为您可以在机器启动后立即按F12从虚拟CD引导)。
引导到GParted后,由于Ubuntu当前未运行,因此将启用移动/调整大小选项。


139

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

这是一个简单场景的步骤列表,在该场景中,您有两个分区,/dev/sda1是操作系统从中引导并/dev/sdb2交换的ext4分区。在本练习中,我们要删除交换分区,并将其扩展/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的分区的大小,而无需从外部驱动器启动。


@EliahKagan:请看看我链接到的答案(来自Gilles)。这个想法是有可能用来fdisk扩大分区,而OS继续使用较小的文件系统。然后。重启后,内核重新读取更新的分区表后,我们可以调整文件系统的大小,因为它现在位于较大的分区中。
谢尔盖

1
@Isaac:是的,我们仍然必须重新引导以使内核重新读取分区表。但是,在许多情况下快速重新启动比从外部介质启动(要考虑远程机器,无头机器,VPS等)要小得多。–
Sergey

2
有两个快速注意事项:1.您可以df在此之后用来显示“结果”空间(确认它有效),并且2.记得重新创建一些交换空间!
克里斯汀·隆多

1
非常感谢。Ubuntu从未使用过我给VirtualBox虚拟磁盘提供的空间。现在我知道为什么了。非常感谢!
penderi

1
@Sid:非常重要的是起动缸必须完全相同。如果可用空间在分区之后但紧随分区之后,则需要使用其他方法(这需要从其他驱动器启动)
Sergey

21

在vmWare ESXi中扩展卷后(关闭vm,备份/导出vm,删除所有快照,然后增加磁盘大小数,在执行下一步之前再次拍摄vm的快照,以便可以恢复错误/错误)。

以下示例是在已经使用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
    
  14. 在下一步之前重新启动系统(否则您可能会得到Device /dev/sda3 not found (or ignored by filtering)

     # shutdown now -r
    
  15. 初始化新卷

     # pvcreate /dev/sda3
       Physical volume "/dev/sda3" successfully created
    
  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  
       ...
    
  17. 扩展音量组

     # vgextend linuxetc1-vg /dev/sda3
       Volume group "linuxetc1-vg" successfully extended
    
  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
    
  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
    
  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.
    
  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
    

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


哇。这非常有帮助。希望我能投票一次以上。谢谢!
Mario Tacke

1
在ESXi下运行的18.10上完美运行。谢谢!
John Vinopal

绝对很棒,这正是我作为linux noob所需要的。。
bigbadmouse

很棒的向导!随后,在以Proxmox VM运行的Ubuntu上扩展了存储。
tokenizer_fsj

太棒了!这次真是万分感谢。这适用于在ESXi上运行的18.04。
时间

0

谢尔盖的回答非常好。但是,如果您的空闲空间不是直接在下一个设备中,则需要删除其他设备。例如:

Device     Boot    Start       End  Sectors Size Id Type
/dev/sda1  *        2048  33556477 33554430  16G 83 Linux
/dev/sda2       33556478  41940991  8384514   4G  5 Extended
/dev/sda3       41940992 125829119 83888128  40G 83 Linux
/dev/sda5       33556480  41940991  8384512   4G 82 Linux swap / Solaris

在上述情况下,如果要合并/dev/sda3使用/dev/sda1,你需要删除/dev/sda1/dev/sda2以及/dev/sda3(与d指令),并重新添加/dev/sda2和更新其类型(带nt命令)。


0

我使用此处描述的方法成功地扩展了我的主要ext4分区。

根据我的个人经验,请注意以下几点:

  • 链接示例用于缩小分区,因此顺序为先resize2fs,然后是fdisk。当扩大分区时(以我的情况为例),顺序应为fdisk,重新启动,然后再调整大小2fs。另外,使用fdisk时,应删除主分区以及扩展分区,然后重新定义。
  • 我从另一个驱动器引导Ubuntu,然后在该驱动器上工作,该驱动器实际上是旧驱动器的镜像(使用dd)。使用GParted使其可启动
  • 当前版本的resize2fs(我正在使用Ubuntu 12.04LTS)支持ext4-无需执行更改ext2的链接中所述的操作。

1
虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
Braiam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.