Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109105
  • 博文数量: 55
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-13 10:59
文章分类
文章存档

2011年(1)

2009年(37)

2008年(17)

我的朋友

分类: LINUX

2009-03-06 09:30:17

我也来白话白话
Gentoo是一个快速和现代化的元发行版,拥有简洁灵活的设计理念。Gentoo基于自由软件构建,它不会对用户隐瞒任何底层细节。Portage是Gentoo使用的软件包管理系统,由于它是使用Python语言编写的,因此你可以轻松地查看和修改源代码。Gentoo的软件包系统使用的是源代码(尽管也包含对预编译的软件包的支持),配置Gentoo使用的也都是标准的文本文件。换句话说就是,开放无处不在。 希望您能明白的一点是Gentoo的根本在于选择,这一点非常重要。
    
         最小光盘        LiveCD
CPU     i486或更新     i686或更新
内存      64MB            256MB
硬盘空间     1.5GB(不包括交换分区)
交换分区     至少256MB

我相信都满足吧

Gentoo安装光盘是可启动的光盘,它含有一个完整的Gentoo环境,允许你从光盘启动Linux。在启动过程中,它们会自动检测你的硬件并加载相应的驱动程序。这些光盘是由Gentoo开发者维护的。

所有的安装光盘都允许你启动、设置网络、初始化硬盘分区和从因特网上开始安装Gentoo。我们目前提供两种安装光盘,它们都同样适合安装Gentoo,只要你想通过网络安装并使用最新的软件包。
    *   Gentoo最小安装光盘,一个小而精简的可启动光盘,它只能引导系统,准备网络和进行Gentoo的安装。
    * Gentoo安装程序LiveCD包含了你安装Gentoo所需要的一切东西。它提供了一个图形化的环境,包括能够自动进行安装的图形界面程序和文本界面程序,当然,还有针对你的硬件构架的安装指南。(没啥说的,完全傻瓜式的)

这个最小安装光盘名叫install-x86-minimal-2008.0.iso。大小只有57MB。你可以用它安装Gentoo,但是只能用于有网络的环境。
这个安装程序LiveCD名叫livecd-i686-installer-2008.0-r1.iso,大小为655MB。你可以用它来安装Gentoo,即使在是无网络的环境中也可以。

stage3是一个含有最小Gentoo环境的压缩包,适合按照手册继续安装Gentoo。


在这里我略去了光盘安装的方式,完全用 最小化安装方式来完成。

下面提供了一些启动时的内核选项。
硬件选项:

acpi=on
    加载对ACPI的支持,在启动光盘的同时启动acpid后台程序。这个选项只有 在你的系统需要ACPI才能正常运行的情况下才需要。启用超线程的支持 这个选项不是必需的。
acpi=off
    完全关闭ACPI。这在一些比较老的系统上有用,同时也是使用高级电源管 理(APM)的必要选项。这也将关闭对你的处理器的超线程的支持。
console=X
    这个选项可以设置光盘的串口访问。第一个选项是设备,在x86上通常为 ttyS0,后面可以跟其他选项并用逗号分隔。默认选项为9600,8,n,1。
dmraid=X
    这个选项用于向设备映射器RAID子系统传递参数。传递的参数必须包含 在引号内。
doapm
    这个选项加载高级电源管理(APM)驱动支持。这需要你同时使用acpi=off 选项。
dopcmcia
    这个选项加载了对PCMCIA和Cardbus硬件的支持,也使得pcmcia卡的 cardmgr能够在光盘启动的时候运行起来。这个选项只有在从 PCMCIA/Cardbus设备启动的时候才需要。
doscsi
    这个选项加载对大部分SCSI控制器的支持。在大多数USB设备启动的时候 也需要这个选项,因为USB设备使用内核中的SCSI子系统。
sda=stroke
    这个选项允许你对整个硬盘进行分区,即使你的BIOS不能处理大硬盘。 此选项仅使用在使用旧BIOS的机器上。使用时把sda替换为需要这个选项 的设备。
