什么是类似于 Amazon Linux 的好发行版

什么是类似于 Amazon Linux 的好发行版

我正在 EC2 上的生产环境中运行“Amazon Linux”操作系统/发行版,但我想使用 VirtualBox VM 进行一些本地开发/测试。哪个发行版最适合使用,最像 Amazon Linux。我最感兴趣的是确保我拥有相同的软件包。

我最熟悉基于 yum/rpm 的发行版,所以这就是我想停留的地方,但如果有另一个发行版与 apt 具有更好的包相似性,我想我可以做到这一点。

我需要运行的软件包的简要列表是 mysql5.5、apache2.2、php5.3 和 tomcat7。

答案1

这个问题肯定会被关闭,因为它太广泛了。但是,我想分享一些有用的信息,这些信息可能对将来的参考有用。您可以使用亚马逊 AMI 镜像您最初在virtualbox.

脚步

注意:您必须使用 root 权限来完成所有这些操作。

制作新的原始驱动器文件

这一场大约有 10 场演出:

dd if=/dev/zero of=newimage.raw bs=1M count=10240

对其进行分区

首先,将其添加到环回设备:

losetup -fv newimage.raw
Loop device is /dev/loop0 

接下来,对其进行分区(这将为整个磁盘创建一个分区)。确保它是可启动的。否则默认值就很好。

cfdisk /dev/loop0

注意:您需要实际选择“写入”并按 Enter 键才能使其正常工作,否则您将在没有实际分区的情况下退出,我每次都会这样做。

创建文件系统

您不能使用 mkfs,因为它会破坏环回设备上文件系统大小的自动确定功能。相反,查找分区的开始、结束、块数、柱面数和块大小:

fdisk -l -u /dev/loop0
Disk /dev/loop0: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 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: 0x00000000

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1   *          63    20964824    10482381   83  Linux

计算分区的开头 x 块大小。在这种情况下(实际上在大多数情况下),它是 512 * 63(扇区大小 * 起始扇区):32256。通过指定偏移量为此分区设置新的环回设备:

losetup -fv -o 32256 newimage.raw
Loop device is /dev/loop1

您现在将创建一个文件系统,具有一定的块大小(可能是 4096,这是标准的,也是我使用的)和您计算的块数:((结束 - 开始)* 单位)/块大小,或(在我们的例子中,为 (20964824 - 63) * 512) / 4096。

要在新分区上创建文件系统:

mkfs.ext3 -b 4096 /dev/loop1 2620595

复制并准备新的文件系统

首先,将 .raw 图像也设置为环回设备:

losetup -fv genprog-raw-image.raw
Loop device is /dev/loop2

安装它:

mkdir /mnt/tmp_1
mount -t ext3 /dev/loop2 /mnt/tmp_1

对新图像执行相同操作:

mkdir -p /mnt/loop/1
mount -t ext3 /dev/loop1 /mnt/loop/1
cp -a /mnt/tmp_1/* /mnt/loop/1/

我从网站上获取的说明表明您需要复制启动模块以获取 initrd 和内核信息,但出于某种原因,我认为我不必这样做。

添加引导加载程序之前的各种修改

编辑 menu.lst 并确保 root= 设置为 /dev/sda1:(root= 子字符串的位置相当随机)

vi /mnt/loop/1/boot/grub/menu.lst

出于相同目的编辑 fstab(将 /dev/xfvg 替换为 /dev/sda1):

vi /mnt/loop1/etc/fstab

亚马逊设置了一个随机的根密码,这是行不通的。反而:

chroot /mnt/loop/1
mv /etc/rc.local /etc/rc.local-old
passwd root
exit

在新驱动器上设置 Grub

卸载并删除带有分区的环回设备(带有偏移量的分区),这样 Grub 就可以正常工作:

umount /mnt/loop/1
losetup -d /mnt/loop1

请返回上面的 fdisk 信息 (> fdisk -l -u /dev/loop0) 并获取柱面数、磁头数和扇区/磁道数。然后做:

grub --device-map=/dev/null

您将进入交互式 Grub 界面。

grub> device (hd0) newimage.raw
grub> geometry (hd0) 1305 255 63
grub> root (hd0,0)
grub> setup (hd0)
You'll get a lot of output, then:
Done.
grub> quit

卸载已安装的驱动器并删除所有环回设备。注意: umount 卸载。为什么没有 n 超出了我的范围。另外,losetup -a 列出所有活动的环回设备。

losetup -d /dev/loop0
losetup -d /dev/loop1
losetup -d /dev/loop2

让 VirtualBox 发挥出色

它仍然是 .raw,是吗?转变:

VBoxManage Convertdd newimage.raw newimage.vdi

(我认为 Convertfromraw 也可以工作,b/c Convertdd 是为了向后兼容。)

使用 newimage.vdi 制作新的 VirtualBox 机器。执行默认操作,但打开设置,选择系统 -> 处理器并设置启用 PAE/NX 旁边的复选框。

编辑 /etc/ssh/sshd_config 并将“PasswordAuthentication”或其他内容从 no 更改为 yes。

关闭虚拟机。返回命令行,启用 sshing:

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

这会将对主机端口 2222 的请求转发到来宾计算机的端口 22(默认情况下进行 ssh 侦听)。要通过 ssh 登录,请执行以下操作:

ssh -p 2222 root@localhost

完毕!

参考

http://church.cs.virginia.edu/genprog/index.php/Converting_an_EC2_AMI_to_a_VirtualBox_.vdi https://superuser.com/questions/504135/where-can-i-find-amazon-linux-ami-image-for-virtualbox http://linux.blogs.com.np/2010/04/05/how-to-move-a-virtual-machine-from-ec2-to-virtualbox-or-kvm/

相关内容