下面我們來看一篇關于AWS-AMI 縮小根分區并創建新的AMI例子,如果你想了解AWS-AMI對分區操作的例子可進入看看.
環境及需求:
1.現在的AMI 根分區有25G
2.25G有點多,所以想將25G縮小到12G
3.查看磁盤信息
- # df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/xvda1 17G 1.5G 15G 9% /
- tmpfs 498M 0 498M 0% /dev/shm
操作步驟:
1.掛載一塊12G的新盤(/dev/xvdf)
2.分區并格式化新磁盤
- # fdisk -l
- Device Boot Start End Blocks Id System
- /dev/xvdf1 1 1045 8393931 83 Linux
- /dev/xvdf2 1046 1566 4184932+ 82 Linux swap / Solaris
- # mkfs.ext4 /dev/xvdf1 --Vevb.com
3.掛載新磁盤
- # mkdir /new
- # mount /dev/xvdf1 /new
- # df |grep new
- /dev/xvdf1 7.9G 1.2G 6.4G 16% /new
4.同步數據(將/下所有數據拷貝到新磁盤).
# rsync -auv / –exclude=”/new/*” /new
5.卷標處理
查看各磁盤卷標:
- # e2label /dev/xvda1
- /
- # e2label /dev/xvdf1 (這個沒有卷標,所以是空的)
給新磁盤添加卷標:
- e2label /dev/xvdf1 ROOT
- mkswap -L SWAP /dev/xvdf2
- ( # e2label /dev/xvda1 “” //刪除卷標可以這樣)
6.修改并查看/new/etc/fstab(LABEL為ROOT的掛載到/,LABEL為SWAP的為swap)
- # cat /new/etc/fstab
- LABEL=ROOT / ext4 defaults 1 1
- LABEL=SWAP swap swap defaults 0 0
- tmpfs /tmp tmpfs defaults 0 0
- devpts /dev/pts devpts gid=5,mode=620 0 0
- sysfs /sys sysfs defaults 0 0
- proc /proc proc defaults 0 0
7.修改并查看/new/boot/grub/grub.conf(從LABEL為ROOT的啟動)
- default=0
- timeout=5
- splashimage=(hd0,0)/boot/grub/splash.xpm.gz
- hiddenmenu
- title CentOS (2.6.32-431.3.1.el6.x86_64)
- root (hd0,0)
- 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
- initrd /boot/initramfs-2.6.32-431.3.1.el6.x86_64.img
8.確保網卡是DHCP
- # cat /new/etc/sysconfig/network-scripts/ifcfg-eth0
- DEVICE=eth0
- ONBOOT=yes
- BOOTPROTO=dhcp
- TYPE=Ethernet
9.創建snapshot
snapshot:給snapshot取個名字
snapshot2:pending需要一段時間(取決于磁盤的大小),記住創建的snapshot的ID,后面要用.
9.創建完成后,基于這個snapshot注冊一個AMI.
- # 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
- -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詳見如下鏈接.
- http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html#AmazonKernelImageIDs
- -O AKIXXXXXXXXXXXXX -W xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
創建一個用戶,授權可以執行ec2-register命令,并記住它的key.
新聞熱點
疑難解答