我有一个EC2实例,我创build了一个500GB的EBS卷。 不幸的是,EC2实例显示只有8GB可用。
我只有一个驱动器,这是正确的。
[root@ip-10-244-134-250 ~]# ls -la /dev/x* brw-rw---- 1 root disk 202, 1 Aug 7 08:54 /dev/xvda1
但是,这个驱动器只有8GB
[root@ip-10-244-134-250 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 8.0G 1.3G 6.7G 16% / tmpfs 3.7G 0 3.7G 0% /dev/shm
但是,fdisk和/ proc /分区都显示正确的大小
[root@ip-10-244-134-250 ~]# fdisk -l Disk /dev/xvda1: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 65270 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/xvda1 doesn't contain a valid partition table [root@ip-10-244-134-250 ~]# cat /proc/partitions major minor #blocks name 202 1 524288000 xvda1
任何帮助将不胜感激,谢谢。
如果根文件系统是ext3或ext4,则运行:
sudo resize2fs /dev/xvda1
如果根文件系统是xfs(较less见),则运行:
sudo xfs_growfs /
如果以root身份login,则可以省略“sudo”。
这些命令应在系统运行和文件系统安装时运行。
EBS卷不包含分区表是标准的。 EBS卷通常整体格式化为整个文件系统,无需分区。
这里的答案似乎缺less专门针对正在改变其EBS卷大小的人员的几个步骤。 如果您使用快照创buildEBS或使用某些AMI,则需要扩展磁盘(xvda),扩展分区(xvda1),然后扩展文件系统(/)。
如果我正确读取这个,你的磁盘看起来像这样:
/dev/xvda |__/dev/xvda1__|______________ Free space______________|
它需要看起来像这样:
/dev/xvda |______________________/dev/xvda1______________________|
之后,运行resize2fs
将进入xvda1
新空间,使用fdisk
我们可以通过删除和重新创build块大小来增加块大小,并使分区可以启动。 所有这一切都需要重启。 在大多数情况下,如果使用相同的启动柱面,则不应影响数据。但请注意,重新创build分区时出现的任何错误都将导致丢失所有数据,并且/或者服务器将无法重新启动。 我会build议做这个作为新创build的实例的第一步。 否则拍一下您的EC2 EBS存储/等的快照。
我已经在下面的块中用<<#>>标记了这些步骤,所以不是命令的一部分。 您需要root权限,所以如果您不是root用户,请执行“sudo sh”。
<<1>> Look at the filesystem, it is 6G <<2>> Look at the disk and the partition, the disk is 21.5 GB but the partition is 6 GB (6291456 blocks) <<3>> Start fdisk for that disk (xvda, so not the partition xvda1) <<4>> Switch to sector display. <<5>> Print the partition(s), and remember the start sector (2048 in the example). <<6>> Delete the partition. <<7>> Create a new partition. <<8>> Make it primary. <<9>> First partition. <<10>> Enter the old start sector, do NOT make any typo here!!! (2048 in the example) <<11>> Hit enter to accept the default (this is the remainder of the disk) <<12>> Print the changes and make sure the start sector is ok, if not restart at <<6>> <<13>> Make the partition bootable. do NOT forget this!!! <<14>> Enter your partition number (1 in the example) <<15>> Write the partition info back, this will end the fdisk session. <<16>> Reboot the server, and wait for it to come up (this may take longer than usual). <<17>> Verify the filesystem size. <<18>> If the filesystem is not around 20Gb as expected, you can use this command. # df -h <<1>> Filesystem Size Used Avail Use% Mounted on /dev/xvda1 6.0G 2.0G 3.7G 35% / tmpfs 15G 0 15G 0% /dev/shm # fdisk -l <<2>> Disk /dev/xvda: 21.5 GB, 21474836480 bytes 97 heads, 17 sectors/track, 25435 cylinders Units = cylinders of 1649 * 512 = 844288 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0003b587 Device Boot Start End Blocks Id System /dev/xvda1 * 2 7632 6291456 83 Linux # fdisk /dev/xvda <<3>> WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): u <<4>> Changing display/entry units to sectors Command (m for help): p <<5>> Disk /dev/xvda: 21.5 GB, 21474836480 bytes 97 heads, 17 sectors/track, 25435 cylinders, total 41943040 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 identifier: 0x0003b587 Device Boot Start End Blocks Id System /dev/xvda1 * 2048 12584959 6291456 83 Linux Command (m for help): d <<6>> Selected partition 1 Command (m for help): n <<7>> Command action e extended p primary partition (1-4) p <<8>> Partition number (1-4): 1 <<9>> First sector (17-41943039, default 17): 2048 <<10>> Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <<11>> Using default value 41943039 Command (m for help): p <<12>> Disk /dev/xvda: 21.5 GB, 21474836480 bytes 97 heads, 17 sectors/track, 25435 cylinders, total 41943040 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 identifier: 0x0003b587 Device Boot Start End Blocks Id System /dev/xvda1 2048 41943039 20970496 83 Linux Command (m for help): a <<13>> Partition number (1-4): 1 <<14>> Command (m for help): w <<15>> The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: ... The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. # reboot <<16>> <wait> # df -h <<17>> Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 2.0G 17G 11% / tmpfs 15G 0 15G 0% /dev/shm # resize2fs /dev/xvda1 <<18>> resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/xvda1 is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 2 Performing an on-line resize of /dev/xvda1 to 5242624 (4k) blocks. The filesystem on /dev/xvda1 is now 5242624 blocks long. root@vs120 [~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 7.8G 11G 42% / tmpfs 498M 0 498M 0% /dev/shm /usr/tmpDSK 399M 11M 368M 3% /tmp root@vs120 [~]#
调整EBS卷上的文件系统大小。 如果你运行ext3
(通常是默认的),你可以运行e2resize /dev/xvda1
。
我用从@Neo自定义的Ubuntu AMI创build的实例尝试了答案。 解释是非常有用的,但我需要保持单位为块,只是跳过第4步。 然后它完美地工作。
还有一点就是,在步骤#5中,您必须复制步骤#10中使用的起始块/柱面。
@ Neo的答案是如果你有一个分区的虚拟磁盘设备。 你可以通过以下的方法find这个问题: lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 5G 0 part /
xvda和xvda1是大小不同的。 你可以resize2fs,它不会有任何区别,在我的情况下,xvda1是5G,这就是所有的文件系统将使用。
谢谢@Neo