ide=nodma
    此选项强制关闭内核中的DMA,一些IDE和CDROM驱动需要这个选项。如果 你的系统在读取IDE接口的光驱的时候遇到麻烦,可以尝试一下此选项。 此选项同时也将关闭hdparm的默认设置。
noapic
    此选项关闭了在一些新主板上存在的高级可编程中断控制器。它在一些旧 的硬件上会引发一些问题。
nodetect
    此选项降会关闭光盘会做的所有自动检测,包括设备检测和DHCP探测。这 在调试有问题的光盘或驱动的时候有用。
nodhcp
    此选项将禁止在检测到的网卡上进行DHCP探测。这对仅有静态地址的网络 很有用。
nodmraid
    关闭了设备映射RAID的支持,例如用于板载IDE/SATA RAID的控制器。
nofirewire
    此选项关闭了Firewire模块加载。这个选项只有在你的Firewire硬件导致 光盘启动出现问题的时候才需要。
nogpm
    此选项关闭了gpm控制台鼠标支持。
nohotplug
    此选项关闭启动时对热插拔(hotplug)和冷插拔(coldplug)启动脚本的加 载。这个选项在调试失败的光盘和驱动的时候有用。
nokeymap
    此选项禁止了键盘布局选择。
nolapic
    此选项关闭了在单处理器内核上的本地APIC。
nosata
    此选项关闭了对串行ATA(SATA)模块的加载。当你的系统的SATA子系统有 问题的时候,此选项有用。
nosmp
    此选项关闭了在支持SMP(对称式多处理)的内核中的SMP功能。这个选项用 于调试在特定的驱动和主板上与SMP相关的问题。
nosound
    此选项关闭了声音支持和音量的设置。这个选项在声音支持出现问题的系 统上有用。
nousb
    此选项关闭了USB模块的自动加载。这个选项在调试USB问题时有用。
slowusb
    这个选项在启动过程中增加一些额外的暂停,主要是为了一些慢速USB CDROM,例如IBM BladeCenter的。

卷/设备管理:

doevms
    此选项打开了对IBM的可插拔EVMS(企业卷管理系统)的支持。这个选项与 lvm同时使用并不安全。
dolvm
    此选项打开对Linux逻辑卷管理(lvm2)的支持。这个选项与evms同时使用 并不安全。

其他选项:

debug
    启用调试代码。这个选项会在屏幕上显示很多数据,可能会很凌乱。
docache
    此选项把光盘中整个运行部分缓存到内存中,你就可以umount /mnt/cdrom 然后mount另一个CDROM。此选项要求你至少有两倍于CDROM的可用内存。
doload=X
    此选项使得初始内存盘加载任何列出的及其依赖的模块。把X替换成模 块名称。多个模块可以用一个逗号分隔的列表来指定。
dosshd
    启动sshd,对于无人职守安装有用
passwd=foo
    将foo设置为root用户密码;若使用dosshd必须使用此选项,否则我们会 将root密码设为随机值。
noload=X
    此选项使得初始内存盘跳过那些指定的可能引起问题的模块。语法同 doload。
nonfs
    启动是不启动portmap/nfsmount。
nox
    此选项使得一个支持X的LiveCD不自动启动X,而是启动到命令行模式。
scandelay
    此选项使光盘在启动过程的特定部分暂停10秒,以允许那些初始化比较慢的 设备能够被使用。
scandelay=X
    此选项允许你在启动过程的特定部分指定暂停指定的秒数,以允许那些 初始化比较慢的设备能够被使用。把X替换成暂停的秒数。

注意: 本CD将会先检查“no*”选项,然后再检查“do*”选项,所以你可以以你指定的顺序来覆盖任意选项。

有些在其它发行版也适用哦。


下面,我们开始办正事。呵呵
把ISO挂到虚拟机里面,在 boot: 后输入  gentoo dopcmcia

