LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: dreamrise

GENTOO之路-现场直播

[复制链接]
发表于 2003-5-15 13:27:08 | 显示全部楼层

有创意,我喜欢,step by step

我有时候出错,但不知道如何去改正,还请你来指点
 楼主| 发表于 2003-5-18 13:45:01 | 显示全部楼层
各位兄弟,又到了我们现场直播的时间了,不好意思中间中断了3天了,那么这三天里,俺干什么去了?

不好意思,俺编译的内核出了问题,GENTOO启动不了。
然后我又去试了一下RH9,发现居然也启动不了了,大骇!

我的机器原来装的LILO来引导系统,自从为了装GENTOO而将原来的一个WINDOWS分区(10G,位于/dev/hdb2)删除,然后在其上又新建了一个LINUX分区(6G左右,还有4G没有使用,考虑以后完SUSE:0)
因此磁盘结构发生了变化,原来的LFS,RH9都不能启动了,而且WINDOWS2000进去也是打不开资源管理器(后来我干脆在WIDNOWS里禁用了第二个硬盘,反正第二个硬盘上都是操作系统,不用访问也罢)

努力了半天没有结果,唯一可以正常使用的就是RH8,RH8下面倒是完全正常,因为分区是在RH8下进行的,用的是FDISK命令,LILO也是用RH8的配置安装在/dev/hda上了,我想这时候大多数人会考虑放弃了,我也是,但是REDHAT不要紧,我的LFS可是用了我一个星期的心血,我可不能把它放弃了,所以,我这时想的就是能不能把LFS治好。

我试着用RH8的内核去启动LFS,但是LILO很不好用,每次都要改了/etc/lilo.conf然后重启才能试验一次,不行又要重启,这时我开始考虑用GRUB了,关于GRUB的文章请参考我刚刚转贴的一个帖子:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=40167
比LILO更强劲的多操作系统引导程序GNU GRUB,真是要实践才有体会,GRUB真是不错,关键在于它的启动过程是可以调试和编辑的,也就是说在启动的时候可以以命令的方式,调用A内核去启动B系统,当然A和B必须都是同一操作系统,可以是不同发行版本,比如用REDHAT的内核去启动LFS,即使A和B不在同一分区里面。

所以后来的事情就是我从头安装了GRUB,编辑了GRUB的配置,这些过程请大家还是参考上面的那篇文章。我只列几个命令,备忘录形式一切从简
grubinstall rh安装grub
/boot/grub/grub.conf = /boot/grub/menu.1st 启动配置文件,其实没有这个文件也可以中,里面只是一些预定义的配置方式,你完全可以自己敲进去.

这是我最终的grub.conf:
boot=/dev/hda
default=1
timeout=10
splashimage=(hd1,4)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
        root (hd1,4)
        kernel /boot/vmlinuz-2.4.18-14 ro root=/dev/hdb5
        initrd /boot/initrd-2.4.18-14.img
title DOS
        rootnoverify (hd0,0)
        chainloader +1
title WIN2003
        rootnoverify (hd1,0)
        chainloader +1
title Red Hat Linux 9 (2.4.18-14)
        root (hd1,9)
        kernel /boot/vmlinuz ro root=/dev/hdb10
#       kernel (hd1,7)/lfskernel ro root=/dev/hdb10
#       initrd /boot/initrd-2.4.20-8.img
title lfs
        root (hd1,7)
        kernel /boot/lfskernel ro root=/dev/hdb8
title gentoo
        root (hd1,10)
        kernel /boot/vmlinuz ro root=/dev/hdb11

