• 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

  • 相关阅读:
    用bash脚本统计代码行数
    Winform应用程序实现通用消息窗口
    文件管理工具“三剑客” #Everything #SpaceSniffer #Clover
    Jenkins pipeline:pipeline 语法详解
    Android studio安装教程
    恶意代码分析实战 shellcode分析 lab 191 192 193 整体来说 对汇编代码的分析要求较高 因为没法直接反编译为C代码看
    恶意代码分析实战 加壳与脱壳 lab 181 182 183 184 185 手动脱壳和自动脱壳操作
    恶意代码分析实战 IDA分析 lab 73 一个通过感染主机exe 修改kernel.dll为恶意dll的后门程序 要做清理的话 是很难的!
    恶意代码分析实战 隐蔽的恶意代码启动 lab121 122 123 124 进程注入、进程替换、hook procmon监控os api调用不行 数据分析还是要sysmon
    恶意代码分析实战 ollydbg使用来了 Lab 91 92 93
  • 原文地址:https://www.cnblogs.com/yangyh/p/2019734.html
Copyright © 2020-2023  润新知