# Aws Ec2 Instance type 舊換新 for Centos 1. 在[Application Migration Service](https://ap-northeast-1.console.aws.amazon.com/mgn/home?region=ap-northeast-1#/sourceServers)確認 遷移生命週期 為 準備測試,點選啟動測試執行個體,再點選啟動。![](https://hackmd.io/_uploads/B1rlWabI3.jpg)![](https://hackmd.io/_uploads/BksDQab83.png) 2. 確認 遷移生命週期 變更為 測試進行中,且狀態出現 已啟動。![](https://hackmd.io/_uploads/SJKBI6WL3.png) 3. 在[EC2](https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#Instances:)頁面就會出現前面步驟啟動的測試執行個體,在該台EC2上點選右鍵 > 映像和範本 > 建立映像,輸入映像名稱,再點選建立映像。![](https://hackmd.io/_uploads/HJ7SKTb8n.png)![](https://hackmd.io/_uploads/SJdYsa-L2.png) 4. 在[AMI](https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Images:)可找到前面建立的映象,選取後點選 從AMI啟動執行個體![](https://hackmd.io/_uploads/Syw7ppZLn.png) 5. 啟動執行個體 5.1. 輸入名稱![](https://hackmd.io/_uploads/SJJiUezU3.png) 5.2. 執行個體類型選擇 c6i.xlarge,金鑰對名稱選擇 在沒有金鑰對的情況下繼續![](https://hackmd.io/_uploads/BJZsZxG82.png) 5.3. 網路設定依據需求進行選擇![](https://hackmd.io/_uploads/HJzGz0-U3.png) 5.4. 點開進階網路設定,在 主要IP 輸入要自訂的IP,完成後點選啟動執行個體![](https://hackmd.io/_uploads/rkrWmRWIh.png) 11. 停止執行個體![](https://hackmd.io/_uploads/SJw6rAWU2.png) 12. 選取執行個體,在 儲存 點選根目錄的磁碟區ID![](https://hackmd.io/_uploads/BkIZgWf83.png) 13. 選取磁碟區後,點選分開磁碟區![](https://hackmd.io/_uploads/SyWExWG82.png) 14. 再次選取磁碟區後,點選連接磁碟區![](https://hackmd.io/_uploads/Hy_FgWfI3.png) 15. 連結到另一台Linux的執行個體,將裝置名稱記下來/dev/sdf,點選連接磁碟區。![](https://hackmd.io/_uploads/ry-gNbGU3.png) 16. 需要安装 lvm2 > sudo yum install lvm2 17. 查看Logical volume > sudo lvdisplay ![](https://hackmd.io/_uploads/r12aIWfU3.png) 18. 若狀態不是LV Status:available,再將它啟動 > sudo vgchange -ay /dev/centos ![](https://hackmd.io/_uploads/r1OND-fU3.png) 19. 創建掛載點並掛載根 LV。替換centos為卷組的名稱、root根 LV 的名稱和sda1引導分區 ``` sudo mkdir /mnt/centos-root sudo mount /dev/centos/root /mnt/centos-root sudo mount /dev/sdf1 /mnt/centos-root/boot sudo mount -obind /dev /mnt/centos-root/dev ``` 9. 更改系統的根目錄 > sudo chroot /mnt/centos-root 13. 新增 AWS nvme/ena/xen 相關硬體驅動 > echo 'add_drivers+=" ena xfs ext4 nvme nvme-core virtio virtio_scsi xen-blkfront xen-netfront virtio_blk mptbase mptscsih mptspi ixgbevf "' | sudo tee -a /etc/dracut.conf.d/aws.conf 14. 產生新 kernel image 但不改變 kernel 版本 > sudo dracut -f -v 15. 移除 network rule 文件 > sudo cat< /dev/null > /etc/udev/rules.d/70-persistent-net.rules 16. 回到AWS Console,點選分開磁碟區,再點選連接磁碟區連結到原來的執行個體,裝置名稱輸入/dev/sda1![](https://hackmd.io/_uploads/SyWExWG82.png)![](https://hackmd.io/_uploads/Hy_FgWfI3.png)![](https://hackmd.io/_uploads/H1dh0bzU2.png) 17. 使用ssh測試連線若無法連線,選取執行個體後,點選連線,再選擇 EC2 序列主控台 連線![](https://hackmd.io/_uploads/HJ7nuxQLh.png)![](https://hackmd.io/_uploads/BktgKlmU2.png) 18. 確認網卡是否存在 > ifconfig 19. 若找不到網卡,輸入指令會看到類似ethN或ensN的網卡名稱,記下此名稱,以下步驟用ens5在範例 > ip link ![](https://hackmd.io/_uploads/B1zqKgQIn.png) 20. 建立config檔 > vim /etc/sysconfig/network-scripts/ifcfg-ens5 ``` DEVICE="ens5" BOOTPROTO="dhcp" ONBOOT="yes" TYPE="Ethernet" USERCTL="yes" PEERDNS="yes" IPV6INIT="no" PERSISTENT_DHCLIENT="1" ``` 21. 啟動網卡 > ifup ens5