每天进步一点点:在Amazon AWS的EBS卷上使用GPT分区方案

in cn •  4 years ago 

因为工作关系,需要在Amazon AWS的EBS卷上使用GPT分区方案,最初我想的比较简单,以为直接把MBR转换成GPT就中了。结果在测试机上一试,擦,连系统带数据都搞没了。

image.png
(图源 :pixabay)

接下来就试了几种办法,无一例外的失败,最后想到的方案就是使用两个EBS卷:一个用作系统继续用MBR方案,另外一个做数据盘使用GPT方案。这样比直接使用一个EBS卷更加灵活方便,毕竟不用考虑启动分区等诸多问题。

首先创建个EC2实例,这个按自己的需求来就可以,使用的EBS卷不用很大,能装系统就行,唯一需要注意的就是要记录或者选择一下区域,新的EBS卷要建到同一个区域下。

附加GPT分区方案的EBS卷

接下来创建一个新的EBS卷,注意一下空间和区域:

image.png

创建完之后,我们就会多出来一个可用的EBS卷:

image.png

然后将其挂载到之前建立的EC2实例上:

image.png

之后使用sudo fdisk -l就会发现我们新挂载的EBS卷:

image.png

接下来我使用sudo fdisk /dev/xvdfg指令来创建GPT分区表:

image.png

w写入,看起来一切正常,再使用sudo fdisk -l查看实例上的两个EBS卷:

image.png

再用fdisk创建个新的分区并写入,之后是这个样子:

image.png

如果这时我们尝试将其mount到目录上:

sudo mkdir /home2
sudo mount /dev/xvdf1 /home2

就会出类似如下错误:

mount: /home2: wrong fs type, bad option, bad superblock on /dev/xvdf1, missing codepage or helper program, or other error.

原因是我们有磁盘有分区,但是分区上还没有文件系统呢(相当于Windows的还没格式化)。

创建文件系统 & 自动mount

解决之前的问题很简单,使用sudo mkfs.ext4 /dev/xvdf1创建文件系统后一切正常。

image.png

记录一下文件系统的UUID(如若忘记,可用使用sudo blkid找回。

然后为了避免我们每次都需要手工挂载,我们编辑一下fstab文件实现自动挂载:

sudo vi /etc/fstab

添加如下内容:

UUID=6e3fc6a2-b24c-43d6-befc-0b92a4297bfe /backup ext4 defaults 0 0

这样就一切OK啦。

扩容

在EBS上将空间调整喂100G以后,回到系统中,出现GPT PMBR size mismatch的问题:

image.png

使用w指令写入后,出现如下错误:

fdisk: failed to write disklabel: Invalid argument

使用sudo gdisk /dev/xvdf解决,早知如此,早使用gdisk就好了,哎:

image.png

然后扩容分区空间:

sudo growpart /dev/xvdf 1

提示如下:

CHANGED: partition=1 start=2048 old: size=20969439 end=20971487 new: size=209713119,end=209715167

再扩容文件系统:

sudo resize2fs /dev/xvdf1

再使用df -lh查看文件系统空间占用:

image.png

虽然搞不懂那5G空间哪里去了,不过貌似这样已经很完美了。

相关链接

注:本文首发HIVE平台,欢迎大家到HIVE上关注我,并参与讨论。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!