如何通过chroot构建Linux操作系统 (1)

发表于:2007-05-26来源:作者:点击数: 标签:
在已有的 Linux 操作系统中,安装另一个 开源 操作系统,我们一般是先构建新操作系统的chroot基础环境,然后chroot进入新构建的操作系统环境来安装和配置。这种构建和安装操作系统的方法,对于我们学习和研究操作系统结构和原理应该说比较重要。本文举了简单

在已有的Linux操作系统中,安装另一个开源操作系统,我们一般是先构建新操作系统的chroot基础环境,然后chroot进入新构建的操作系统环境来安装和配置。这种构建和安装操作系统的方法,对于我们学习和研究操作系统结构和原理应该说比较重要。本文举了简单的例子,以Fedora Core 5.0 为基础,通过chroot来构建Slackware 10.2;

  1、chroot方式安装操作系统的目的和用途

  chroot 工具是Linux操作系统都具备的工具,从表面的意思看,chroot 是从一个/根到另一个/根。在一个Linux操作系统中安装另一个操作系统,就是利用chroot的这个特点。首先创建chroot运行的基础环境,然后通过chroot到新的/根,然后再用相应的软件包管理工具把新的操作系统其它软件包安装上;

  几乎所有的开源操作系统都可以用chroot的方法来安装,比如Gentoo 、LFS及CRUX比较常用chroot;通过chroot安装操作系统,好象堆积木一样,一块一块的把操作系统安装起来,所以Gentoo和LFS的 Fans特别有成就感。呵,也说是操作系统全手工打造,成就感自然不言而喻了;

  通过chroot安装操作系统,我们能学到什么呢?主要是能知道一个操作系统最少需要多少部件可以“动”起来,以及了解一个操作系统需要哪些基础的必备的“部件”,这对开发自己的基于Linux操作系统以及了解操作系统的构成及原理是比较重要的;

  2、通过chroot 方式安装操作系统所需要的系统环境

  最根本的环境是是在您的机器有得有一个能运行的Linux操作系统或一个LiveCD;

  3、通过chroot 安装操作系统的流程

  要下面几个流程:

  一、规划硬盘分区或创建映像文件;请参考:
《实例解说 fdisk 使用方法》
  二、创建文件系统;《存储设备分区操作及文件系统管理概述》
  三、挂载文件系统;《Linux 创建文件系统及挂载文件系统流程详解》
  四、安装基础系统;主要通过解压软件包来实现;
  五、修改新系统的配置文件,比如 位于新系统中的/etc/fstab
  六、解决依赖关系,安装软件包管理工具;
  七、通过chroot进入新系统;
  八、通过新系统的软件包我管理工具来安装其它软件包;
  九、处理引导问题,比如GRUB引导之类的;
《系统引导管理器GRUB,为初学者指南》

  4、操作系统安装安装目的地的介质说明;

  一个操作系统可以安装在物理硬盘中,也可以安装在一个映像文件中;安装在物理硬盘中大家都能理解。安装在一个映像文件中怎么理解呢?比如通过 VMWARE来虚拟安装操作系统是不是安装在一个文件中呢?是的,和这个意思差不多; 再说一点,交换分区swap 也可以是文件;再比如Xen虚拟操作系统就可以安装在文件映像中;

  安装在映像文件中的操作系统,可以用来学习,通过chroot访问,也可以通过xen来虚拟等 ... ... 还可以做成类似file.iso的形式来存储文件等;

5、实说简说在Fedora 中安装Slackware 10.2;

  本例是在Fedora Core 5.0 中通过chroot 安装Slackware 10.2,安装目的地的介质分为两种,一种是物理硬盘;一种是映像文件。安装在物理硬盘的可以通过GRUB或LILO等引导管理器来独立真实运行,安装在映像文件中的能通过chroot访问或Xen虚拟运行;

  5.1 通过chroot 安装Slackware 10.2 到一个硬盘物理分区中;

  这个过程好象是有点多余,但写一写也好,这是大多开源操作系统的安装都通用的,也是最原始、最有效的方法,也就是说在一个已有的操作系统环境中安装另一个操作系统;

  首先:您得懂的规划您的分区,请参考:《实例解说 fdisk 使用方法》
  其次:您还要知道如何创建文件系统,请参考:《存储设备分区操作及文件系统管理概述》
  第三:您要知道如何挂载一个文件系统;请参考:《Linux 创建文件系统及挂载文件系统流程详解》

  挂载文件系统就是通过mount 来挂载;

  举例:

  比如我的硬盘/dev/hda5是空白分区,并且我想创建/dev/hda5为ext3文件系统,并且把它挂载到 /mnt/slack目录中,然后通过chroot来安装Slackware 10.2;

  第一步:您要通过分区工具fdisk 或parted来规划您的分区,此步省略;

  请参考:《实例解说 fdisk 使用方法》


  第二步:创建文件系统;

[root@localhost ~]#mkdir /mnt/slack
[root@localhost ~]# mkfs.ext3 /dev/hda5 注:格式化/dev/hda5为ext3文件系统;



  第三步:挂载文件系统;

  [root@localhost ~]# mount /dev/hda5 /mnt/slack 注:挂载/dev/hda5到 /mnt/slack目录;

原文转自:http://www.ltesting.net