我有一台 CentOS 7 机器,使用 ext4 安装了两个磁盘 [ /dev/sda 和 /dev/sdb ]。
我需要将 /dev/sdb1 扩展到 2 TB 以上。
我将磁盘从 2 TB 扩展到 2.5 TB(谷歌云)
使用 fdisk 删除并重新创建分区后,重新启动后 resize2fs /dev/sdb1 不会将分区大小调整为 2.5 TB,因为看起来 fdisk 已达到神奇的 2 TB 限制。
有没有办法将 /dev/sdb1 扩展到 3 TB 而不丢失数据?
谢谢
更新
按照 serverfault 用户 @mzhaase 的建议,我尝试了磁盘分区按照以下步骤操作。磁盘使用 fdisk 格式化,总大小为 2T
停止使用 /dev/sdb1 分区的所有服务
卸载设备
创建备份/快照
扩展磁盘至3T
如果实例上尚未安装 gdisk,请安装
gdisk 程序
gdisk /dev/sdb
p #打印并保存 GUID
o #删除所有分区
n #创建新分区
c #标签按 ENTER 或命名(如果有)
x #进入专家模式
g #粘贴 GUID
w #写入更改umount /dev/sdb1 #如果它被 gdisk 重新挂载
e2fsck -f /dev/sdb1 #检查磁盘
resize2fs /dev/sdb1 #调整分区大小
mount -a #检查分区是否按照 fstab 挂载
重新启动#以确保万无一失
答案1
目前有两种主要的分区方案在使用:膜生物反应器和谷氨酰胺磷酸酶。
较旧、已弃用但可能仍最常用的是 MBR。但是,MBR 使用 32 位来寻址存储空间,使用 512 字节块,而 2^32 * 512 字节是 2 TB。因此,您无法将 MBR 分区扩展到 2 TB 以上。您需要使用 GPT 来实现这一点。
我自己从来没有这样做过,但似乎可以将 MBR 转换为 GPT 而不会丢失数据,使用磁盘分区. 请自行承担风险。