热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装Linux的艰苦历程

安装Linux的艰苦历程--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
作者:shaohui_1983#163.com
接触Linux已经2年多的时间了,对Linux的印象2年是Red Hat 9,2年后居然还是,这2年时间里面由于从来都没有接受过任何的Linux培训,所以唯一的学习方式就是看书,实践,再看书,再实践.经过2年多的断断续续的学习一直以为自己已经开始入门了,不过前段时间自己动手安装一个Linux服务器的整个过程彻底改变了我的看法.

1.安装Red Hat Linux 9受挫折
安装RedHat不知道是第几百回了,由于Redhat的安装确实太简单,就和Windows差不多,傻瓜式的安装,因此,从以前来就没有遇到过任何问题,不过现在就不一样了.我的服务器配置大致如下(具体有些不是很清楚)
P4 2.8 的处理器
ASUS 主板 集成了网卡声卡
1G内存
3个160G的SATA接口的串口硬盘
还是按部就班,从光盘安装RedHat,但是马上就遇到问题,说不能够找到硬盘,傻眼了,从来没有遇到这样的问题.
在网上一查才知道是SATA接口的硬盘在作怪,去年的时候我曾经接触到SATA接口的硬盘,但是当时不是很懂,在Windows下面我没有装SATA接口的驱动,我们项目经理把我恨很地K了一顿.现在又遇到这个问题了。
在网上一查,有以下3种解决的办法.
a.http://www.2008red.com/member_pi ... ticle_10837_1.shtml 说要说要把硬盘模式修改一下,把Compatible Mode改为Enhanced Mode.照做.奇怪,我本来就是Enhanced Mode,而且我的BIOS没有Compatible Mode,看来这个无效,找新的办法.
b.编译新内核2.6,由于Linux的驱动程序在内核中,所以必须要编译新的内核才能够支持新的硬件,不予考虑,这样的话太折腾人了,毕竟我还只能算是新手.
c.安装Fedora Core
因为Fedora Core采用的是2.6内核,所以接能够识别SATA接口的硬盘,只有用这个方式了.

