是否可以调整主分区的大小?

是否可以调整主分区的大小?

我的公司正在使用 CentOS 运行云托管。过去,当SSD达到最大容量时,他们会升级它。

据我了解,他们是通过创建主分区并将其安装在 / 上来完成的。所以我们最终在 sda 上有 4 个主分区。

现在我再次将空间从 300GB 升级到 400GB,我需要分配这 100 GB 的额外空间。

添加这 100GB 时我能做的最好的事情是什么?

我收集的一些信息:

分开 /dev/sda > 打印:

Numero  Inicio  Fin     Tamaño  Typo     Sistema de ficheros  Banderas
 1      1049kB  525MB   524MB   primary  xfs                  arranque
 2      525MB   85,9GB  85,4GB  primary                       lvm
 3      85,9GB  129GB   42,9GB  primary                       lvm
 4      129GB   322GB   193GB   primary                       lvm

fdisk /dev/sda > p:

Disk /dev/sda: 429.5 GB, 429496729600 bytes, 838860800 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
Disk label type: dos
Identificador del disco: 0x000a2b1e

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   167772159    83373056   8e  Linux LVM
/dev/sda3       167772160   251658239    41943040   8e  Linux LVM
/dev/sda4       251658240   629145599   188743680   8e  Linux LVM

df -h:

S.ficheros              Tamaño Usados  Disp Uso% Montado en
/dev/mapper/centos-root   298G   290G  8,4G  98% /
devtmpfs                  7,8G      0  7,8G   0% /dev
tmpfs                     7,8G      0  7,8G   0% /dev/shm
tmpfs                     7,8G    12M  7,8G   1% /run
tmpfs                     7,8G      0  7,8G   0% /sys/fs/cgroup
/dev/sda1                 497M   187M  311M  38% /boot
tmpfs                     1,6G      0  1,6G   0% /run/user/0

lsblk:

NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   300G  0 disk 
├─sda1            8:1    0   500M  0 part /boot
├─sda2            8:2    0  79,5G  0 part 
│ ├─centos-swap 253:0    0     2G  0 lvm  [SWAP]
│ └─centos-root 253:1    0 297,5G  0 lvm  /
├─sda3            8:3    0    40G  0 part 
│ └─centos-root 253:1    0 297,5G  0 lvm  /
└─sda4            8:4    0   180G  0 part 
  └─centos-root 253:1    0 297,5G  0 lvm  /
sr0              11:0    1  1024M  0 rom  

答案1

与此问题上看到的评论相反,由于您的分区表是Disk label type: dos,而不是Disk label type: gpt,因此如果不首先删除物理分区以使其充当逻辑分区容器,则不可能添加逻辑分区,因为MBR 中只有 4 个物理分区插槽。在不丢失/损坏现有数据的情况下执行此操作并非易事,因为逻辑分区的布局与物理分区的布局并不完全一致:最好不要。

xfs您可以在正在运行的系统上(至少如果使用:CentOS 的默认系统,或者可能是其他几个文件系统)做以前可以做的事情(例如,在第一个 LVM 分区上,而不是添加新的分区),ext4无需重新启动或停机。

  • 有备份。总有可能出错(打字错误......)。

  • 扩大磁盘分区

    有扩展空间的分区是最后一个(因为它的块至少在这里,也占据磁盘上的最后一个位置)。这是我的答案中最棘手的部分:使用fdisk,注意分区 4 的开头,以及删除4.注意这个操作完成只存在于记忆中现在。重新创建一个“新”主分区 4(如上所述,不要尝试任何逻辑分区),重新使用相同的分区开始:这应该是251658240。让它提供整个剩余大小以使其更大。

    警告:较新fdisk工具可能会提供擦除检测到的分区签名的功能,如果现在询问或写入磁盘时执行此操作:它检测到您当前的 PV/LVM 签名。

    放回隔断类型8e(可能只是装饰性的)。如果一切正常,写入新的分区表并退出fdisk

    更新:需要明确的是,上述操作首先在内存中完成。在同一起始位置删除并重新创建分区 4(在fdisk内存中完成)的总体结果是扩大了分区 4。将其提交fdisk到磁盘时,只有 MBR(即:由 表示的磁盘的第一个扇区)/dev/sda)被重写:存储在扇区 251658240 及之后的数据没有改变。更高级别(GUI...甚至partedresizepart)工具会提供放大选项(parted),但最终结果是相同的。分区 4 从未在任何时候从磁盘中删除(即使错误地从磁盘中删除了它,这仍然不会是致命的,只要它在操作系统抱怨之前在同一位置重新创建)。

  • 更新分区新大小的内核视图

    因为分区正在使用(由设备映射器等),所以fdisk肯定会抱怨它无法让系统重新读取分区表,并且旧分区表仍在使用中。为了避免重新启动,只需使用正确的工具来更新更改的内容:partx。这里很简单,因为只改变了分区的大小。

    # cat /sys/class/block/sda4/size
    188743680
    # partx -u /dev/sda4
    $ cat /sys/class/block/sda4/size
    [bigger value]
    

    验证大小现在已增加并与使用 看到的结果匹配fdisk。否则,可能会出现问题并需要重新启动。

  • 放大PV、LV、文件系统。某些 LVM 选项可能能够通过更少的命令链接这些选项,但以下是所有步骤

    如果没有选项,它将使用所有可用空间。

    # pvresize /dev/sda4
    

    PV 上的额外空间立即在 VG 上可供 LV 使用。

    # lvextend -l +100%FREE /dev/centos/root # or any other choice
    

    然后对于 xfs:

    # xfs_growfs / # remember that xfs may never shrink back
    

    或 ext4:

    # resize2fs /dev/centos/root # and ext4 can't be shrunk back while mounted
    

相关内容