中间过程是曲折又难解,不过终于还是熬过来了,
通过重新编译内核,我的GENTOO也终于可以启动了。
RH9的内核不知道出了什么问题,总是不能启动,于是我用GENTOO的新内核去启动了RH9,然后又在RH9上拷贝了GENTOO的内核源代码过去,重新编译了自定义的RH9-GENTOO内核,所以我曾有一段时间就是用GENTOO内核+RH9的组合(其实都是LINUX内核),但是后来在RH9下,通过它的在线更新把RH9内核到了kernel-2.4.20-13.9,可以到这里下载最新的RPM包
http://updates.redhat.com/9/en/os/
这里是我写的一段升级过程,另外贴的一个帖子:\
(HOWTO:把REDHAT内核升级到kernel-2.4.20-13.9,并安装NVIDIA驱动)
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=40183

结果全部的系统都可以正常启动了
发表于 2003-5-18 15:56:50 | 显示全部楼层
老兄,编译gentoo的内核需要注意些什么地方?我搞了好几次都不行
 楼主| 发表于 2003-5-18 23:26:32 | 显示全部楼层
关于内核方面的东西,还是请参考tram老大的帖子:
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=29051
这里的内核选项全部是到2003年3月21日最新的 gentoo-2.4.20-r2 版内核,但是目前的内核已是 gentoo-2.4.20-r5的版本。
如果你E文比较好的话,请看官方文档:
http://www.gentoo.org/doc/en/gentoo-x86-install.xml#doc_chap15

下午玩了一下午游戏,晚上打开电脑,想进gentoo,让它给我下一个HTTPD下来,结果发现网络还没有通哦,

我的是局域网,固定IP地址,通过网关上网的,以前的帖子里居然没有提到过静态IP地址的配置(个人认为本版关于GENTOO的帖子比LFS帖子要少的多,而且缺乏整理,看LFS的资料那么多,真是羡慕),所以去官方站点找吧。

其实也挺方便的:
http://www.gentoo.org/doc/en/gentoo-x86-install.xml#doc_chap21

第21章.Final Network Configuration
STEP1:如果你的NETCARD在内核中是编译为模块则请修改这个文件:
Code listing 21.1: /etc/modules.autoload
让它在启动时自动加载(我的编译进内核了,不是模块)
提一下内核选项里面:
realtek8029网卡要选NE2000及其兼容
realtek8039有相应选项
STEP2:编辑/etc/conf.d/net在这里填入IP、NETMASK,BROADCAST,GATEWAY
iface_eth0="54.1.42.104 broadcast 54.1.42.255 netmask 255.255.255.0"
gateway="eth0/54.1.42.1"
STEP3:编辑/etc/resolv.conf在这里填入DNS的信息:
nameserver 210.12.63.3
FINAL STEP: rc-update add net.eth0 default

然后重启网络就通了。

附:多网卡设置和笔记本PCMCIA网卡设置
Code listing 21.3: Multiple Network Interfaces
# cd /etc/init.d
# cp net.eth0 net.ethx
# rc-update add net.ethx default

Code listing 21.4: PCMCIA depend in /etc/init.d/net.ethx
depend() {
        need pcmcia
}

 楼主| 发表于 2003-5-19 20:46:04 | 显示全部楼层
安装OPENSSH和VSFTPD
因为要从笔记本上登陆到GENTOO机上去,所以SSH和FTP是必不可少的。

安装很简单:
emerge openssh
emerge vsftpd
之所以选VSFTPD是因为它是redhat标配的FTPD服务器版本,大家也可以选择其他的服务器版本。

安装后的启动倒费了我一点时间,因为还不太熟悉GENTOO的管理方式,/etc下居然没有rc.d的目录(用REDHAT用久了),所以我不知道怎么添加这两个系统服务。/etc/init.d目录下倒是有sshd、inetd(vsftpd是通过inetd来配置启动的)等的文件,但是没有被调用啊。

找着找着看到有一个runlevels的目录,应该就是运行级吧,进去一看却发现只有一个default的目录,为什么没有那些12345呢,看来DEBIAN/GENTOO系跟REHDAT系还是有比较大的区别哦。

后来呢,呵呵,其实很简单,我突然记起昨天添加网卡启动服务的命令来:rc-update.

