无法调整虚拟机磁盘大小,第二个磁盘分区首先被阻止?

无法调整虚拟机磁盘大小,第二个磁盘分区首先被阻止?

我面临以下问题:

Filesystem                                                     Size  Used Avail Use% Mounted on
/dev/sda1                                                       28G   26G  240M 100% /

因此,为了扩展此磁盘,我执行以下操作:

$ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 50.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  30.1GB  30.1GB  primary   ext4            boot
 2      30.1GB  40.0GB  9934MB  extended
 5      30.1GB  34.4GB  4293MB  logical   linux-swap(v1)

(parted) resizepart                                                       
Partition number? 1                                                       
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? Yes                                                               
End?  [30.1GB]? 40GB                                                      
Error: Can't have overlapping partitions.

我很惊讶地发现 2 号和 5 号,而且 2 号似乎达到了 40GB,而 5 号从同一点开始但只达到了 34.4GB。

肯定有人在我之前尝试过这个,但也失败了。

同样奇怪:/dev/sda2存在,但未显示在输出中df -h

我不知道该怎么做。我需要以某种方式合并 sda1 和 sda2 吗?我该怎么做?交换分区怎么办?我需要将其更改为从 sda2 末尾开始吗?我该怎么做?

任何帮助都将不胜感激。我只想让这个系统变得简单有序,易于管理。

答案1

/dev/sda2是一个延长分区。这意味着它是一个大分区,其中可以放置多个“逻辑”分区 - 在这种情况下,/dev/sda2是一个扩展分区,它在第一个分区之后填充磁盘的其余部分/dev/sda1,并且在/dev/sda2交换分区中以 的形式存在/dev/sda5

要扩展您的,/dev/sda1您需要先执行以下操作:

  1. 禁用交换分区。 sudo swapoff /dev/sda5
  2. 使用gparted,收缩,/dev/sda2使其包含仅有的 /dev/sda5且无可用空间。
  3. 使用gparted,将/dev/sda2/dev/sda5一起移动到磁盘末尾。
  4. /dev/sda1在完成前面的任务后调整(扩大)您的规模。
  5. 重新启用您的交换分区。 sudo swapon /dev/sda5

或者,你可以执行以下操作,这将更符合现代 Ubuntu 的做法(即使用交换文件而不是交换分区):

  1. 禁用交换分区。 sudo swapoff /dev/sda5

  2. 删除分区 5 和分区 2 通过parted

  3. 扩大您/dev/sda1和它的文件系统。

  4. 在单个分区内,使用交换文件而不是交换分区。

    sudo fallocate -l 4GiB /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    
  5. 创建交换文件后,将其添加到/etc/fstab行末尾,以便在启动时自动启用交换文件:

    /swapfile    swap    swap    sw    0    0
    

答案2

您可以使用这两个命令

sudo growpart /dev/sda 
sudo resize2fs /dev/sda

相关内容