制作一张最小系统的gentoo安装光盘

gentoo有一个mini CD, 用他启动,配置好网络,就可以安装系统了。

但是我考虑一个问题,如果我没有网络,怎么安装系统呢?

有人会说,你可以使用live CD啊,但是我又讨厌live CD那样傻瓜式的安装,而且他不给用户选择的空间。

在x86外,universal CD提供我们想要的安装方式,但是2006.0版本的x86不带universal CD喽,只能自己做一个。

下面是我制作的安装cd的说明,

介绍了光盘中都包含了哪些文件包,以及如何安装一个最小系统。

install-x86-minimal-2006.0-stage-portage.iso说明

此iso文件是在官方mini CD的基础上加入了几个包,目的是为了减少网上下载。
用此光盘引导启动后,可以按着gentoo安装向导,从网上下载所需要的包来安装。

stage:3个阶段的stage文件

portage:portage文件

make:GNU 的3.80版的make包

parted:一个附带的分区工具,能对现有分区进行分割,而不破坏现有文件。

lynx: 一个文本模式下的浏览器,浏览下载资源

grub: 启动管理器

vim:文本编辑器

kerlel: 2.4和2.6目前最稳定的内核版本。
2.4.32和2.6.15是gentoo增强内核,需要打些补丁。
2.4.33.1和2.6.17.9是通用内核。


有了这些文件包,可以安装一个干净的linux系统,
(真的非常干净,只有一个系统和常用工具,不带任何软件)

下面介绍安装步骤:
一. 光盘引导启动
二. 准备网络环境,和分区。
由于我们有了安装最小环境的所有包,所以可以不配置网络
三. 安装stage3包。
注:我个人的观点,stage1和stage2用来安装c库和系统环境,
并没有给用户带来多大的安装自由度,所以从stage3开始安装。
并且stage3自带了make,wget等常用工具,非常方便。
四. 安装portage包(可选)
安装portage的目的是为了以后扩展软件用。
五. chroot到/mnt/gentoo根目录
六. 安装内核源代码包到/usr/src目录,并建立连接ln -s linux-xxx-rx linux
注:可以安装generic的内核,也可以安装gentoo加强过的内核。
gentoo的内核需要打补丁,步骤请见kernel目录下的readme.txt文件。
七. 编译内核,make menuconfig,make,make modules_install
八. 安装内核到/boot,拷贝arch/i386/boot目录下的bzimage文件到/boot目录
九. 配置系统,/etc/fstab,/etc/conf.d/net,/etc/rc.conf
十. 安装grub
安装完后,拷贝lib/grub/i386到/boot目录下,并改名为grub
#grub --no-floppy 启动grub不检测软驱
#grub>root (hd0,0) 切换到/boot所在的分区,也就是grub目录所在的分区
#grub>setup(hd0) 安装grub到hd0的mbr中,安装位置可以酌情处理
#grub>quit
十一.配置grub的启动菜单
在/boot/grub中新建一个menu.lst文件(也可以从其他机器拷贝一个过来),格式如下:
default 0
timeout 10
splashimage=(hd0,0)/grub/splash.xpm.gz
title=Gentoo Linux 2.4.26-r6
root (hd0,0)
kernel /kernel-2.4.26-gentoo-r6 root=/dev/hda3
title=Windows XP
rootnoverify (hd0,5)
chainloader +1
十二.安装vim、lynx软件(可选)
十三.重启系统。

注:这个办法,仅可以在不上网的条件下安装一个最小化的gentoo
如果想有太多应用,还得安装其他软件包。

 

上面是很简单的步骤,每一步的详细过程,我没有写,如果你是一个熟手,你应该知道怎么做;如果是一个新手,就得再查查相关文挡了。再说一句,其实我这个办法是不适合新手的。

从上面的步骤看,最复杂的是内核编译那一块,怎么才能找到gentoo的内核文件呢。

通过在现有gentoo系统的portage的研究,在files目录下的digest文件中包含了相关信息。

原来,gentoo的内核,是在通用内核上面打补丁,想用哪种,就找对应的通用内核以及gentoo补丁。

我又整理了一个文件来说明,如何给通用内核打gentoo的补丁包,不好意思,下面整理成了英文,凑活看吧,还是很简单的。

This directory includes some kernel source packages:

generic  kernel sources:

1. linux-2.4.33.1.tar.bz2
2. linux-2.6.17.9.tar.gz
3. linux-2.6.17.9.tar.gz.sign
4. patch-2.4.33.1.bz2
5. patch-2.6.17.9.bz2

 

gentoo kernel sources:

1. linux-2.4.33.tar.bz2
2. linux-2.6.15.tar.bz2
3. genpatches-2.6.15-10.base.tar.bz2
4. genpatches-2.6.15-10.extras.tar.bz2
5. linux-2.4.32.tar.bz2
6. gentoo-sources-2.4.32-r7.tar.bz2

 

how to make a gentoo kernel?

1.how to make a gentoo 2.4.32-r7 kernel
 unpack the linux-2.4.32.tar.bz2
 cd linux-2.4.32
 tar xjf gentoo-sources-2.4.32-r7.tar.bz2
 ./do_patch.sh genpatchxxx(the name of the dirctory you get from last command)
 make menuconfig
 make dep
 make bzImage modules modules_install
then,you will find the new kernel file in arch/i386/boot,named bzImage.

2. how to make a gentoo 2.6.15-r8 kernel
 unpack the linux-2.6.15.tar.bz2
 cd linux-2.6.15
 tar xjf genpatches-2.6.15-10.base.tar.bz2
 tar xjf genpatches-2.6.15-10.extras.tar.bz2
 ./do_patch.sh 2.6.15(the name of the dirctory you get from last command)
 make menuconfig
 make
 make modules_install

 

在上面打补丁时,发现,哇塞,有几百个补丁,总不能一个一个打吧,我又写了一个脚本,自动打补丁,内容如下:

这个脚本不仅包含了打补丁的脚本,还包括了如何来做的步骤。请仔细看。

#!/bin/sh

#This is a script file to help patch all the patch files
#The follow is the step install the patches.

#1. you must copy the patch tar file to linux-xxx dirctory.

#2. unpack the patch files
# tar xjf genpatch-xxx.tar.bz2
#you will get one directory.

#3. you need to copy this script to the linux-xxx directory,
# cp do_patch.sh /usr/src/linux-xxx

#4. run it.pls give one args,is the name of the dirctory you get.
# ./do_patch.sh genpatchxxx
#it will help patch all.

for file in $(ls $1/*.patch); do
patch -p1 < $file &
sleep 1
done
exit 0

最后,我制作了一个大约400兆的iso文件,经过测试,安装一个最基本的linux一点儿问题都没有。

其实这个文件没必要这么大,因为我放了好几种内核文件在里面。

如果只要一个内核的话,估计也就200多兆。

如果你想要这个文件,可以给我留言,400兆,想办法给你发过去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值