制作openstack windows xp镜像

下载官方原版iso镜像:http://pan.baidu.com/s/1c0owVc8

下载virtio驱动:http://alt.fedoraproject.org/pub/alt/virtio-win/archives/virtio-win-0.1-59/virtio-win-0.1-59.iso

创建一个虚拟qcow2盘:

kvm-img create -f qcow2 xp.qcow2 10G

安装xp到创建的虚拟盘中,有些教程说要加载软驱 virtio-win-xx.vfd和virtio驱动,实际上xp不需要,稍后我们再装!

kvm -m 1024 -cdrom xp.iso -drive file=xp.qcow2 -fda  -boot d

安装好系统后,我们进入系统,并且安装virtio驱动,

kvm -hda xp.qcow2 \
    -drive file=xp.qcow2,if=virtio \
    -drive file=virtio-win-0.1-30.iso,media=cdrom,index=1 \
    -net nic,model=virtio \
    -net user \
    -boot d \
    -vga std \
    -m 1024

进入xp系统,点击我的电脑->管理->设备管理,更新scsi和网卡驱动,注意scsi驱动必须安装,否则进入后会出现蓝屏。

驱动安装后,就可以上传到openstack中了

glance image-create --name xp --container-format=ovf --disk-format=qcow2 -file xp.qcow2 --progress

创建虚拟机时,根磁盘要大于创建虚拟磁盘的大小,临时磁盘对应一块新的未格式化的虚拟硬盘,swap不需要,创建成功后,进入系统。

此时c盘大小和创建虚拟盘大小一样,如果分配的磁盘大于虚拟盘大小,比如我们虚拟盘大小的10G,创建云主机时指定根磁盘大小为20G,此时需要使用磁盘扩展工具扩展c盘大小,http://pan.baidu.com/s/1eQh7q9c,如果有临时磁盘,则需要使用磁盘管理工具初始化磁盘,即我的电脑->管理->磁盘管理,然后格式化。

挂载新的云硬盘如果未被初始化,也需要进行磁盘初始化和格式化。

如果我们需要远程登陆,则还需要开启远程桌面功能,我一般还会关掉防火墙。

这是我制作的镜像,可以直接使用:http://pan.baidu.com/s/1pJEyVGZ

转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!

ssh登录慢问题

    有时使用ssh登录远程主机,一直卡着不动,等待很久才跳出输入密码提示。

    如果不是网络原因(可以ping下网络是否畅通),可能是由于DNS反向解析问题,可以修改远程主机ssh服务器配置文件/etc/ssh/sshd_config文件,设置UseDNS 为no,重启ssh服务器。

   如果debug出现Cannot determine realm for numeric host address而卡住,则修改/etc/ssh/ssh_config(注意不是sshd_config) 为GSSAPIAuthentication no

转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!

挂载raw和qcow2格式的KVM硬盘镜像

from:http://lazyhack.net/mount-raw-and-qcow2-kvm-disk-images/
raw格式
对于未分区镜像文件直接使用loop:
mount -o loop image.img /mnt/image
已分区的镜像文件:
如果已知分区的起始位置
mount -o loop,offset=32256 image.img /mnt/image
或者使用losetup + kpartx
losetup /dev/loop0 image.img
kpartx -a /dev/loop0
mount /dev/mapper/loop0p1 /mnt/image
kpartx命令的作用,是让Linux内核读取一个设备上的分区表,然后生成代表相应分区的设备。
kpartx -l imagefile 可以查看一个映像文件中的分区,使用 kpartx -a imagefile 命令后,就可以通过 /dev/mapper/loop0pX (其中X是 分区号)来访问映像。
 
qcow2格式
对于qcow2格式需要使用qemu-nbd这个工具
modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 image.img
mount /dev/nbd0p1 /mnt/image
如果是LVM格式的镜像:
vgscan
vgchange -ay
mount /dev/VolGroupName/LogVolName /mnt/image
最后使用结束需释放资源:
umount /mnt/image
vgchange -an VolGroupName
killall qemu-nbd
kpartx -d /dev/loop0
losetup -d /dev/loop0
转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!