在initrd里面指定debian安装程序作为内核参数

我正在使用PXE和USB设置安装程序,并且工作正常,但是我需要在启动菜单中添加一些不同的选项以使用不同的预定义文件。 这是针对不同的情况,比如是否设置软件RAID,以及多less个磁盘等。

因此,理想情况下,我想滚动一个包含多个预先选定文件的initrd映像,并指定在内核参数中使用哪一个映像,详见手册 。 但是,这是行不通的。 看来不pipe我如何指定preseed / file =,安装程序只会查找/preseed.cfg。

下面是我的pxelinux.cfg / default文件的一个例子(syslinux也有一个类似的configuration):

DISPLAY boot.txt DEFAULT install_raid_1disk LABEL install_raid_1disk kernel installer/2b/linux append vga=normal initrd=/installer/2b/initrd.gz preseed/file=/preseed-net-raid-1disk.cfg -- LABEL install_raid_2disks kernel installer/2b/linux append vga=normal initrd=/installer/2b/initrd.gz preseed/file=/preseed-net-raid-2disks.cfg -- LABEL install_noraid kernel installer/2b/linux append vga=normal initrd=/installer/2b/initrd.gz preseed/file=/preseed-net-noraid.cfg -- PROMPT 1 TIMEOUT 20 

Zoredache的build议非常有趣。 我会先尝试一下。 如果它不起作用,我会build议为每个preseed创build一个initrd。 将预先select的文件放在initrd的根目录下。

  1. 从initrd提取文件:

    $ mkdir / tmp / 1; cd / tmp / 1; cat /boot/initrd.gz | gzip -d | cpio -i

  2. 将preseed文件复制到initrd的根目录:

    $ cp preseed.cfg。

  3. 重新创buildinitrd:

    $ find | cpio -o –format = newc | gzip -9c> ../initrd-custom1.gz

重复每个预先选定的文件的步骤…

如果它们都是cpio文件,则可以使用多个initrd文件。 这种方式工作(取决于引导装载程序)是你有股票安装程序的initrd文件,这是一个cpio和第二个initrd只包括存储在一个cpio风格initrd中按下的文件。 在启动时加载两个initrd文件。 这使您可以独立更新库存initrd和预先select的initrd,并且可以从引导加载程序的菜单中select多个版本。