Linux kernel linux内核命令行开关上的三点划线

Linux kernel linux内核命令行开关上的三点划线,linux-kernel,bootloader,xen,Linux Kernel,Bootloader,Xen,我正在尝试添加一个开关,将linux内核日志发送到XenServer6上的串行控制台 内核命令选项可以在EXTLinux配置文件(/boot/EXTLinux.conf)上编辑 以下是摘录: serial 1 115200 default xe prompt 1 timeout 50 label xe # XenServer kernel mboot.c32 append /boot/xen.gz mem=1024G dom0_max_vcpus=4 dom0_mem=752M l

我正在尝试添加一个开关,将linux内核日志发送到XenServer6上的串行控制台

内核命令选项可以在EXTLinux配置文件(
/boot/EXTLinux.conf
)上编辑

以下是摘录:

serial 1 115200
default xe
prompt 1
timeout 50

label xe
  # XenServer
  kernel mboot.c32
  append /boot/xen.gz mem=1024G dom0_max_vcpus=4 dom0_mem=752M lowmem_emergency_pool=1M crashkernel=64M@32M console= vga=mode-0x0311 --- /boot/vmlinuz-2.6-xen root=LABEL=root-tfnnfzfp ro xencons=hvc com2=115200,8n1 console=com2 console=hvc0 console=tty0 quiet vga=785 splash --- /boot/initrd-2.6-xen.img

label xe-serial
  # XenServer (Serial)
  kernel mboot.c32
  append /boot/xen.gz com1=115200,8n1 console=com1,vga mem=1024G dom0_max_vcpus=4 dom0_mem=752M lowmem_emergency_pool=1M crashkernel=64M@32M --- /boot/vmlinuz-2.6-xen root=LABEL=root-tfnnfzfp ro console=tty0 xencons=hvc console=hvc0 --- /boot/initrd-2.6-xen.img
命令行上三个破折号(
--
)的含义是什么


它正在加载3个启动文件吗?

TL;是的,是的。ExtLinux必须同时加载Xen和Linux内核。它使用mboot.c32来执行此操作。--将Xen映像路径及其命令行与Linux映像路径及其命令行分开。

这正是ExtLinux(实际上,该系列中的所有引导加载程序)实现多重引导的方式,这是加载Xen所必需的

大多数简单的引导配置只加载一个内核。有一种方法可以让引导加载程序将命令行写入您期望的位置。在Syslinux样式中:

label Simple
    kernel linux.c32
    append <linux kernel filename> <linux command line>
label Complex
    kernel mboot.32
    append <xen kernel filename> <xen command line> --- <linux kernel filename> <kernel command line> --- <initrd filename>
标签简单
内核linux.c32
追加
或在Grub中:

title Simple Boot
    root (hd0,0)
    kernel <linux kernel filename> <linux command line>
label Complex Boot
kernel <xen kernel filename> <xen command line>
module <linux kernel filename> <linux command line>
module <initrd filename>
title简单引导
根(hd0,0)
内核
更复杂的引导配置可能会加载boot Xen和内核。它们使用一个名为“multiboot”的系统,该系统同时加载这两个文件,并为它们各自提供自己的命令行。这允许您传递Xen-its命令和Linux-its命令。您甚至可以进入另一个阶段来加载其他内容,例如初始ramdisk。在SysLinux样式中:

label Simple
    kernel linux.c32
    append <linux kernel filename> <linux command line>
label Complex
    kernel mboot.32
    append <xen kernel filename> <xen command line> --- <linux kernel filename> <kernel command line> --- <initrd filename>
标签复合体 内核mboot.32 附加----- 或在Grub中:

title Simple Boot
    root (hd0,0)
    kernel <linux kernel filename> <linux command line>
label Complex Boot
kernel <xen kernel filename> <xen command line>
module <linux kernel filename> <linux command line>
module <initrd filename>
label复杂引导
内核
模块
模块
如果您使用的是grub,它实际上会在它们自己的节中指定这些。Grub就像一个超级引导加载程序,它可以加载大量的小模块,以实现多引导(或不同的文件系统等)等功能。在这种情况下,Grub会在你不知情的情况下神奇地完成大部分工作

Syslinux和家庭分工不同。它们没有一个必须处理所有情况的巨型引导加载程序,而是有两个具有许多不同部分的层。最重要的是,他们有一个核心引导加载程序,它知道系统的引导(即,知道BIOS引导和FAT文件系统上的文件,知道通过网络加载东西,知道从CD-ROM加载文件,等等)。就是知道如何从Ext2、Ext3、Ext4或BTRFS文件系统启动的人

其他常见功能实现为“comboot”模块,可以插入任何引导加载程序。例如:

  • 多引导()
  • 直接加载Linux内核()
  • 菜单支持()
  • Lua解释器()
  • 硬件检测工具()
  • 基于CPU标志的备用引导()
在多重引导的情况下,他们加载mboot.c32模块,该模块实现多重引导。与Grub和Grub系列(了解多个命令行)不同,syslinux必须在单个命令行中包含所有模块及其命令行。由于--在其他程序中经常用作参数分隔符,因此他们选择使用--来分隔模块

在这种情况下,Xen需要multiboot,这就要求该语法将Xen Hypervisor内核的命令行与作为其初始特权来宾运行的Linux内核分开