• WINPE
  • Linux配置PXE启动WinPE环境

    作者:U盘装系统 文章来源:u盘装系统 发布时间:2014-12-04 21:30点击:

    PXE Server就是DHCP+TFTP服务,如果想使用Server上的文件,可以加入FTP或Samba等服务。作者用经常用的是PXE启动WinPE环境,在Linux 中再加入Samba服务。WinPE中用 net use 把共享映射到WinPE下。就可以使用Server上的文件了。

      下面Linux PXE是我在VirtualBox上RHEL6系统上配置的。

    .配置Linux DHCP Server

    以下是dhcpd.conf配置文件:这里只是简单给出必须的配置项。

    ddns-update-style interim;

    ignore client-updates;

    allow booting;

    allow bootp;

    class "pxeclients" {

    match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";

    next-server 192.168.56.254;

    filename "pxeboot.0";

    }

    subnet 192.168.56.0 netmask 255.255.255.0 {

    option routers 192.168.56.1;

    range dynamic-bootp 192.168.56.10 192.168.56.250;

    default-lease-time 600;

    max-lease-time 7200;

    }

     

    下图是我的DHCP配置文件内容:红色方框中的参数是必须的,一个都不能少。

    Linux配置PXE启动WinPE环境

     

    2.配置Linux下的tftp Server

    (1)创建remap文件,/tftpboot/tftpd.remap。该文件内容如下:

    必须加入这一行:rg \ /

    Linux配置PXE启动WinPE环境

     

    (2)编辑/etc/xinitd.d/tftp文件。

    service tftp

    {

    socket_type = dgram

    protocol = udp

    wait = yes

    user = root

    server = /usr/sbin/in.tftpd

    server_args = -u nobody -s /tftpboot -m /tftpboot/tftpd.remap -vvv

    disable = no

    per_source = 11

    cps = 100 2

    flags = IPv4

    }

     

    下图是我的xinitd方式启动TFTP的配置内容:

    Linux配置PXE启动WinPE环境

     

    3.启动各服务

    #service dhcpd restart

    #service xinetd restart

     

    .创建BCD启动文件(摘自微软官方)

     

    在此步骤中,将使用 BCDEdit 工具创建 BCD 存储。BCDEdit 工具只能在 Windows7 计算机或 Windows PE 环境中运行。BCDEdit 工具位于 WindowsSystem32 目录中。

    1. Windows® 7 计算机或 Windows PE 环境中,使用 BCDEdit 工具创建一个 BCD 存储。例如,

    Bcdedit -createstore c:BCD

    例如,

    Bcdedit -store c:BCD -create {ramdiskoptions} /d "Ramdisk options"

    Bcdedit -store c:BCD -set {ramdiskoptions} ramdisksdidevice boot

    Bcdedit -store c:BCD -set {ramdiskoptions} ramdisksdipath bootboot.sdi

    3.(可选)创建内核调试程序设置。例如,

    Bcdedit -store c:BCD -create {dbgsettings} /d "Debugger settings"

    Bcdedit -store c:BCD -set {dbgsettings} debugtype serial

    Bcdedit -store c:BCD -set {dbgsettings} baudrate 115200

    Bcdedit -store c:BCD -set {dbgsettings} debugport 1

    4. Windows PE 映射创建 OSLoader 设置。例如,

    Bcdedit -store c:BCD -create /d "MyWinPE Boot Image" /application osloader 如果 s 命令成功,则计算机将返回 GUID 值。下列示例将此值指代为 guid1。

    Bcdedit -store c:BCD -set {guid1} systemroot Windows

    Bcdedit -store c:BCD -set {guid1} detecthal Yes

    Bcdedit -store c:BCD -set {guid1} winpe Yes

    Bcdedit -store c:BCD -set {guid1} osdevice ramdisk=[boot]Bootboot.wim,{ramdiskoptions}

    Bcdedit -store c:BCD -set {guid1} device ramdisk=[boot]Bootboot.wim,{ramdiskoptions}

    5.创建 BOOTMGR 设置。例如,

    Bcdedit -store c:BCD -create {bootmgr} /d "Windows BootManager" /inherit {dbgsettings}

    Bcdedit -store c:BCD -set {bootmgr} timeout 30

    Bcdedit -store c:BCD -displayorder {guid1} {guid2}

    其中,guid1、guid2 等等是每个 .wim 文件条目对应的 GUIDS。

     

    我所使用的BCDEDIT命令如下:我把创建出来的BCD文件保存在D:BCD这个目录下。

    bcdedit /createstore d:BCDBCD
    bcdedit /store D:BCDBCD /create {ramdiskoptions} /d "Ramdisk options"
    bcdedit /store D:BCDBCD /set {ramdiskoptions} ramdisksdidevice boot
    bcdedit /store D:BCDBCD /set {ramdiskoptions} ramdisksdipath Bootboot.sdi
    bcdedit /store D:BCDBCD /create /d "WinPE 3.0 32bit" /application osloader 得到ID

     

    set id={ac1ab259-21dd-11e0-aee8-b8ac6fc4f993} 例如是这个ID

    bcdedit /store D:BCDBCD /set %id% systemroot windows
    bcdedit /store D:BCDBCD /set %id% detecthal Yes
    bcdedit /store D:BCDBCD /set %id% winpe Yes
    bcdedit /store D:BCDBCD /set %id% osdevice ramdisk=[boot]Bootboot32.wim,{ramdiskoptions}
    bcdedit /store D:BCDBCD /set %id% device ramdisk=[boot]Bootboot32.wim,{ramdiskoptions}