ฉันได้มาค่อนข้างใกล้เคียงกับการได้รับ Amazon Linux เพื่อบูตภายใน VirtualBox ขอบคุณคำตอบนี้และเหล่านี้ เว็บไซต์ ภาพรวมอย่างย่อของขั้นตอนที่ฉันได้ทำไป:
- เรียกใช้อินสแตนซ์ EC2 ด้วย Amazon Linux 2011.09 64-bit AMI
dd
เนื้อหาของปริมาณ EBS ไปssh
ยังไฟล์ภาพในเครื่อง- เมาท์ไฟล์รูปภาพเป็นอุปกรณ์ย้อนกลับแล้วไปยังจุดเมานต์ท้องถิ่น
- สร้างไฟล์อิมเมจดิสก์เปล่าใหม่แบ่งพาร์ติชันด้วยออฟเซ็ตสำหรับ bootloader และสร้างระบบไฟล์ ext4
- เมานต์พาร์ติชั่นของอิมเมจใหม่และคัดลอกทุกอย่างจากอิมเมจ EC2
- ติดตั้งด้วง (ใช้
grub-legacy-ec2
แพ็คเกจของ Ubuntu ไม่ใช่ด้วง 2 ) - การแปลงไฟล์ภาพเพื่อ vmdk
qemu-img
ใช้ - สร้าง VirtualBox VM ใหม่ด้วย vmdk
ตอนนี้ VM boots, grub load และเคอร์เนลถูกพบ แต่มันล้มเหลวเมื่อพยายามติดตั้งอุปกรณ์รูท:
dracut Warning: No root device "block:/dev/xvda1" found
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
dracut Warning: Signal caught!
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.35.14-107.1.39.amzn1.x86_64 #1
ฉันพยายามเปลี่ยน/boot/grub/menu.lst
เพื่อค้นหาอุปกรณ์รูทตามเลเบลและ UUID แต่ไม่มีอะไรทำงาน ฉันคาดเดาเคอร์เนล xen เข้ากันไม่ได้กับ VirtualBox
เหตุผลที่อยู่เบื้องหลังความพยายามทั้งหมดนี้คือการสร้างกล่อง Vagrant ที่ใกล้เคียงที่สุดเท่าที่เป็นไปได้เช่นเดียวกับสภาพแวดล้อมการผลิตดังนั้นจึงสามารถทดสอบ Deploys ในพื้นที่ได้ ฉันรู้ว่าการทดสอบทำงานบน EC2 นั้นถูกกว่า แต่การเชื่อมต่อที่ไม่ดีมักจะทำลายประสบการณ์ นอกจากนี้ยังเป็นการดีที่จะมีเครื่องเสมือนที่มีสภาพแวดล้อมการผลิตเพื่อให้เพื่อนร่วมงานไม่ต้องติดตั้งทุกอย่างภายใต้ดวงอาทิตย์เพียงเพื่อเริ่มต้นและทำงานกับการพัฒนาแอป
ถ้าฉันจะลองใช้เคอร์เนลตัวอื่นฉันจะสามารถปิดเคอร์เนลอะไรได้ใกล้เคียงกับ Amazon Linux 2011.09 มากที่สุด