我为我的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 信息及其大小。
此外,如果文件系统发现自己所在的设备比其超级块中存储的大小更大,那么它就会像小设备一样工作。
基于这些知识,您可以推断出扩展过程。它如下:
- 在正在运行的系统上,运行
fdisk
并仔细观察分区的起始位置 (p
)。然后将其删除 (d
),并n
在其位置上创建 ( ) 更大的分区。现代 fdisk 可能会询问是否要擦除签名,如果会,则说“否”(这很重要)!特别注意其起始位置,它必须从完全相同的扇区开始,但可以具有更大的大小。退出 fdisk 并写入更改 (w
)。
文件系统可以保持挂载状态。这样不会中断对数据的访问。事实上,内核将拒绝重新加载分区表,因为旧分区正在使用中,它将使用旧分区映射。要在内核中更新分区映射,您只需重新启动,或者在服务中断不可行的情况下使用kpartx
或程序。partprobe
当然,您可以预先卸载文件系统,并在重新创建分区后重新挂载,这样内核就不会被阻塞,并且在退出 fdisk 后分区映射就会立即更新。
- 调整文件系统大小。Ext4 可以在线调整大小(只需
resize2fs /dev/sdb1
,它将检测已安装的文件系统并运行在线调整大小)。或者,如果您愿意,您可以在卸载文件系统时再次执行此操作。
当然,这仍然是一个危险的过程。请做好备份。
答案2
我会实施 LVM。尽管这确实会暂时破坏数据。
- 备份该卷。
- 删除分区 sdb1
vgcreate vg /dev/sdb
lvcreate --name lv vg
- 创建并挂载文件系统
/dev/vg/lv
- 将数据恢复至已安装的卷。
您获得的是 LVM 功能,包括无需分区即可增加卷的能力。 pvextend /dev/sdb
然后lvextend
。