当前位置:首页 > linux教程 > 列表

AWS-AMI缩小根分区并创建新的AMI例子

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-21 15:56:12 浏览: 评论:0 

下面我们来看一篇关于AWS-AMI 缩小根分区并创建新的AMI例子,如果你想了解AWS-AMI对分区操作的例子可进入看看.

环境及需求:

1.现在的AMI 根分区有25G

2.25G有点多,所以想将25G缩小到12G

3.查看磁盘信息

  1. # df -h 
  2. Filesystem      Size  Used Avail Use% Mounted on 
  3. /dev/xvda1       17G  1.5G   15G   9% / 
  4. tmpfs           498M     0  498M   0% /dev/shm 

操作步骤:

1.挂载一块12G的新盘(/dev/xvdf)

2.分区并格式化新磁盘

  1.     # fdisk -l 
  2.      Device Boot      Start         End      Blocks   Id  System 
  3. /dev/xvdf1               1        1045     8393931   83  Linux 
  4. /dev/xvdf2            1046        1566     4184932+  82  Linux swap / Solaris 
  5.   # mkfs.ext4 /dev/xvdf1 --phpfensi.com 

3.挂载新磁盘

  1. # mkdir /new 
  2. # mount /dev/xvdf1 /new 
  3. # df |grep new 
  4. /dev/xvdf1      7.9G  1.2G  6.4G  16% /new 

4.同步数据(将/下所有数据拷贝到新磁盘).

# rsync -auv / –exclude=”/new/*”   /new

5.卷标处理

查看各磁盘卷标:

  1. # e2label /dev/xvda1
  2. # e2label /dev/xvdf1  (这个没有卷标,所以是空的) 

给新磁盘添加卷标:

  1. e2label /dev/xvdf1 ROOT 
  2. mkswap -L SWAP /dev/xvdf2 
  3. ( # e2label /dev/xvda1  “”  //删除卷标可以这样) 

6.修改并查看/new/etc/fstab(LABEL为ROOT的挂载到/,LABEL为SWAP的为swap)

  1.  #  cat /new/etc/fstab 
  2. LABEL=ROOT      /       ext4    defaults        1 1 
  3. LABEL=SWAP      swap    swap    defaults        0 0 
  4. tmpfs   /tmp    tmpfs   defaults        0 0 
  5. devpts  /dev/pts        devpts  gid=5,mode=620  0 0 
  6. sysfs   /sys    sysfs   defaults        0 0 
  7. proc    /proc   proc    defaults        0 0 

7.修改并查看/new/boot/grub/grub.conf(从LABEL为ROOT的启动)

  1. default=0 
  2. timeout=5 
  3. splashimage=(hd0,0)/boot/grub/splash.xpm.gz 
  4. hiddenmenu 
  5. title CentOS (2.6.32-431.3.1.el6.x86_64) 
  6.         root (hd0,0) 
  7.         kernel /boot/vmlinuz-2.6.32-431.3.1.el6.x86_64 ro root=LABEL=ROOT console=ttyS0 crashkernel=auto SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=us 
  8.         initrd /boot/initramfs-2.6.32-431.3.1.el6.x86_64.img 

8.确保网卡是DHCP

  1. # cat /new/etc/sysconfig/network-scripts/ifcfg-eth0 
  2. DEVICE=eth0 
  3. ONBOOT=yes 
  4. BOOTPROTO=dhcp 
  5. TYPE=Ethernet 

9.创建snapshot

snapshot:给snapshot取个名字

snapshot2:pending需要一段时间(取决于磁盘的大小),记住创建的snapshot的ID,后面要用.

9.创建完成后,基于这个snapshot注册一个AMI.

  1. #  ec2-register -n “CentOS6.5-x64-base-12G” -d “CentOS6.5-x64-base-12G” -a x86_64 –root-device-name /dev/sda -b /dev/sda=snap-f13d641e:12:true –kernel aki-503e7402 –region ap-southeast-1 --virtualization-type hvm  
  2. -O AKIXXXXXXXXXXXXX -W xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 

10.备注:

系统要运行ec2-register命令,需要安装java环境和aws-api的包,官方命令详解:

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-RegisterImage.html

-b /dev/sda=snap-f13d641e:12:true 表示sda是由snap-f13d641e这个snapshot克隆来的.

11.是磁盘容量

–kernel aki-503e7402 不同地区和不是系统位数用的aki名是不一样的,更多AKI详见如下链接.

  1. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html#AmazonKernelImageIDs 
  2. -O AKIXXXXXXXXXXXXX -W xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 

创建一个用户,授权可以执行ec2-register命令,并记住它的key.

Tags: AWS-AMI 创建AMI

分享到: