分页: 1 / 1

《NetBSD指南-33.1.为你的平台创建定制的安装或启动软盘(例如i386)》

发表于 : 2010-03-08 4:01
leo
有时你想为i386系统创建自己的启动或安装软盘而不是预编译好的, 精简NetBSD系统构建的软盘。本小节简要介绍一下步骤。
总的思路是让一个文件系统带有一些工具(sysinst, ls, 不管是什么), 然后将这个系统作为某种类型的ramdisk嵌入到NetBSD内核。这个内核需要包含 md 伪设备以便可以装载一个ramdisk。然后这个带有ramdisk的内核可以被放进一个可移动介质或通过网络启动(使用NFS或TFTP)。


要执行下列步骤, 你需要运行一个启用了vnd 伪设备的内核 (GENERIC内核默认已经启用)。
  1. 首先, 你必须生成一个能放进软盘的内核, 例如INSTALL. 这个内核必须包含 md 伪设备, 这样才能允许嵌入一个ramdisk. 参 Chapter 31, 编译内核 以了解内核构建说明。
  2. 下一步是创建可嵌入内核的ramdisk。这个ramdisk包含了一个文件系统及一些所需工具, 通常 init(8) 和一些工具,像 sysinst, ls(1)等。要创建一个标准的ramdisk, 在 src/distrib/i386/ramdisks/ramdisk-big 目录内(对NetBSD 3.x来说是: src/distrib/i386/floppies/ramdisk-big)运行 make.
    这将会在目录内产生一个 ramdisk.fs 文件。如果你想定制这个文件系统的内容, 设置 list 文件。
  3. 现在, 已经插入到内核中, 生成一个包含这个ramdisk的新内核, 所有的全在一个文件里。步骤是, 进入 src/distrib/i386/instkernel 目录 (对NetBSD 3.x: src/distrib/i386/floppies/instkernel) 然后运行 make.
  4. 下一步是制作一个或多个软盘镜像, 要根据内核的大小(包括ramdisk)。进入 /usr/src/distrib/i386/floppies/bootfloppy-big, 然后再一次运行 make
    这将生成一或二(根据内核的大小) 个文件,被命名为boot1.fs 和 boot2.fs
  5. 最后, 用下列命令将我呢间传送到软盘上

    代码: 全选

    # dd if=boot1.fs of=/dev/fd0a bs=36b
    # dd if=boot2.fs of=/dev/fd0a bs=36b
  6. 将第一块软盘放入软驱并开机!