编写制作 Linux 启动盘的 shell 脚本程序
一、实验目的
通过编写 Linux shell 脚本启动程序,了解 Linux 系统的引导启动过程。
二、实验内容
应用所学的 shell 脚本编程技术编写一个制作 boot 盘和 root 盘的 shell 脚本。
当遇到硬盘启动故障时,我们经常会使用软盘启动系统来检测故障原因。根据我们了解
了 Linux 系统的引导启动过程。Linux 启动盘正是在软盘上包括了启动过程中所需的一些基
本文件,实现如同从完整的硬盘启动的功能。启动盘并非仅仅包括启动时必需的内核映像,
它一般还包括基本的系统文件及一些工具程序。根据其功能我们通常将它们分为四种类型:
l boot
盘
包括能用于启动的内核映像的软盘。我们可以用它引导内核并从其它盘上
加载根文件系统。在 boot 盘中的内核必须被告知从哪里寻找并加载根文件系统。
通常我们从另一张软盘上加载根文件系统,当 然也能配置成加载硬盘上的根文件系
统。我们可以使用这一方法测试新的内核,在内核源代码目录使用“make zdisk”
便能自动生产这样的 boot 盘。
l root
盘
包括运行 Linux 系统所必需的文件的软盘。它用于在内核引导完成后被加
载为系统的根文件系统。 root 盘通常会被复制到 ramdisk(在内存中模拟的磁盘)
中以加快读写速度。
l boot/root
盘
既包括内核又包括根文件系统的软盘。它包含了引导和运行 Linux 系
统必需的文件。但随者内核越来越大,将 这 些必需的文件压缩在一张软盘中也越发
困难了。
l utility
盘
包含一个文件系统的软盘,但此文件系统不像 root 盘被用于加载为根文
件系统。它只是个附加的数据盘,用于保存一些工具程序等。
下面大致分析一下root盘和boot盘的手工制作步骤,详细关于制作启动盘的技术可以参考The
Linux Bootdisk HOWTO文件。
1. root 盘制作步骤
根文件系统包括运行 Linux 系统必需的每个文件。通常以下是必须包括的最低要求:
l 基本文件系统结构(The basic file system structure)
l 必需的目录: /dev, /proc, /bin, /etc, /lib, /usr, /tmp
l 基本的工具命令: sh, ls, cp, mv, 等
l 必需的系统配置文件: rc, inittab, fstab,等
l 必要的设备文件: /dev/hd*, /dev/tty*, /dev/fd0, 等
l 运行基本命令所需的运行库文件(Runtime library)
因此,通常制作 root 盘需要先在系统中建立一个文件系统并复制以上所列的必需文件、
改写配置文件,最后使用 dd 命令写入软盘。具体实现见后面的 shell 脚本。
2. boot 盘制作步骤
我们在此将不使用lilo引导,制作root盘首先将内核映像写到软盘上并指定从软盘加载根
文件系统和根文件系统为可读写。最后使用rdev命令写入内核映像中的ramdisk字。ramdisk
字用于指定从哪里能寻找根文件系统及ramdisk选项。其结构如表2-7所示:
评论1