xen(六)使用DomU自有kernel来启动DomU:(不支持qcow2)

创建磁盘映像文件:
# qemu-img create -f raw -o size=2G /srv/xen/busybox3.img
Formatting ‘/srv/xen/busybox3.img’, fmt=raw size=2147483648

验证:
# ll /srv/xen/
total 55812
-rw-r–r– 1 root root   2148073472 Dec 18 12:27 busybox1.img
-rw-r–r– 1 root root   2147483648 Dec 18 13:15 busybox3.img
-rw-r–r– 1 root root   2147483648 Dec 17 11:55 busybox.img
-rw-r–r– 1 root root 128868941824 Dec 16 09:20 centos6.9.img

# du -sh /srv/xen/busybox3.img
0    /srv/xen/busybox3.img

losetup 设置并控制本地回环设备
-a 显示出所有已用的loop设备
-f 显示第一个空闲的loop设备文件

找出一个空闲的loop设备:
# losetup -a
# losetup -f
/dev/loop0

把img挂在loop0上
# losetup /dev/loop0 /srv/xen/busybox3.img
# losetup -a
/dev/loop0: [fd00]:6159 (/srv/xen/busybox3.img)

创建分区:
# fdisk  /dev/loop0
# fdisk  -l /dev/loop0

Disk /dev/loop0: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xdb38ee90

Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1               1         132     1060258+  83  Linux
/dev/loop0p2             133         261     1036192+  83  Linux

通知内核读取新的分区:
# ls /dev/mapper
control  vg_xen-lv_root  vg_xen-lv_swap
# kpartx -av /dev/loop0
add map loop0p1 (253:2): 0 2120517 linear /dev/loop0 63
add map loop0p2 (253:3): 0 2072385 linear /dev/loop0 2120580
# ls /dev/mapper
control  loop0p1  loop0p2  vg_xen-lv_root  vg_xen-lv_swap

格式化新分区:
# mkfs -t ext4 /dev/mapper/loop0p1
# mkfs -t ext4 /dev/mapper/loop0p2

挂载:
# mount /dev/mapper/loop0p1 /mnt/boot/
# mount /dev/mapper/loop0p2 /mnt/sysroot/

提供内核:
# cp -a /boot/vmlinuz-2.6.32-696.el6.x86_64 /mnt/boot/vmlinuz
# cp -a /boot/initramfs-2.6.32-696.el6.x86_64.img /mnt/boot/initramfs

创建grub:
# grub-install –root-directory=/mnt /dev/loop0
Probing devices to guess BIOS drives. This may take a long time.
/dev/loop0 does not have any corresponding BIOS drive.

验证grub创建:
# ll /mnt/boot/
grub/       initramfs   lost+found/ vmlinuz
# ll /mnt/boot/grub/
total 272
-rw-r–r– 1 root root     30 Dec 18 13:32 device.map
-rw-r–r– 1 root root  13428 Dec 18 13:32 e2fs_stage1_5
-rw-r–r– 1 root root  12636 Dec 18 13:32 fat_stage1_5
-rw-r–r– 1 root root  11780 Dec 18 13:32 ffs_stage1_5
-rw-r–r– 1 root root  11772 Dec 18 13:32 iso9660_stage1_5
-rw-r–r– 1 root root  13284 Dec 18 13:32 jfs_stage1_5
-rw-r–r– 1 root root  11972 Dec 18 13:32 minix_stage1_5
-rw-r–r– 1 root root  14428 Dec 18 13:32 reiserfs_stage1_5
-rw-r–r– 1 root root    512 Dec 18 13:32 stage1
-rw-r–r– 1 root root 126148 Dec 18 13:32 stage2
-rw-r–r– 1 root root  12040 Dec 18 13:32 ufs2_stage1_5
-rw-r–r– 1 root root  11380 Dec 18 13:32 vstafs_stage1_5
-rw-r–r– 1 root root  13980 Dec 18 13:32 xfs_stage1_5

编辑引导菜单:
# vim /mnt/boot/grub/grub.conf

default=0
timeout=5
title BusyBox(kernel-2.6.32)
root (hd0,0)
kernel /vmlinuz root=/dev/xvda1 ro selinux=0 init=/bin/sh
initrd /initramfs

创建根文件系统:
# cp -a /root/busybox-1.22.1/_install/*  /mnt/sysroot/
# cd /mnt/sysroot/
# mkdir lib/modules dev  proc sys  etc var tmp -pv

创建网卡驱动:
# modinfo xen-netfront
filename:       /lib/modules/4.9.69-2.el6xen.x86_64/kernel/drivers/net/xen-netfront.ko.gz
alias:          xennet
alias:          xen:vif
license:        GPL
description:    Xen virtual network device frontend
srcversion:     420EBC716BF26607F95CA26
depends:
intree:         Y
vermagic:       4.9.69-2.el6xen.x86_64 SMP mod_unload modversions
parm:           max_queues:Maximum number of queues per virtual interface (uint)
# cp -a /lib/modules/4.9.69-2.el6xen.x86_64/kernel/drivers/net/xen-netfront.ko.gz /mnt/sysroot/lib/modules/

取消挂载:
# umount /mnt/boot/
# umount /mnt/sysroot/

从内核中清除
# ls /dev/mapper
control  loop0p1  loop0p2  vg_xen-lv_root  vg_xen-lv_swap
# kpartx -d /dev/loop0
验证:
# ls /dev/mapper
control  vg_xen-lv_root  vg_xen-lv_swap
# losetup -d /dev/loop0
# losetup -f
/dev/loop0

创建配置文件:
# cp -a /etc/xen/busybox /etc/xen/busyboxnew

# which pygrub
/usr/bin/pygrub

虚拟机配置文件如下:
# cat /etc/xen/busyboxnew | grep -v ‘#’ | grep -v “^$”
name = “busybox-002”
memory = 256
vcpus = 2
vif = [ ‘birdge=xenbro’ ]
disk = [ ‘/srv/xen/busybox3.img,raw,w’ ]
bootloader = ‘pygrub’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值