然后你看到一个启动画面和一个进度条。如果你正在把Gentoo安装到一个使用非US键盘的电脑中,你必须立刻按下Alt-F1键切换到冗长模式下,然后按提示信息来做。如果10秒钟内没有选择,系统会以默认的键盘布局(US键盘)继续启动过程。一旦启动完成,你将会自动以“root”超级用户身份登录这个“Live” Gentoo Linux。在当前终端里你将会有个root提示符(#),你可以通过按Alt-F2、Alt-F3和Alt-F4切换到其他的终端,按Alt-F1回到你开始的那个终端。


当安装光盘启动时,它会尝试检测所有的硬件设备和加载准确的内核模块来支持这些硬件。绝大多数情况下,它会做的很好。但是,有些情况下,它可能没有自动加载你需要的内核模块。如果PCI自动检测错过了你系统里的一些硬件,你需要手动为它们加载相应的内核模块。
类似以下的例子
加载8139too模块(支持某种网卡):
# modprobe 8139too


下面我打开SSH 服务,省得老在虚拟机窗口里转来转去,之前先设个密码呗。
passwd
输入两次即可
/etc/init.d/sshd start 即可
再看你的IP 是多少(在能自动获取IP地址的情况下)
ifconfig eth0

完后 PING 一个网关,瞧通不通

其它 的例如  代理 丶ppp丶无线等方式连接网络,请看
下面我们进行分区
之前给虚拟机划分空间的时候不要太小哦,例如2G,3G,都不行,我试过,到中间的时候会报空间不够等错误。所以我分了6G。目前还没有出现^_^

fdisk /dev/sda

我的分区如下。
max ~ # fdisk -l

Disk /dev/sda: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x44509001

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           3       24066   83  Linux
/dev/sda2               4          35      257040   82  Linux swap / Solaris
/dev/sda3              36         783     6008310   83  Linux
max ~ #

创建并激活交换分区
mkswap /dev/sda2
swapon /dev/sda2

再格式化成文件系统,我就选常见的  ext3 格式。别的 XFS丶JFS 等,我是不常用,所以就……


下面三行命令就不用我讲了。
#mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot
# cd /mnt/gentoo
解压  两个包   portage-20090224.tar.bz2    stage3-i686-2008.0.tar.bz2
tar xvpjf stage3-i686-2008.0.tar.bz2
tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

配置编译选项
Portage为你提供了永久保存你的变量 的文件   /etc/make.conf,一个Portage的配置文件。这就是我们现在要编辑的文件。

打开/etc/make.conf
# nano -w /mnt/gentoo/etc/make.conf

这个时候 还没有VI 所以就只有用 nano 不过新使用这个工具有点麻烦一些,用惯 VI 的一开始 会不习惯的。
其中  F3 是用来保存的,F2 是退出的。唉,其实还是很简单的,只是不习惯而己。

CHOST

CHOST变量声明了你的系统的target、build和host(译注: target定义了编译出的工具链产生的代码将运行的系统类型,只在编译工具链时有意义;build定义了本机系统类型;host定义了编译出的软件将运行的系统类型)。这个变量应该已经被设置为正确的值了。不要编辑它,这可能会毁坏你的系统。如果CHOST变量看起来是不正确的,你也许使用了错误的stage3 tarball。

白话白话
CFLAGS和CXXFLAGS

CFLAGS和CXXFLAGS变量分别定义了gcc C和C++编译器的优化标记。尽管我们通常都在这里定义,你也可以对每个软件单独定义这些优化标记以获得最好的性能。因为每个程序都是不同的。

在make.conf里你应该定义一些你认为可以使系统在一般情况下快速响应的优化标记。

这些默认的都行,我也就在后面加了MAKEOPTS="-j2"而已

MAKEOPTS

通过使用MAKEOPTS你可以定义在安装软件的时候同时可以产生并行编译的数目。你的CPU数目加一是个不错的选择,但是这个准则并不永远都是完美的。


下面,就是chroot 的时候了(进入环境开始安装基本的系统喽)。

为了快速下载源代码,建议你选择一个速度快的境像站点。Portage将在make.conf中查找并使用GENTOO_MIRRORS变量定义的境像列表。你也可以浏览我们的镜像列表来寻找一个或者多个离你最近的镜像(通常它们是最快的),不过我们提供了一个不错的工具来帮助你选择境像,它叫mirrorselect。

使用mirrorselect更新GENTOO_MIRRORS变量
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
另一个重要的设置就是make.conf里的SYNC设置。这个变量包含你更新Portage树(Portage下载和安装软件时需要用到的ebuild和脚本等信息的集合)时用到的rsync服务器信息。虽然你可以手动输入一个SYNC服务器地址,不过还是让mirrorselect来帮你完成更加的方便:

使用mirrorselect选择rsync镜像站点
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

拷贝DNS信息

在我们进入新环境之前,还有一件事需要完成,那就是从/etc/resolv.conf拷贝DNS信息。这一步可以保证你在进入新的系统环境后还可以继续使用网络。/etc/resolv.conf包含了你网络里的域名服务器。
cp -L /etc/resolv.conf /mnt/gentoo/etc/
挂载/proc和/dev文件系统

将/proc文件系统挂载到/mnt/gentoo/proc,这样chroot后的环境里安装时也可以获取内核提供的相关信息,然后以bind方式挂载/dev文件系统。
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

进入新的系统环境

现在所有的分区都已经被初始化,基本环境也已安装完毕,现在是到了该用chroot进入新安装环境的时候了。这意味着我们从当前安装环境(安装光盘或者其他安装介质)切换到你安装的系统里(也就是被初始化的分区)。


然后我们使用env-update来建立新的环境,也就是创建新的环境变量。最后我们用source加载这些变量。
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"  (PS1 可以随便定义,你觉得好看就行)


关键时候到了。配置 Portage

你现在应该更新你的Portage树到最新版本。执行emerge --sync。

选择正确的Profile  (默认就好,不用管 那么多)
profile是每个Gentoo系统的构造块。它不仅指定了CHOST、CFLAGS以及其他重要变量的默认值,它还把系统可用的软件版本锁定在某个范围。而这些都是由Gentoo的开发者来维护的。


配置USE变量

又到了我们白话的时候了
USE是Gentoo为用户提供的最具威力的变量之一。很多程序通过它可以选择编译或者不编译某些可选的支持。例如,一些程序可以在编译时加入对gtk或是对qt的支持。其它的程序可以在编译时加入或不加入对于SLL的支持。有些程序甚至可以在编译时加入对帧缓冲的支持(svgalib)以取代X11(X服务器)。

大多数的发行版会使用尽可能多的支持特性编译它们的软件包,这既增加了软件的大小也减慢了启动时间,而这些还没有算上可能会涉及到的大量依赖性问题。Gentoo可以让你自己定义软件编译的选项,而这正是USE要做的事。

在USE变量里你可以定义关键字,它被用来对应相应的编译选项。比如,ssl会让程序在它编译时加入对它的支持。-X会移除其对于X服务器的支持(注意前面的减号)。gnome gtk -kde -qt3 -qt4将会在你编译软件的时候添加对gnome(和gtk)的支持,并且移除对kde(和qt)的支持,这可以让你的系统尽可能多的为GNOME做优化。

默认的USE设置位于你profile的make.defaults文件里。你可以在符号连接/etc/make.profile所指向的目录和它所有的父目录里找到make.defaults文件。默认的USE设置是所有make.defaults文件里USE的集合。所有你放在/etc/make.conf里的USE都会根据默认设置重新计算。如果你添加了一些USE的设置,它会被增加到默认的列表里。如果你删除了一些USE设置(通过放一个减号到它前面),它将被从默认的列表里移除(如果它确实在默认列表里的话)。绝对不要改变/etc/make.profile目录里的任何东西,它会在你更新Portage的时候被覆盖掉!

关于USE的详解你可以在Gentoo手册的第二部分,USE标记里找到。对于USE标记的详细介绍可以查看你的系统里/usr/portage/profiles/use.desc。

查看可用的USE标记
# less /usr/portage/profiles/use.desc

作为一个例子,我们展示一个基于KDE的系统并带有DVD、ALSA以及光盘刻录支持的USE设置:

代码 2.5: 打开/etc/make.conf  在最后一行加上:
USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"

指定  locale  我用了两个 
nano -w /etc/locale.gen
下面这个例子中的locale同时支持英语(美国)并带有字符集格式(比如UTF-8)的支持。(注释掉前面的#即可)
en_US ISO-8859-1
en_US.UTF-8 UTF-8

配置时区

ls /usr/share/zoneinfo
(假设您要用UTC)
# cp /usr/share/zoneinfo/UTC /etc/localtime


重要的时刻来了,编译内核。有两种方式(手动和genkernel) 。我都试过。其中 一种以失败而告终。
第一种
   Gentoo提供给我们几个可选的内核源码。完整的清单参见Gentoo内核指南()。
对于x86架构的系统来说,我们有gentoo-sources(包含增加了额外功能的补丁)。

选择你的内核源代码并使用emerge来安装。
# emerge gentoo-sources

当您查看/usr/src时,您将会看到一个叫做linux的符号链接指向您安装的内核源码。在我们这个例子中,安装的源码指向gentoo-sources-2.6.24-r5。您的版本可能有所不同,所以请你记住这一点。

开始menuconfig
# cd /usr/src/linux
# make menuconfig

您将会看到一些配置条目。首先我们将会列出一些您必须启用的选项(否则Gentoo将不能正常运行或者根本不能运行)。

必须启用的选项

确保启动您的系统所必需的驱动(比如SCSI控制器……)被编译进内核而不是作为模块加入的。否则您的系统将完全不能启动。
现在选择正确的处理器类型:

代码 3.2: 选择正确的处理器类别

Processor type and features --->
  (Change according to your system)
  (Athlon/Duron/K7) Processor family

现在进入File Systems并且选择您使用的文件系统。请不要把它们编译成模块,否则您的Gentoo系统将不能挂载您的分区。同时您也要启用Virtual memory和/proc file system的支持。

 选择需要的文件系统

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

#-#-#-#-#  choice  #-#-#-#-#
(依照你系统的需要启用下面所列出的一个或是多个选项)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support


 启用SMP支持

Processor type and features  --->
  [*] Symmetric multi-processing support

注意: 在多核心系统中,处理器的数目相当于核心的数目。

如果你有多于4GB的内存,你需要启用"High Memory Support (64G)"。

如果您使用USB输入装置(比如键盘或者鼠标)那么不要忘记支持它们:

启用USB接口的输入设备支持

Device Drivers --->
  [*] HID Devices--->
    <*>   USB Human Interface Device (full HID) support

如果你想要对你的笔记本的PCMCIA支持,也不要忘了在系统中允许PCMCIA card bridge。

启用PCMCIA支持

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  PCCARD (PCMCIA/CardBus) support  --->
    <*> PCCard (PCMCIA/CardBus) support
(如果您需要使用老式的PCMCIA卡,选择16位。大多数人需要。)
    <*>   16-bit PCMCIA support
    [*]   32-bit CardBus support
(选择相关的bridges)
    --- PC-card bridges
    <*> CardBus yenta-compatible bridge support (NEW)
    <*> Cirrus PD6729 compatible bridge support (NEW)
    <*> i82092 compatible bridge support (NEW)
    <*> i82365 compatible bridge support (NEW)
    <*> Databook TCIC host bridge support (NEW)

这些实际上已经默认选了,如果你还需要其它的功能,选择即可,看是编进内核还是编译成模块。编译成内核会使内核体积增大 ,但是好处是加载内核时就是加载了,而模块会在你需要的时候才加载,但前提是你选了  [*] Enable loadable module support  --->


下面就是编译与安装喽,
# make && make modules_install

当内核编译完成后,复制内核镜像到/boot。您可以给内核任意命名,然后记住它。因为在您配置您的系统引导程序的时候您需要用到它。记得用您内核的名字和版本来替代kernel-2.6.24-gentoo-r5。

# cp arch/i386/boot/bzImage /boot/kernel-2.6.24-gentoo-r5
这个没有什么可难的,重点是 ext3 要编译进内核,可不要编成模块哦。切记切记

第二种 使用 genkernel

现在您的内核源码树已经安装了,是时候用genkernel脚本自动编译您的内核了。genkernel是使用类似安装光盘中的内核配置来配置内核的。这表明当您用genkernel建立内核时,您的系统在启动时候将会如同安装光盘那样识别您所有的硬件。因为genkernel不需要手动配置内核,所以它对于那些不想自己编译特定内核的用户来说是一个理想的解决方案。
首先,安装genkernel:
# emerge genkernel
然后,复制安装光盘上的内核配置文件到genkernel搜索配置文件的默认位置:

# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6

现在执行genkernel all编译您的内核源码。请注意,genkernel编译出的内核支持几乎所有硬件,编译需要一段很长的时间。
#genkernel all

一旦genkernel运行完成,一个包括全部模块和initrd的内核将被建立。在后面配置引导程序时我们将会用到这个内核和initrd。请记下内核和initrd的名字,因为您将在配置引导程序的时候用到他们。initrd将会在启动真正的系统前自动识别硬件(如同安装光盘一样)


如果要自动加载3c59x.ko模块,编辑kernel-2.6文件然后写入模块的名字。

 编辑/etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6

另外 默认情况下 /etc/modprobe.conf 会加载 很多模块,上面不是说了吗,通过 genkernel产生的内核可以支持大部硬件吗?
如果 你不需要 ,你完全可以把它注释掉。


文件系统信息

fstab是什么?

在Linux系统下,系统所用到的所有分区都必须在/etc/fstab文件中指明。这个文件包含了这些分区的挂载点(在系统目录树中的位置)、挂载方法和特殊挂载选项(是否自动挂载,是否可以用户挂载等)。 具体就不用说了,Google 到处都 是

根据我的环境,我配置如下的内容。
max ~ # cat /etc/fstab
/dev/sda1   /boot        ext2    defaults,noatime     1 2
/dev/sda2   none         swap    sw                   0 0
/dev/sda3   /            ext3    noatime              0 1

max ~ #

网络信息方面,我没有做过多设置,就配置了一个主机名而己和怎么获得网络信息。
max ~ # cat /etc/conf.d/hostname
# /etc/conf.d/hostname

# Set to the hostname of this machine
HOSTNAME="max"
max ~ #


max ~ # cat /etc/conf.d/net
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d.  To create a more complete configuration,
# please review /etc/conf.d/net.example and save your configuration
# in /etc/conf.d/net (this file :]!).
config_eth0=( "192.168.228.238 netmask 255.255.255.0 brd 192.168.228.255" )
routes_eth0=( "default via 192.168.228.153" )
#config_eth0=( "dhcp" )

max ~ #
看我的是静态方式 ,如果 要是动态 方式 ,把最后一行注释掉即可。

在启动时自动启用网络

为了在启动时自动激活网络接口,你必须添加这些到default运行级别。
# rc-update add net.eth0 default
如果你有多个网络接口,你需要为他们创建合适的net.eth1、net.eth2等启动脚本。你可以用ln来做这个。
# cd /etc/init.d
# ln -s net.lo net.eth1
# rc-update add net.eth1 default

启用PCMCIA

PCMCIA用户首先应该安装pcmciautils软件包。
# emerge pcmciautils
有事没事,设置一下ROOT 密码。。

别的默认就好。


哦,忘 了,再安装 个系统日志工具。
# emerge syslog-ng
# rc-update add syslog-ng default
我相信你一定很喜欢  locate 这个工具,那好,我们就安装它,超简单
#emerge slocate

为了以后能自动 获取 IP 等 信息再安装 个 DHCP 客户端
# emerge dhcpcd

下面我们就配置 grub ,不多说,没有什么搞头,我的环境如下:
max ~ # cat /boot/grub/grub.conf
# This is a sample grub.conf for use with Genkernel, per the Gentoo handbook
#
# If you are not using Genkernel and you need help creating this file, you
# should consult the handbook. Alternatively, consult the grub.conf.sample that
# is included with the Grub documentation.

default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.24-r5
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.27-gentoo-r8 root=/dev/ram0 init=/linuxrc real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-2.6.27-gentoo-r8

# vim:ft=conf:
max ~ #


再做完最后一步,我们就可以进入我们自己的小系统 了,安装 bootloader  我选  grub ,因为lilo 我不熟悉。呵呵

为了安装GRUB,您将需要执行grub-install命令。尽管如此,当我们处于chroot的环境时,grub-install并不能正常的工作。我们还需要创建一个/etc/mtab,在里面列出所有已加载的文件系统。幸运的是,有一个简单的方法来完成这个任务——将/proc/mounts拷贝成/etc/mtab,如果您没有创建一个独立的boot分区,请排除rootfs行。下面的命令在两种情况下都可以正常工作:
# grep -v rootfs /proc/mounts > /etc/mtab
安装 喽
# grub-install --no-floppy /dev/sda


重启系统

退出chroot的环境,卸载所有已挂载的分区。然后输入您已经等待多时的那个魔术般的命令:reboot。

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot


OK 你看到 了吗? 我是看到 了。呵呵


唉,这只不过是文本界面,我们还要做 图形界面,唉,这个太麻烦了,我为了编译安装 Xorg  浪费了,我半天 的时间,一共要配置丶编译丶安装 139个之多。那叫一个累呀。步骤我就粗略的记录一二。如下

显示所有驱动选项
# emerge -pv xorg-server
安装Xorg

# emerge xorg-x11

安装结束后,你可能需要重新初始化一些环境变量后才能继续。你只需要运行env-update后再运行source /etc/profile就可完成这一工作。
# env-update
# source /etc/profile


创建xorg.conf文件

# Xorg -configure

测试xorg.conf.new文件

# X -config /root/xorg.conf.new

 拷贝xorg.conf

# cp /root/xorg.conf.new /etc/X11/xorg.conf

如果在home目录下存在一个名为.xinitrc的文件,它将会执行文件中列出的命令。

启动X

# startx

其中中间有一些步骤要做,我没有写,可以
做完之后 画面如下。


安装完之后虽然有非常丑陋的图形。但离我们的要求还是相差甚远,我们有几个选择。例如 GNOME丶KDE (两个有名的),XFCE丶FLUXBOX,当然还有很多很多,但用的很少。我用了gnome。不过在我写这篇文章的时候,gnome还在编译丶安装,有132个哦,看来又要花费半天时间喽。

过了两天,图形界面出来了。
其实很简单,没有啥技术含量
安装一个最小化的GNOME环境
# emerge gnome-light
更新环境变量
# env-update && source /etc/profile

如果您认真观察前面emerge命令的输出,会注意到它建议使用gamin让nautilus和gnome-vfs监视文件的变动:

 安装gamin,一个文件变更监视器

# emerge gamin

接下来我们做完剩余的服务。

 将hald和avahi-dnsconfd添加到默认启动级别

# /etc/init.d/hald start
# rc-update add hald default

# /etc/init.d/dbus start
# rc-update add dbus default

# /etc/init.d/avahi-dnsconfd start
# rc-update add avahi-dnsconfd default
设定GNOME为默认桌面环境
$ echo "exec gnome-session" > ~/.xinitrc
启动GNOME
$ startx

如图:

将xdm添加到默认运行级别

# rc-update add xdm default

现在编辑/etc/conf.d/xdm并修改DISPLAYMANAGER变量。

 编辑/etc/conf.d/xdm

DISPLAYMANAGER="gdm"

如果您现在重启,GNOME显示管理器就会提示您输入用户名和密码,并且将默认使用GNOME作为桌面环境(尽管肯定会有一个选项让您可以从/usr/share/xsessions/中选择另一个可用的)。这样的话,如果您使用GDM,就不需要编辑~/.xinitrc了。

Grub  也是很好看地。


阅读(1237) | 评论(1) | 转发(0) |
0

上一篇:proftp -摘至网络

下一篇:linux 引导

给主人留下些什么吧!~~

xinxian.can2009-03-09 09:41:59

这么长时间没有人评论,我来注两句。