zoukankan      html  css  js  c++  java
  • xen虚拟机的启动(引导)方式

    有几种不同的方式来引导虚拟机,各有利弊。

    1.BIOS bootloader

    适用于全虚拟化,loader模拟了BIOS

    原文:

    Booting via the BIOS is available for hypervisors supporting full virtualization. In this case the BIOS has a boot order priority (floppy, harddisk, cdrom, network) determining where to obtain/find the boot image.
      ...
      <os>
        <type>hvm</type>
        <loader>/usr/lib/xen/boot/hvmloader</loader>
        <boot dev='hd'/>
        <boot dev='cdrom'/>
        <bootmenu enable='yes'/>
        <smbios mode='sysinfo'/>
      </os>
      ...
    type
    The content of the type element specifies the type of operating system to be booted in the virtual machine. hvm indicates that the OS is one designed to run on bare metal, so requires full virtualization. linux (badly named!) refers to an OS that supports the Xen 3 hypervisor guest ABI. There are also two optional attributes, arch specifying the CPU architecture to virtualization, and machine referring to the machine type. The Capabilities XML provides details on allowed values for these. Since 0.0.1
    loader
    The optional loader tag refers to a firmware blob used to assist the domain creation process. At this time, it is only needed by Xen fully virtualized domains. Since 0.1.0
    boot
    The dev attribute takes one of the values "fd", "hd", "cdrom" or "network" and is used to specify the next boot device to consider. The boot element can be repeated multiple times to setup a priority list of boot devices to try in turn. The boot element cannot be used if per-device boot elements are used (see disks, network interfaces, and USB and PCI devices sections below). Since 0.1.3, per-device boot since 0.8.8
    bootmenu
    Whether or not to enable an interactive boot menu prompt on guest startup. The enable attribute can be either "yes" or "no". If not specified, the hypervisor default is used.  Since 0.8.3
    smbios
    How to populate SMBIOS information visible in the guest. The mode attribute must be specified, and is either "emulate" (let the hypervisor generate all values), "host" (copy all of Block 0 and Block 1, except for the UUID, from the host's SMBIOS values; the virConnectGetSysinfo call can be used to see what values are copied), or "sysinfo" (use the values in the sysinfo element). If not specified, the hypervisor default is used.  Since 0.8.7
    2.Host bootloader

    适用于半虚拟化, Hypersisor没有模拟BIOS,由Host的pseudo-bootloader来引导,它会为guest提供一个接口来选择一个kernel(不懂)

    原文:

    Hypervisors employing paravirtualization do not usually emulate a BIOS, and instead the host is responsible to kicking off the operating system boot. This may use a pseudo-bootloader in the host to provide an interface to choose a kernel for the guest. An example is pygrub with Xen.
      ...
      <bootloader>/usr/bin/pygrub</bootloader>
      <bootloader_args>--append single</bootloader_args>
      ...
    bootloader
    The content of the bootloader element provides a fully qualified path to the bootloader executable in the host OS. This bootloader will be run to choose which kernel to boot. The required output of the bootloader is dependent on the hypervisor in use. Since 0.1.0
    bootloader_args
    The optional bootloader_args element allows command line arguments to be passed to the bootloader. Since 0.2.3
    3.Direct kernel boot

    适用于全虚拟与半虚拟化,使用host的kernel与initrd(init ram disk)的引导 

    When installing a new guest OS it is often useful to boot directly from a kernel and initrd stored in the host OS, allowing command line arguments to be passed directly to the installer. This capability is usually available for both para and full virtualized guests.
      ...
      <os>
        <type>hvm</type>
        <loader>/usr/lib/xen/boot/hvmloader</loader>
        <kernel>/root/f8-i386-vmlinuz</kernel>
        <initrd>/root/f8-i386-initrd</initrd>
        <cmdline>console=ttyS0 ks=http://example.com/f8-i386/os/</cmdline>
      </os>
      ...
    type
    This element has the same semantics as described earlier in the BIOS boot section
    loader
    This element has the same semantics as described earlier in the BIOS boot section
    kernel
    The contents of this element specify the fully-qualified path to the kernel image in the host OS.
    initrd
    The contents of this element specify the fully-qualified path to the (optional) ramdisk image in the host OS.
    cmdline
    The contents of this element specify arguments to be passed to the kernel (or installer) at boottime. This is often used to specify an alternate primary console (eg serial port), or the installation media source / kickstart file

  • 相关阅读:
    ACM/ICPC 之 一道不太简单的DP面试题(Geeksforgeeks)
    ACM/ICPC 之 简单DP-记忆化搜索与递推(POJ1088-滑雪)
    ACM/ICPC 之 递归(POJ2663-完全覆盖+POJ1057(百练2775)-旧式文件结构图)
    ACM/ICPC 之 枚举(POJ1681-画家问题+POJ1166-拨钟问题+POJ1054-讨厌的青蛙)
    JAVA手记 JAVA入门(安装+Dos下运行)
    ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))
    ACM/ICPC 之 优先级队列+设置IO缓存区(TSH OJ-Schedule(任务调度))
    ACM/ICPC 之 BFS(离线)+康拓展开 (HDU1430-魔板)
    JAVA中的数据结构——集合类(序):枚举器、拷贝、集合类的排序
    JAVA中的数据结构——集合类(线性表:Vector、Stack、LinkedList、set接口;键值对:Hashtable、Map接口<HashMap类、TreeMap类>)
  • 原文地址:https://www.cnblogs.com/yangyh/p/2019734.html
Copyright © 2011-2022 走看看