2012-07-19 163 views
4

我正在嘗試添加一個開關,以將Linux內核日誌發送到XenServer6上的串行控制檯。關於linux內核命令行開關的三重破折號

內核命令選項可以在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 [email protected] 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 [email protected] --- /boot/vmlinuz-2.6-xen root=LABEL=root-tfnnfzfp ro console=tty0 xencons=hvc console=hvc0 --- /boot/initrd-2.6-xen.img 

什麼是命令行上翻三番破折號(---)的含義是什麼?

它加載3個啓動文件嗎?

回答

6

TL; DR是的。 ExtLinux必須加載Xen和Linux內核。它使用mboot.c32來做到這一點。 ---將Xen映像路徑及其命令行與Linux映像路徑及其命令行分開。

這只是ExtLinux(實際上,SysLinux系列中的所有引導加載程序)實現多引導的方式,這是加載Xen所必需的。

大多數簡單的引導配置只會加載一個內核。有一種方式是引導加載程序將命令行寫入您期望的地方。在SYSLINUX風格:

label Simple 
    kernel linux.c32 
    append <linux kernel filename> <linux command line> 

或者在蠐螬:

title Simple Boot 
    root (hd0,0) 
    kernel <linux kernel filename> <linux command line> 

更復雜的啓動配置可能加載啓動Xen和內核。這些系統使用一個名爲「multiboot」的系統,該系統加載這兩個系統併爲它們分配自己的命令行。這可以讓你通過Xen命令和Linux命令。你甚至可以通過另一個階段加載其他的東西,比如初始的ramdisk。在風格的SysLinux:

label Complex 
    kernel mboot.32 
    append <xen kernel filename> <xen command line> --- <linux kernel filename> <kernel command line> --- <initrd filename> 

或者在蠐螬:

label Complex Boot 
kernel <xen kernel filename> <xen command line> 
module <linux kernel filename> <linux command line> 
module <initrd filename> 

如果你使用GRUB,它實際上在自己的節指定了這些。 Grub可以作爲一種超級引導加載程序,因爲它可以加載大量小模塊以實現諸如多引導(或不同文件系統等)的功能。在那種情況下,Grub在你不知道的情況下會大部分都會神奇的。

Syslinux和家庭分工不同。它不是有一個必須處理所有情況的巨型引導裝載程序,而是有兩個層,它們有許多不同的部分。在最上面,他們有知道系統引導的核心引導加載程序(即syslinux知道用FAT文件系統上的文件啓動BIOS,pxelinux知道通過網絡加載東西,isolinux知道從CD-ROM等加載文件)。 Extlinux就是知道如何從Ext2,Ext3,Ext4或BTRFS文件系統啓動的人。

其他常用功能是作爲「comboot」模塊實現的,它可以插入任何引導加載程序。例如:

在multiboot的情況下,它們加載mboot.c32模塊,該模塊實現多引導。與Grub和家族(瞭解多個命令行)不同,syslinux必須在單個命令行中包含所有模塊及其命令行。由於 - 經常用作其他程序中的參數分隔符,因此他們選擇使用---來分隔模塊。

在這種情況下,Xen需要多引導,這需要使用語法來分隔Xen虛擬機管理程序內核和作爲其初始特權guest虛擬機運行的Linux內核的命令行。