当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 动手制做自己的Linux启动盘(1)

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 动手制做自己的Linux启动盘(1)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 55 ::
收藏到网摘: n/a

       动手制做自己的Linux启动盘(1)
  · 闫建勇·CPCW
  
  凡是接触计算机久的朋友肯定都使用过DOS启动软盘,至于启动软盘的重要性大家肯定也都清楚。在Linux底下启动软盘同样重要,它不仅能测试新内核、恢复系统错误,而且能升级重要的系统文件。但是在Linux下制做启动盘不象在DOS下那么容易,下面我就一步一步的教大家制做自己系统的启动软盘。
  
  
  1. Linux启动过程简介
  
  一个启动盘实际上是一个完整系统的缩影,它能够执行一个完整系统的大部分功能。因此,如果想制做Linux启动盘,你必须了解Linux系统启动的基本过程。接下来我就先简要介绍一下Linux的启动过程。
  
  所有的PC机都是通过执行ROM中的代码加载启动盘的0柱面0扇区中的代码来启动整个系统。在Linux系统中启动盘的0柱面0扇区中含有的是启动装载器LILO,它定位内核,装载它,最后执行它。一旦内核装载后,它先是进行基本设备初始化,接着试图加载并登陆磁盘中根文件系统,如果内核找不到可装载的根文件系统,启动过程会就此停止。如果根文件系统装载完毕并登陆成功后,你会看到一行信息:
  
  VFS: Mounted root (ext2 filesystem) readonly.
  
  之后,系统发现init程序并执行它,init程序寻找它的配置文件/etc/inittab,并开始执行其中的脚本,这些脚本是一些SHELL命令的组合,用来执行如下命令,如加载所需模块、装载SWAP、初始化网络、装载fstab中列出的所有驱动器等。最后启动一个叫getty的程序,它负责console和ttys之间的通信,它在显示器上打印login提示符并激活login程序,login处理登陆的有效性并建立与用户的对话。至此,启动过程完毕。
  
  
  2. 制做启动盘
  
  创建一个启动盘首先必须创建根文件系统,由于软盘容量有限,因此常采用压缩的根文件系统。下面我就详细的介绍怎样创建压缩格式根文件系统。
  
  2.1 准备
  
  一个根文件系统必须包括支持完整Linux系统的全部东西,因此,它至少应包括以下几项:
  
  ?基本文件系统结构
  
  ?至少含有以下目录:/dev, /proc, /bin, /etc, /lib, /usr, /tmp
  
  ?最基本的应用程序,如sh, ls, cp, mv等
  
  ?最低限度的配置文件,如rc, inittab, fstab等
  
  ?设备:/dev/hd*, /dev/tty*, /dev/fd0
  
  ?基本程序运行所需的库函数
  
  由于以上所需文件远超过1.44M,因此我们通常的做法是先准备好内容后再压缩到软盘中,当用软盘启动时,再把文件解压到内存中,形成一个虚拟盘(RAMDISK),通过RAMDISK控制系统启动。
  
  为了能创建以上的根文件系统,你必须有一个空闲的能够放下大约4M文件的RAMDISK。
  
  如果你使用LILO控制启动,先检查一下LILO的配置文件/etc/lilo.conf中定义的RAMDISK的大小。/etc/lilo.conf 中有一行
  
  RAMDISK_SIZE = nnn
  
  它决定RAMDISK可使用的最大内存为nnn,缺省情况下为4096K,对我们来说够了,但是顺便说一下,如果你的系统只有8M内存,千万不要使用4M的RAMDISK。再检查一下你的系统设备中是否有一个叫/dev/ram0或/dev/ram的设备,这是RAMDISK的设备名,如果没有,用命令mknod创建一个设备/dev/ram0。
  
  2.2 创建根文件系统
  
  Linux内核识别两种可以直接拷贝到RAMDISK的文件系统,它们是minix 和ext2,ext2性能更好。如果你使用ext2,你会发现使用-i选项定义比缺省更多的信息节点非常有用。mke2fs缺省情况下在1.44M的软盘上产生360个信息节点,使用压缩格式的根文件系统需要更多的信息节点,所以使用如下命令创建文件系统可以创建2000个信息节点,一般不会用光:
  
  mke2fs -m 0 -i 2000 /dev/ram0
  
  mke2fs将会自动判断设备容量的大小并相应的配置自身,-m 0参数防止它给root保留空间,这样会腾出更多的有用空间。接着把虚拟盘挂在节点/mnt上:
  
  mount -t ext2 /dev/ram0 /mnt
  
  如果没有节点/mnt,建一个。
  
  接着是创建目录。根文件系统最少应该有如下8个目录:
  
  /dev ? 设备
  
  /proc -- proc 文件系统所需目录
  
  /e