模仿着试一下:
rc-update add sshd default
呵呵居然成功了
我当然是急着想去看看rc-update的帮助,但是man和info都查不到这个命令的资料
blardG etc # which rc-update
/sbin/rc-update
blardG etc # file /sbin/rc-update
/sbin/rc-update: a /bin/bash script text executable
呵呵原来是个BASH脚步,直接看代码吧
使用方法:
usage: rc-update add script runlevel2 [runlevel2...]
       rc-update del script [runlevel1...]

note:
       After rc-update executes, the script dependency cache is automatically
       updated.

examples:
       rc-update add net.eth0 default
       Adds the net.eth0 script (in /etc/init.d) to the "default" runlevel.

       rc-update del sysklogd
       Deletes the sysklogd script from all runlevels.  The original script
       is not deleted, just any symlinks to the script in /etc/runlevels/*.

       rc-update del net.eth2 default wumpus
       Delete the net.eth2 script from the default and wumpus runlevels.
       All other runlevels are unaffected.  Again, the net.eth2 script
       residing in /etc/init.d is not deleted, just any symlinks in
       /etc/runlevels/default and /etc/runlevels wumpus.

然后我又类似的添加了inetd服务
rc-update add inetd default
还有编辑/etc/inetd.d/vsftpd文件,
把最后面的disable改为false,
再加上这一行:only_from 0.0.0.0
最后重新启动inetd:/etc/init.d/xinetd restart


后来发现这里居然已经有HOW-TO了:
Howto set up an FTP (VSFTPD)
http://forums.gentoo.org/viewtop ... mp;highlight=vsftpd
好啊,发现宝库了,呵呵

离GENTOO的距离越来越近了。
附emerge的参数表:
--fetchonly : Downloads the needed archive files for compiling the package to be installed and any dependencies that need to be met.

--emptytree : This option makes Portage pretend that none of the dependencies of this package or the packages it depends upon are installed. This is useful with --pretend to display a complete tree of dependencies for any particular package. All dependencies except for glibc are displayed.

--nodeps : Portage attempts to merge only the specified packages and ignores any dependencies. If you do not have the appropriate dependencies already installed then compilation may fail.

--onlydeps : Only dependencies for a given package are merged. The specified package is not merged.

--noreplace : Skips the merge of specified packages if they are already installed

--usepkg : Instead of compiling the specified packages Portage will attempt to use pre-compiled tbz2 packages from a specified location. The location is specified by the PKGDIR shell environment variable.

--debug : The ebuild environment is instructed to become much more verbal. This is useful for developers trying to track down syntax errors in bash script based ebuild files.

--autoclean : Forces emerge to clean out package-specific temporary build directories before it starts to build a package. Portage does this by default so this option is only useful to developers who disabled this default behavior.

--verbose : Tells emerge to run in verbose mode. Currently, this only causes GNU info errors to be displayed. These errors can be safely ignored by users.
发表于 2003-5-29 18:33:37 | 显示全部楼层
在/etc/init.d下面没有vsftp这个文件
 楼主| 发表于 2003-6-5 13:58:51 | 显示全部楼层
当然没有了,vsftpd是作为xinetd的一个子服务来运行的,而不是standalone模式,
所以只会有/etc/init.d/xinetd这个文件
vsftpd的配置在xinetd.d的子目录里面:
/etc/xinet.d/vsftpd
发表于 2003-7-23 03:12:47 | 显示全部楼层
为什么我安装完vsftpd并且启动xinetd以后,用ftp连上的时候报告说找不到/etc/ssl/certs/ftpd.pem文件?然后就断开了。

这个授权文件确实不存在。我应该怎么弄到他呢?
发表于 2005-3-30 10:57:57 | 显示全部楼层
so goooooooooooooooooooooooood!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-30 13:44:28 | 显示全部楼层
兄弟,我崇拜你,这么老的贴你也翻出来了,我的贴啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表