扩展 Linux 分区大小而不丢失任何数据/技术

扩展 Linux 分区大小而不丢失任何数据/技术

我为我的OVH云服务器购买了一个200G的额外磁盘,因为我的初始磁盘已经满了。

现在,我的附加磁盘几乎已满(如下所示)。所以我又在其中添加了 200 G。如您所见,sdb 的大小现在是 400G。

那么,如何在不丢失其中的当前数据的情况下在 sdb1(编辑:FS ext4)linux 分区中添加 200Gb?

当我跑步时:

lsblk

我得到:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   200G  0 disk 
└─sda1   8:1    0   200G  0 part /
sdb      8:16   0   400G  0 disk 
└─sdb1   8:17   0 199.5G  0 part /mnt

答案1

删除或创建分区不会删除磁盘上的数据或文件系统。它只会更新分区所在的 MBR 或 GPT 信息及其大小。

此外,如果文件系统发现自己所在的设备比其超级块中存储的大小更大,那么它就会像小设备一样工作。

基于这些知识,您可以推断出扩展过程。它如下:

  1. 在正在运行的系统上,运行fdisk并仔细观察分区的起始位置 ( p)。然后将其删除 ( d),并n在其位置上创建 ( ) 更大的分区。现代 fdisk 可能会询问是否要擦除签名,如果会,则说“否”(这很重要)!特别注意其起始位置,它必须从完全相同的扇区开始,但可以具有更大的大小。退出 fdisk 并写入更改 ( w)。

文件系统可以保持挂载状态。这样不会中断对数据的访问。事实上,内核将拒绝重新加载分区表,因为旧分区正在使用中,它将使用旧分区映射。要在内核中更新分区映射,您只需重新启动,或者在服务中断不可行的情况下使用kpartx或程序。partprobe

当然,您可以预先卸载文件系统,并在重新创建分区后重新挂载,这样内核就不会被阻塞,并且在退出 fdisk 后分区映射就会立即更新。

  1. 调整文件系统大小。Ext4 可以在线调整大小(只需resize2fs /dev/sdb1,它将检测已安装的文件系统并运行在线调整大小)。或者,如果您愿意,您可以在卸载文件系统时再次执行此操作。

当然,这仍然是一个危险的过程。请做好备份。

答案2

我会实施 LVM。尽管这确实会暂时破坏数据。

  1. 备份该卷。
  2. 删除分区 sdb1
  3. vgcreate vg /dev/sdb
  4. lvcreate --name lv vg
  5. 创建并挂载文件系统/dev/vg/lv
  6. 将数据恢复至已安装的卷。

您获得的是 LVM 功能,包括无需分区即可增加卷的能力。 pvextend /dev/sdb 然后lvextend

相关内容