2.从硬盘安装Fedora Core
由于到现在为止,我还没有发现有哪个地方有Fedora core的光盘卖,所以也就只能够从网上下载了,在RedHat的网站fedora.redhat.com一看,发现最新的版本是Fedora Core 4(不过我写这个文章的时候Fedora core 5好象已经发布了),还好,在hongkong和taiwan的几个镜像服务器器下载速度还是很快100多K,而不像我们这个鬼学校,用bt都才几K,花了将近一天的时间终于把4张Fedora Core的ISO文件全部下载下来了,但是现在我应该这么安装了,我又没有光盘刻录机,我考虑了以下几种办法,然后准备依次尝试
1.从硬盘安装
2.从网络安装(http)
3.从网络安装(ftp)
4.刻光盘(下下策了)
从硬盘安装就得把ISO文件copy到硬盘那,而且硬盘还要可以启动才可以呀,而现在的3个硬盘都不能够用,怎么办呢。我把另外一个IDE硬盘装在服务器上作为临时的硬盘,先装个Redhat再说,我的目的是想在这个Linux下装个SAMBA,然后通过Samba把刚才下载的Fedora Core的ISO文件copy到,服务器上然后再从硬盘安装Fedora Core,最后拆除临时硬盘,想法好象很有道理.
按照上面的步骤,很顺利大约30分钟就安装了好了Redhat和配置好了Samba,大约又花了20多分钟时间才把4个ISO文件通过网络copy到该临时硬盘上.然后从第一个ISO文件中提取系统需要的2.6内核的安装文件.(我的几个ISO文件在/home/share目录
mount /home/share/FC4-i386-disc1.iso /mnt -o iso9660 -o loop
然后把isolinux中的vmlinuz和initrd.img复制到/boot分区
cp /mnt/isolinux/vmlinuz /boot/vmlinuz
cp /mnt/isolinux/initrd.img initrd.img
修改/etc/grub.conf
又这个两个新的文件启动Linux
增加以下几行:
title Fedora Install
root (hd0,0)
kernel /vmlinuz ro root=/dev/sda2
initrd /initrd.img
保存,reboot.
选择Fedora Install, OK,没有问题,在安装方式中选择从硬盘安装,输入分区已经目录,出现了Fedora Core安装的图形界面. Yeah! 高兴异常.以后的步骤就和Redhat差不多,而且安装程序风格也差不多.而且从硬盘安装的速度比从光盘快多了。

3.Fedora Core启动异常
系统启动,从提示信息中可以发现,现在我用的系统确实是2.6的内核,不过还没有来得及高兴,新的问题又来了.
initialized storage network
屏幕上出现以上提示,然后就卡住了.以为是在检测新的硬件,等了几分钟仍然没有反映,重新启动,Repeat N次,效果一样.
求助Goolge,居然没有在国内找到相关的东西,折腾了很久最后在国外的一个网站上找到了一点提示,说是把主板上的集成网卡disabled,照做,问题依旧.再找一段时间的原因,仍然没有结果,结果一气之下我把板载的东东都disabled掉,哈哈,居然OK了,痛哭啊!最后为了能够找到真的原因,我再一个一个的Enabled,才发现问题出在Audio上边,而不是集成网卡在做鬼.

4.拔掉临时硬盘,引发新的问题
现在,2个SATA接口的硬盘都可以用。而且我是把OS安装在其中一个SATA接口的硬盘上的,该是把临时硬盘换下来,然后把另外一个SATA接口的硬盘换上去做成磁盘阵列的时候了,但是这也引发了新的问题,拔掉临时硬盘以后系统根本就不能够引导,把临时硬盘接上去以后,问题又没有了。仔细想想才想起来,刚开始匆忙之中把grub安装在这个IDE的硬盘的MBR上去了,而这个装有Linux的SATA接口的硬盘当然不能够用了,该怎么办了,当然是重新安装grub了,这个问题是我在2年前学Linux的时候就遇到的问题,但是到现在仍然还不能够很好地解决,惭愧呀.grub我是没有办法从新装上了,怎么办,只从新装系统,然后选择的时候把grub装在这个SATA硬盘上了(哎,愚蠢那).不过这一次没有再装RedHat了,只是在这个Fedora的基础上用上面的第2个步骤的同样的方式再次把安装Fedora复习了一便.

5.可恶的GRUB,再次成为拦路虎
很快,一个新的Fedora又安装上了,再拔掉临时硬盘,以为万事大吉了,结果Linux没有启动起来,让我大跌眼睛.
grub>
grub又来了,摆了个grub的提示符在这里,oh,shit,我已经要瘫痪在办公室的椅子上了。
看来grub这东东存心要和我作对,我不得不去面对它并且尝试解决这个问题了。
出现这个问题的主要原因是我拔掉那个IDE硬盘,导致硬盘的编号发生变化,因此,grub找不到Linux的内核在什么地方,这个我早就知道,可是到底应该怎么解决还是从来没有做对过.记得前几天看了一个grub的视频说是用root和setup命令可以安装grub,那就尝试一下吧.
root (hdx,y)
setup (hdx)
由于现在计算机里面有3个同样的硬盘所以我也不知道grub到底是怎么对这写硬盘进行编号的了,把上面的数字从1-3,然后在试sdx,y,从1-3(我以为SATA接口的就应该表示成sd,而不是hd,所以这样做了),全都试了个遍,最后终于有一次提示
done!
Great,安装上了,我看安装个grub就和买彩票差不多,这次运气好,买上了。
重新启动居然进入了Linux.Enjoy吧.

6.再次配置SAMBA
Fedora的桌面确实,比Redhat要好看多了,确切的说,我很喜欢这样的风格,但是功能还是显得比较单一.不过现在不是要享受这些桌面的时候,还有更多的事情要做,再说这是个服务器,以后几乎就不会用到它的桌面.都要用shell命令.
开始安装SAMBA了,不过这个时候要轻松很多了,因为毕竟前面遇到了这么多的问题都一个一个地被解决了。按照以前在Redhat下配置SAMBA的经验,根据现在公司的实际情况,把用户分为tech和sales组,不过从Windows下访问的时候又遇到了新的问题,种是说没有权限,尽管我采用了极端的方法,把共享的目录的权限改成了777,仍然不能够解决问题.
结果在一个论坛里面的一个文章里面有一点专门介绍Fedora的安装的,说是要把smbpasswd file前的注释去掉.照做.
问题居然解决了。
其他的同事兴奋异常,把所有的重要的东西都往服务器上的share目录放,结果很快服务器的share目录就用掉了20多个G.
不过好景不长,可能是我被实在折腾的太累了,不知道改了个什么文件,导致SAMBA不能够启动.查看日志
cat /var/log/messages
好象帮助不大.莫有办法,重装SAMABA吧.
rpm -e samba --nodeps 删除现在的SAMBA
然后再从ISO文件中找到samba的rpm文件,安装!
service smb start
问题依旧,崩溃吧!

7.艰难的决定,再走长征路
实在是找不到解决的办法,面对这样的问题,对于我们来说,就是一个残酷的答案:重装系统. 原来系统工程师就是这样被锻炼出来的,以前大学的时候老是觉得人家一天装7,8次Windows都莫有装上,现在,我是几天装了N次都莫有成功.辛酸!再来一边吧,把这几天的走过的路再走一遍.
不过很遗憾,最开始的那个IDE硬盘的Redhat已经被我格式化了,现在如果再重装系统也就意味着还得从RedHat开始.
就这样.虽然是熟门熟路了,但是还是又折腾了2个多小时.

8.再次遭遇GRUB问题
就这样Fedora又被装上了,然后又会到了5.
grub>
oh,这次我可不怕了,有了上面的经验,还是按照上面的第5步的方法买彩票吧!
这次,很快就买中了,这个Done!也出现了,看见这个单词太亲切了.
reboot
!@#!@#!@#@!$@%@#!@%@!!!#!#&*&(&(^(&(&(^(%
提示GRUB被损坏.没有办法启动了~~~~~~~
oh,哭吧,没有启动盘(RedHat的启动盘没有用),没有办法修复grub,意味着前面的工作再次化为乌有!

9.妥协吧,惹不起我躲得起
这个grub问题看来我是解决不了,我再也消耗不下去了,为什么我非得要把这个IDE硬盘拿掉换个SATA的硬盘呢,就用剩余的2个硬盘也一样可以做磁盘阵列.也只有这样了,再次重新走上面的过程,我已经不记得这是第几次重新装了,反正头已经完全大了。不过我觉得这些问题应该尽快地解决而不是一直地拖,所以决定加个班吧,就算是通宵也要把它给搞定,这样没完没了的重来不知道什么时候是个头,该是结束的时候了.很快,系统又重新安装好了.

10.安装常用的服务
没得说SAMBA是必须的,WWW服务,MYSQL,CVS都是不可以少的.FTP不用,暂时不用管.
不过还好,这些问题都比较好解决,象www里面的乱嘛问题,PHP里面的$HTTP_SREVER_VARS,%HTTP_POST_VARS变量不能使用的问题,都比较好解决.
MYSQL5的乱码问题稍微要多用一点时间.但是还是解决了。
还有就是创建磁盘阵列,把这个两个SATA接口的硬盘做成一个RAID1,也就是个mirror.
mdadm -C /dev/md0 -l 1 -n 2 /dev/sda1 /dev/sdb1(本来想用raidtools,结果Fedora上就是没有)
然后格式化OK!然后把它mount 到/home/这样,所有重要的数据都在这上面了,而OS系统就只是个外壳,崩溃了,只要这个RAID没有问题就可以了.

最麻烦还是CVS,尽管以前配置了很多次,但是步骤还是比较多的,难免其中不出错.也不过是多花了写时间了.

11.PPPOE拨号问题
现在已经万事具备了,只需要把计算机连上internet了。依次安装ppp,rp-pppoe.
配置ppp,我用eth0来拨号,运行adsl-start开始拨号,没有任何提示.###,太惊讶了,居然没有遇到任何问题就这样就拨上好了。因为,没有消息就是最好的消息,Linux下就是这样的原则,没有提示就表示成功.oh,看看我的IP是多少
ifconfig
ifconfig ppp0
居然没有成功,查看日志/var/log/messages说是没有响应.
换另外一个网卡eth1试试运气(这个计算机上有2张网卡,因为要做NAT服务器),好象今天运气不怎么样.
在bbs.chinaunix.net里面找了一堆的结果,都是遇到同样的问题,但是好象没有什么好的消息.结果不知道在哪个地方发现有人说是rp-pppoe的bug,要到官方去下载新的代码安装.没有办法,虽然麻烦一些,但是必须这样做。因为不能够连接上internet再好的计算机也只能够是一陀废铁,莫得用!!!.
rp-pppoe的作者确实做的很不错,尤其适合与我这样的傻瓜使用,尽管要编译代码,但是也就只是运行一个命令./go就over了。免费软件做到这种地步,真是值得敬佩.
但是还是不能够拨号
pppoe-start
提示......TIME OUT!
我估计是电信的原因,因为我刚才用另外一台计算机在Windows下频繁拨号,于是关掉adsl猫,10分钟以后再试
...Connected!
Thank godness!
为了能够开机自动拨号,我把pppoe-start命令写入了,/etc/rc.d/rc.local
不过好象效果不要,有的时候需要手动拨号.

12.配置代理服务器和NAT
代理服务器用squid,配置很简单,只要做很小的修改就可以了。
而NAT看起来很复杂,其实也比简单,几条命令就搞定了.
修改/etc/sysctl.conf
net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward
service xinetd restart
允许IP伪装
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE(这个服务器的内网IP是192.168.0.1/24,公司内部的所有计算机都是这个网段的)
为了能够开机自动运行,仍然写入启动脚本,测试居然没有问题,还从来没有这么顺利过哈.

13.配置DNS和DHCP
把192.168.0.1作为首DNS和DHCP服务器.在Windows下测试,居然也没有问题,神气了!
这个时候,都已经要天亮了,现在已经完全没有精力了,不过还好,已经解决了所有的问题.回寝室就呼啦呼啦睡得像猪一样.

14.安装花生壳,用动态域名
最后的工作,就是把我们的域名和我们的动态IP Bind在一起,没有固定IP,唯一的选择就是动态域名了,就用花生壳吧,号称最大的动态域名提供商.网站做得挺花的,不过说明文档确实不怎么全.在解析子域名的时候没有任何问题(比如www.xxx.com,mail.xxx.com),因为可以用CNAME指定到我的动态域名上就可以了,但是域名的根xxx.com就麻烦了,没有办法使用CNAME,所以只有安装花生壳的壳户端.尽管麻烦一些,不过还是把问题解决了.

这样前前后后就将近消耗进去了一个星期的时间,经过这么一段惨痛的经历,使得我不的不对自己所学的知识重新考虑,看来谦虚谨慎的态度什么时候都不能够忘啊,为了能够记住这个教训,特写次流水帐予以备忘!
推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
author-avatar
逗壳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有