【转帖】好帖,与菜鸟们共享!!

【转帖】好帖,与菜鸟们共享!!

美国公认黑客榜

姓名:理查德.斯托曼(Richard Stallman)
个人网址:
[url="http://www.undergrad.math.uwaterloo.ca/agray/meme.html"]http://www.undergrad.math.uwaterloo.ca/agray/meme.html[/url]

简历:他从1971年从哈佛大学毕业后供职于麻省理工学院人工智能实验室,稍后设立了自由软件基金(free software foundation)。1969年在IBM的纽约科技中心第一次接触计算机时他就产生了浓厚的兴趣,时年16岁。后来,斯托曼辞去了麻省的工作后留在了麻省的一个独立的研究室从事研究,在那儿他开发出一套名为gnu的全新操作系统,为此获得了以美国传奇名将麦克阿瑟名字命名的麦克阿瑟基金24万美元天才将。

网名:Phiber Optik
真名:马克.阿贝尼(Mark Abene)
个人网址:
[url="http://www.levity.com/julian/phiber.html"]http://www.levity.com/julian/phiber.html[/url]

简历:作为一个激进组织的创始人之一,阿贝尼激励了全美成千上万的青年人“钻研”国内电话系统的内部工作原理,为此一项联邦裁决试图以“散布非法信息给其他黑客”为由判他入联邦监狱一年,但该项裁决最后不了了之。回家之日,众多拥护者拥进了曼哈顿俱乐部出席向他致敬的“归来聚会”。聚会后不久,纽约一杂志将他作为100明最杰出的纽约青年予以表彰。他第一次接触电脑是得益于在纽约某公司电子部门工作的母亲,从母亲那里他接触到了苹果II,他拥有的第一台电脑是花完了大功近半年时间所攒下的钱所买的radio shack trs-80(托什-80)型。

网名:RTM
真名:罗伯特.莫里斯(robert morris)
个人网址:
[url="http://www.eg.bucknell.edu/kapolka/cs240/morris/faq"]http://www.eg.bucknell.edu/kapolka/cs240/morris/faq[/url]

简历:此君是闻名全世界的“莫里斯蠕虫病毒”的缔造者。这位美国国家计算机安全中心(隶属于美国国家安全局)首席科学家的儿子,康奈尔大学的高材生,在1988年的第一次工作过程中戏剧性的散播出了网络蠕虫病毒后,“Hacker”一词开始在英语中被赋予了特定的含义,在此次的事故中成千上万的电脑收到了影响,并导致了部分电脑崩溃,此次严重的突发事件同时让大家意识到了防治网络病毒传播的重要性。

网名:condor
真名:凯文.米特尼克(Kevin Mitnick)
个人网址:
[url="http://www.260.com/kevin"]http://www.260.com/kevin[/url]
2002年,对于曾经臭名昭著的计算机黑客凯文?米特尼克来说,圣诞节提前来到了。这一年,的确是Kevin Mitnick快乐的一年。不但是获得了彻底的自由(从此可以自由上网,不能上网对于黑客来说,就是另一种监狱生活)。而且,他还推出了一本刚刚完成的畅销书《欺骗的艺术》(The Art of Deception: Controlling the Human Element of Security)。此书大获成功,成为Kevin Mitnick重新引起人们关注的第一炮。

  米特尼克的圣诞礼物来自联邦通信管理局(FCC)。FCC决定,恢复米特尼克的业余无线电执照。从13岁起,无线电就是米特尼克的爱好之一。现在,他仍然用自制电台和朋友通话。他认为,正是这一爱好引发了他对计算机黑客这个行当的兴趣。不过,这份执照恢复得也并不轻松,他必须交付高达16,000美元的罚款。“这是世界上最贵的一份业余无线电执照,”米特尼克说,“不过我仍然很高兴。”

  39岁的Kevin曾经是美国****最著名的通缉犯之一,因为黑客行为入狱5年,2000年1月释放,但是依然禁止上网。这位曾经的逃亡者,曾经因为非法侵入Sun、Motorola等公司的计算机系统而被判五年徒刑。现在,米特尼克正在享受重生之后平静的中年生活。在一次闲聊式的采访中,39岁的米特尼克对自己的前途充满信心。他为期三年的缓刑期即将结束,他的回忆录在eBay上热销,获得过奥斯卡奖的导演Kevin Spacey还要把他的故事拍成电影。以他为主角的书籍更是已经超过10本。他说,他将开设公司,业务是帮助客户防护黑客攻击。看来,他已经真正改邪归正。

  Kevin的黑客生涯到其后来入狱时差不多就有15年之久。他的作案时间之长、作案次数之多、破坏力之大,他的技术之精、经历之传奇,都让全世界为之震惊,也使电脑****们汗颜。

  米特尼克只有3岁时,父母就离异。他跟着母亲,很小就学会自立,却也从小形成孤僻的性格。70年代末,13岁的他还在上小学,就喜欢上业余无线电活动,在与世界各地无线电爱好者联络的时候,他第一次领略到了跨越空间的乐趣。很快,他对社区“小学生俱乐部”里惟一的一台电脑着了迷,并因此培养起高超的计算机专业知识和操作技能。中学老师一致认为他是一个聪明、有前途的孩子,直到有一天发现他使用计算机闯入其他学校的网络。这样的行为当然不可饶恕,他因此而退学。

  失去了学校的束缚,对于初尝黑客滋味的他来说,天空更加开阔了。他打工****,买下一台性能不错的电脑。没有约束的他野心更加膨胀,他以远远超出其年龄的耐心和毅力,试图破译美国高级军事密码。不久,年仅15岁的米特尼克闯入了“北美空中防务指挥系统”的主机内,和另外一些朋友翻遍了美国指向前苏联及其盟国的所有****头的数据资料,然后又悄无声息地溜了出来。这确实是黑客历史上一次经典之作。

网名:Dark Dante
真名:凯文.鲍尔森(kevin poulsen)
个人网址:
[url="http://www.catalog.com/kevin"]http://www.catalog.com/kevin[/url]

简历:1990年鲍尔森为了让自己成为洛杉矶地区的kiis-fm电台的第102位呼入者,把当地的所有电话线统统给占用了,他也曾因为自己的勤奋和努力而获得保时捷944 s2跑车。他承认曾闯进计算机系统非法获取过由联邦调查局秘密操作的商业机构的名字。

网名:Julf
真名:约翰.黑尔森尤斯(Johan Helsingius)
个人网址:
[url="http://www.cyberpass.net/securty/pe…essrelease.html"]http://www.cyberpass.net/securty/pe…essrelease.html[/url]

简历:黑尔森尤斯于1996年关闭自己的小商店后开发出了世界上最流行的,被称为“penet.fi\”的匿名回函程序,他的麻烦从此开始接踵而至。其中最悲惨的就是sceintology教堂抱怨一个penet.fi用户在网上张贴教堂的秘密后芬兰警方在1995年对他进行了搜查,后来他封存了这个回函程序。

好网址

[url="http://nihao.dlut.edu.cn/web/book/"]http://nihao.dlut.edu.cn/web/book/[/url]

[url="http://nihao.dlut.edu.cn/web/book/"]http://nihao.dlut.edu.cn/web/book/[/url]

[url="http://qwerks.com/"]http://qwerks.com/[/url]

[url="ftp://nihao.dlut.edu.cn/pub/Windows/BookRead/ssreader/"]ftp://nihao.dlut.edu.cn/pub/Windows/BookRead/ssreader/[/url]

[url="http://arith.stanford.edu/"]http://arith.stanford.edu/[/url]

[url="http://www.indies-av.co.jp/momotaro/movie/index.html"]http://www.indies-av.co.jp/momotaro/movie/index.html[/url]

[url="http://www.lndj.net/"]http://www.lndj.net/[/url]

[url="http://www.rotten.com/"]http://www.rotten.com/[/url]

[url="http://www.confluent.fr/javadoc/j2eee.html"]http://www.confluent.fr/javadoc/j2eee.html[/url]

[url="http://clareby.topcities.com/life.htm"]http://clareby.topcities.com/life.htm[/url]



Linux日志式文件系统面面观

文件系统是用来管理和组织保存在磁盘驱动器上的数据的系统软件,其实现了数据完整性的保 证,也就是保证写入磁盘的数据和随后读出的内容的一致性。除了保存以文件方式存储的数据以外,一个文件系统同样存储和管理关于文件和文件系统自身的一些重要信息(例如:日期时间、属主、访问权限、文件大小和存储位置等等)。这些信息通常被称为元数据(metadata)。

  由于为了避免磁盘访问瓶颈效应,一般文件系统大都以异步方式工作,因此如果磁盘操作被突然中断可能导致数据被丢失。例如如果出现这种情况:如果当你处理一个在linux的ext2文件系统上的文档,突然机器崩溃会出现什么情况?

  有这几种可能:

  *当你保存文件以后,系统崩溃。这是最好的情况,你不会丢失任何信息。只需要重新启动计算机然后继续工作。

  *在你保存文件之前系统崩溃。你会丢失你所有的工作内容,但是老版本的文档还会存在。

  *当正在将保存的文档写入磁盘时系统崩溃。这是最糟的情况:新版文件覆盖了旧版本的文件。这样磁盘上只剩下一个部分新部分旧的文件。如果文件是二进制文件那么就会出现不能打开文件的情况,因为其文件格式和应用所期待的不同。

  在最后这种情况下,如果系统崩溃是发生在驱动器正在写入元数据时,那么情况可能更糟。这时候就是文件系统发生了损坏,你可能会丢失整个目录或者整个磁盘分区的数据。

  linux标准文件系统(ext2fs)在重新启动时会通过调用文件扫描工具fsck试图恢复损坏的元数据信息。由于ext2文件系统保存有冗余的关键元数据信息的备份,因此一般来说不大可能出现数据完全丢失。系统会计算出被损坏的数据的位置,然后或者是通过恢复冗余的元数据信息,或者是直接删除被损坏或是元数据信息损毁的文件。

  很明显,要检测的文件系统越大,检测过程费时就越长。对于有几十个G大小的分区,可能会花费很长时间来进行检测。由于Linux开始用于大型服务器中越来越重要的应用,因此就越来越不能容忍长时间的当机时间。这就需要更复杂和精巧的文件系统来替代ext2。

  因此就出现了日志式文件系统(journalling filesystems)来满足这样的需求。

什么是日志式文件系统

  这里仅仅对日志式文件系统进行简单的说明。如果需要更深入的信息请参考文章日志式文件系统,或者是日志式文件系统介绍。

  大多数现代文件系统都使用了来自于数据库系统中为了提高崩溃恢复能力而开发的日志技术。磁盘事务在被真正写入到磁盘的最终位置以前首先按照顺序方式写入磁盘中日志区(或是log区)的特定位置。

  根据日志文件系统实现技术的不同,写入日志区的信息是不完全一样的。某些实现技术仅仅写文件系统元数据,而其他则会记录所有的写操作到日志中。

  现在,如果崩溃发生在日志内容被写入之前发生,那么原始数据仍然在磁盘上,丢失的仅仅是最新的更新内容。如果当崩溃发生在真正的写操作时(也就是日志内容已经更新),日志文件系统的日志内容则会显示进行了哪些操作。因此当系统重启时,它能轻易根据日志内容,很快地恢复被破坏的更新。

  在任何一种情况下,都会得到完整的数据,不会出现损坏的分区的情况。由于恢复过程根据日志进行,因此整个过程会非常快只需要几秒钟时间。

  应该注意的是使用日志文件系统并不意味着完全不需要使用文件扫描工具fsck了。随机发生的文件系统的硬件和软件错误是根据日志是无法恢复的,必须借助于fsck工具。

  目前Linux环境下的日志文件系统

  在下面的内容里将讨论三种日志文件系统:第一种是ext3,由Linux内核Stephen Tweedie开发。ext3是通过向ext2文件系统上添加日志功能来实现的,目前是redhat7.2的默认文件系统;Namesys开发的ReiserFs日志式文件系统,可以从[url="http://www.namesys.com"]www.namesys.com[/url]下载,目前Mandrake8.1采用该日志式文件系统。SGI在2001年三月发布了XFS日志式文件系统。可以在 oss.sgi.com/projects/xfs/下载。下面将对这三种日志文件系统采用不同的工具进行检测和性能测试。

安装ext3

  关于ext3文件系统技术方面的问题请参考Dr. Stephen Tweedie的论文和访谈。ext3日志式文件系统直接来自于其祖先ext2文件系统。其具有完全向后兼容的关键特性,实际上其仅仅是在ext2日志式文件系统上添加了日志功能。其最大的缺点是没有现代文件系统所具有的能提高文件数据处理速度和解压的高性能。

  ext3从 2.2.19开始是作为一个补丁方式存在的。如果希望对内核添加对ext3文件系统的支持,就需要使用补丁,可以从[url="ftp://ftp.linux.org.uk/pub/linux/sct/fs/jfs"]ftp.linux.org.uk/pub/linux/sct/fs/jfs[/url]或[url="ftp://ftp.kernel.org/pub/linux/kernel/people/sct/ext3"]ftp.kernel.org/pub/linux/kernel/people/sct/ext3[/url]得到补丁程序,一共需要如下文件:

  * ext3-0.0.7a.tar.bz2:内核补丁

  * e2fsprogs-1.21-WIP-0601.tar.bz2 支持ext3的e2fsprogs程序套件

  拷贝linux-2.2.19.tar.bz2和ext3-0.0.7a.tar.bz2到/usr/src目录下,进行解压:

  mv linux linux-old
  tar -Ixvf linux-2.2.19.tar.bz2
  tar -Ixvf ext3-0.0.7a.tar.bz2
  cd linux
  cat ../ext3-0.0.7a/linux-2.2.19.kdb.diff | patch -sp1
  cat ../ext3-0.0.7a/linux-2.2.19.ext3.diff | patch -sp1

  首先对内核添加SGI的kdb内核调试器补丁,第二个是ext3文件系统补丁。下来就需要配置内核,对文件系统部分的”Enable Second extended fs development code”回答Yes。然后编译。

  内核编译安装以后,需要安装e2fsprogs软件套件:

  tar -Ixvf e2fsprogs-1.21-WIP-0601.tar.bz2
  cd e2fsprogs-1.21
  ./configure
  make
  make check
  make install

  下来要做的工作就是在分区上创建一个ext3文件系统,使用新内核重新启动,这时候你有两种选择创建新的日志文件系统或者对一个已有的ext2文件系统升级到ext3日志文件系统。

  对于需要创建新ext3文件系统的情况下,只需要使用安装的e2fsprogs软件包中的mke2fs命令加-f参数就可以创建新的ext3文件系统:

  mke2fs -j /dev/xxx

  这里/dev/xxx是希望创建ext3文件系统的新分区。-j参数表示创建ext3而不是ext2文件系统。可以使用参数”-Jsize=”来指定希望的日志区大小(n单位为M)。

  升级一个已有的ext2,使用tune2fs就可以了:

  tune2fs -j /dev/xxx

  你可以对正在加载的文件系统和没有加载的文件系统进行升级操作。如果当前文件系统正在被加载,则文件.journal会在文件系统加载点的所在目录被创建。如果是升级一个当时没有加载的文件系统,则使用隐含的系统inode来记录日志,这时候文件系统的所有内容都会被保留不被破坏。

  你可以使用下面的命令加载ext3文件系统:

  mount -t ext3 /dev/xxx /mount_dir

  由于ext3实际上是带有日志功能的ext2文件系统 ,因此一个ext3文件系统可以以ext2的方式被加载。

安装XFS文件系统

  如果需要从技术方面了解XFS文件系统,请参考SGI的XFS文件系统和SGI信息页面。也可以参考FAQ。

  XFS是一个SGI开发的linux环境下的日志文件系统,它是一个成熟的技术,最初是使用在IRIX系统上的文件系统。XFS遵循GPL版权申明。目前xfs文件系统最新版本是1.02。可以[url="http://linux-xfs.sgi.com/projects/xfs/102_release.html"]http://linux-xfs.sgi.com/projects/xfs/102_release.html[/url]从下载得到对内核xfs文件系统支持补丁或者直接下载RPM包方式的内核,下面我们就以补丁方式说明如何对2.4.14内核使用xfs。首先下载如下内容

  patch-2.4.14-xfs-1.0.2.bz2
  patch-2.4.14-xfs-1.0.2-kdb.bz2

  拷贝Linux内核linux-2.4.2.tar.bz2到 /usr/src目录下,修改老的内核目录名,然后解压新内核:

  mv linux linux-old
  tar -Ixf inux-2.4.2.tar.bz2

  拷贝每个每个补丁到内核源码目录下(例如:/usr/src/linux),并打补丁:

  zcat patch-2.4.14-xfs-1.0.2.bz2 | patch -p1
  zcat patch-2.4.14-xfs-1.0.2-kdb.bz2 | patch -p1

  然后配置内核,打开文件系统部分的内核选项:”XFS filesystem support” (CONFIG_XFS_FS)和”Page Buffer support” (CONFIG_PAGE_BUF)。同时需要升级下面这些系统工具到下面或更高的版本:

  modutils-2.4.0
  autoconf-2.13
  e2fsprogs-devel-1.18

  安装新内核并重启服务器。

  然后下载xfs工具。这个软件包包括下面的命令来处理文件系统,使用下面的命令来安装该软件包::

  tar -zxf xfsprogs-1.2.0.src.tar.gz
  cd xfsprogs-1.2.0
  make configure
  make
  make install

  安装这些命令以后,就可以创建新的XFS文件系统:

  mkfs -t xfs /dev/xxx

  如果xxx是一个已经存在的文件系统,那么就需要使用”-f”参数来创建新分区,但是记得这将会破坏该分区的所有数据。

  mkfs -t xfs -f /dev/xxx

  创建以后就可以使用基于下面的命令加载新文件系统:

  mount -t xfs /dev/xxx /mount_dir
接后。。。      
安装ReiserFS文件系统

  如果希望更多地从技术方面了解reiserFS文件系统,请参考NAMESYS和FAQ。

  ReiserFS文件系统从2.4.1-pre4开始就是Linux内核的正式支持的文件系统了。为了使用reiserFS文件系统那你首先需要在系统上安装文件系统支持工具(如:创建ReiserFS文件系统的mkreiserfs工具)。最新的ReiserFS文件系统版本可以以补丁的方式添加到2.2.x或者2.4.x内核中。这里我们以2.2.19为例:

  第一步,首先下在内核源码,并下在ReiserFS文件系统的2.2.19补丁 ,目前补丁最新版本是linux-2.2.19-reiserfs-3.5.34-patch.bz2。同时应该下载工具软件包:reiserfsprogs-3.x.0j.tar.gz。

  然后解压内核源码和补丁包到/usr/src中:

  tar -Ixf linux-2.2.19.tar.bz2
  bzcat linux-2.2.19-reiserfs-3.5.34-patch.bz2 | patch -p0

  编译内核支持reiserfs,安装内核。然后安装文件系统工具软件:

  cd /usr/src/linux/fs/reiserfs/utils
  make
  make install

  安装新内核并重新启动。现在就可以创建新的reiserfs文件系统,并加载:

  mkreiserfs /dev/xxxx
  mount -t reiserfs /dev/xxx /mount_dir

  文件系统性能测试

  测试环境使用的计算机环境如下:Pentium III - 16 Mb RAM - 2 Gb HD,操作系统为RedHat6.2。所有的文件系统都能正常工作,所以就进行benchmark分析来对它们进行性能比较。首先我直接拔掉系统电源以模拟系统掉电情况,以测试日志文件系统恢复过程。所有的文件系统都成功地经过了文件扫描检测阶段,在数秒以后系统都经过了扫描然后正常启动了系统。

  下一步就采用了bonnie++性能测试程序([url="http://www.coker.com.au/bonnie"]www.coker.com.au/bonnie[/url]++)进行测试,这个程序对一个文件进行数据库类型的访问,进行了创建、读和删除小文件,这些操作对于Squid、INN或者Maildir格式的邮件服务器程序(qmail)是最常见的操作。性能测试命令为:

  bonnie++ -d/work1 -s10 -r4 -u0

  其对加载在/work1目录下的文件系统进行了10Mb(-s10)的测试。因此在执行测试之前必须创建适当类型的文件系统并加载到目录/work1下。其他的参数指定内存大小(-r4)的M数,和以root身份运行测试程序,测试结果如下:

每种测试都有两组数据:文件系统速度(K/sec)和CPU占用率(%CPU)。速度越高,文件系统越好。而对于CPU率来说,数字越小性能越好。可以看到Reiserfs文件系统在文件操作方面(Sequential Create和Random Create部分的) 的性能最好,超出其他文件系统10倍之多。在其他方面(Sequential Output和Sequential Input)则和其他文件系统性能不相上下。对于其他文件系统则没有特别明显的区别。XFS性能接近ext2文件系统,ext3文件系统则比ext2要稍微慢上一些(因为记录日志需要一些额外的时间)。 最后使用从[url="http://www.namesys.com"]www.namesys.com[/url]得到的性能测试程序mongo,并对其进行了修改以对三种日志文件系统进行测试。这里在mongo.pl程序中添加了添加了加载xfs和ext3文件系统的命令,并对其进行格式化处理,然后就开始性能测试分析。 该脚本格式划分区/dev/xxxx,加载其并在每个阶段运行指定数目的进程:创建、拷贝、符号连接处理、读、显示文件状态信息、重命名和删除文件。同时,该程序在创建和拷贝阶段以后会计算分段数(fragmentation)。

  Fragm = number_of_fragments / number_of_files

  可以在结果文件中得到同样的测试比较结果:

  log - 原始结果
  log.tbl - 比较程序的输出结果
  log_table - 表格式的结果

  下面的命令进行测试:

  mongo.pl ext3 /dev/hda3 /work1 logext3 1

  如果要测试其他文件系统,就需要把上面命令的参数中的ext3修改为reiserfs或xfs。其他参数分别为要加载的分区,加载路径,保存测试结果的文件名及启动的进程数。

  下面的表格是测试结果。数据单位为秒。值越低性能越好。第一个表格测试使用的数据块大小为100字节,第二个表格为1000字节,最后一个为10000字节

  从上面的表格可以看到ext3在状态删除和重命名方面要性能更好一些,而ReiserFS文件系统在文件创建和拷贝性能表现更出色。同时也可以看到reiserFS正如其技术文档提到的其在小文件处理方面性能相当出色。

  结论

  目前Linux至少有两个健壮可靠的日志文件系统可供选择(XFS和reiserFS),其都得到了广泛的应用。例如Mandrake8.1就默认支持reiserFS文件系统。

  从性能测试的结果可以看到,reiserFS是最好的选择。


Linux的引导过程剖析

大家在安装完Linux后,有没有留心过Linux的引导过程呢?本文就尝试以通俗的语言来描述这一过程和相关的各种情况,了解了Linux的引导过程后,您在面对Linux引导过 程的出现的各种问题时就能做到心中有数了。

  Linux的一个吸引人的特性就是用户可以自行定制整个系统,你可是运行一个只有1M的“迷你”Linux,也可以运行一个几G的强大Linux。而无论你运行怎样的Linux,你都是先从引导程序开始运行的。对于普通用户,大多都是在个人电脑上运行Linux的。个人电脑,又叫PC机,是我们常见的使用Intel或AMD的芯片的电脑。当我们接通PC机的电源之后,CPU会执行第一条指令,第一条指令通常是使CPU能跳跃到BIOS的入口地址上,然后BIOS就开始进行开机自检,包括对内存等硬件进行检测,如果存在其它设备的也自带有BIOS(比如SCSI或RAID设置等),也会执行它们。完成自检后的BIOS会根据设定好的启动设备和启动顺序来启动真正的操作系统,如Linux(本文以Linux为例)。

  对于PC机,有以下几种设备可以作为启动设备来使用:

  1) 硬盘
  这是最常用的启动设备,硬盘有IDE接口和SCSI接口的两种,由于IDE硬盘价格比SCSI硬盘要便宜的多,所以,大多数PC机都使用的是IDE硬盘。一台PC机中可能有多个硬盘,用户可以在PC机的CMOS设置哪块硬盘首先启动。

2) 软盘
  软盘是PC机必备的设备之一。常用作安装系统或作为系统应急盘使用。也出现了很多一张软盘上的Linux系统。

  3) 光盘驱动器
  光盘驱动器也是PC机必备的设备之一,包括CDROM、DVDROM、以及各种刻录机等。现在多数用户都是通过光驱来安装Linux的。

  4) USB盘
  随USB盘的出现,许多主板也都开始支持从USB设备上来启动系统了。USB盘的容量远大于软盘,目前有取代软盘的趋势。

  5) 网卡的Boot ROM
  有一些网卡带有Boot ROM芯片,可将引导信息写入Boot ROM,许多主板都支持Boot ROM启动。常用于无盘工作盘环境中。

  无论系统选择了哪一种启动设备,它都将会去将该设备起始地址的内容读入内存,如果你的启动设备是IDE硬盘,系统就会去去读取硬盘的第一个扇区(这个扇区通常被称做主引导扇区,又称MBR),并将这个扇区的内容读入内存,然后运行它。到这一步的时候是引导Linux操作系统的关键了,这一步将尝试去启动Linux的引导程序,如果找不到引导程序,将无法引导Linux。许多人在无法启动Linux的时候,其实大多都是引导程序损坏或是配置不当所造成的。

  那么什么是引导程序呢?其实你每天打开电脑,所接触到的第一个程序就是引导程序。它的责任是载入操作系统内核软件并把控制权转交给它。对于Linux来说引导程序就是负责在启动计算机时装入Linux的Kernel,并将计算机的控制权交给Kernel,然后Kernel再进一步初始化剩余的操作系统,直到Linux显示用户登录画面。由此可见引导程序对于一个操作系统来是非常重要的。Linux的引导程序有很多种,最为常见是lilo和grub。

  1) lilo
  lilo是用于Linux的灵活多用的引导程序。它并不依赖于某一特定文件系统,能够从软盘和硬盘引导Linux内核映像,当然它也能够引导其它操作系统。在grub出现之前,lilo可谓Linux引导程序的最佳选择。而目前仍然也很多人在使用它。

  2) grub
  grub是比lilo新的一个功能强大的引导程序。专门处理Linux与其他操作系统共存的问题。它可以引导的操作系统有Linux、OS/2、Windows系列、BeOS、Solaris、FreeBSD、NetBSD等。它的优势在于支持大硬盘、支持开机画面(能支持到1024×768的画面)、支持菜单式选择,并且分区位置改变后不必重新配置,使用非常方便。较新发行的各版本Linux大多采用grub作为默认的引导程序。

  3) 其它引导程序
  如果你没有安装lilo或grub,或者你的lilo或grub损坏了(比如不小心覆盖了MBR),那么你将无法直接引导Linux。还好,这时候你还可以通过其它方式来引导,比如:Linux的引导盘,或者是利用loadin、syslinux等程序来从ms-dos中载入Linux。

如果引导程序成功后,Linux内核就接管了系统,开始了Linux的启动过程(关于Linux的启动过程将另文介绍)。但如果引导过程的发生错误又将如何处理呢?

  1.首先分析屏幕显示的错误信息

  引导程序本身所显示的错误信息都是有含义的,需要认真阅读。比如:

  lilo的错误信息 

  当lilo启动完成时,会在屏幕上显示字符串”lilo”,其实这其中的每个字母背后都对应着特定的操作。如果lilo在某个部分出了错,我们就可以根据屏幕上当前出现的字母推断出故障原因。比如:当屏幕上什么都没出现,就可能表示lilo还未被安装或者lilo所在的分区未被设为active状态。而屏幕显示”li“,则表示lilo引导程序的第一部分能够将lilo引导装入程序的第二部分装入,但却不能执行。这可能是因为硬盘参数设置不当或者是因为在移动/boot/boot.b时没有运行map安装程序。而屏幕显示”lil”,则可能是介质故障或硬盘参数设置不当,无法从map文件中装载描述符表……,详细的错误信息解释也可以从相关网站上找到。

  grub的错误信息:

  和lilo相比grub的信息要好理解一些,因为它是直接用英语来表达的,而不是用符号。比如:”Hard Disk Error”、”Read
Error”、”Selected disk doesn’t exist”、”Disk geometry error”、”Device
string unrecognizable”、”Attempt to access block outside
partition”、”Partition table invalid or corrupt”等。详细的错误信息解释也可以从相关网站上找到。

  2.通过光盘或软盘引导进入系统,修复原引导程序

  通过分析屏幕显示的错误信息后,应该能大致找到原引导程序的出错原因。这时候可以通过光盘或软盘引导进入系统。许多Linux的发行光盘就是可以启动的,比如:slackware就是很好的引导光盘。进入系统后,可以重装引导程序或者重新设置引导程序。



Linux常用操作疑难解答(1)

??编者按:自从“Linux园地”创办以来,一直受到广大Linux爱好者的欢迎。其中也有不少朋友提出了一些自己在日常操作中遇到的问题,近期,我们将进行统一解答,希望能为广大的Linux爱好者提供更好的服务!

??问:如何快速进入我曾进入过的目录?

??答:你常会发现在不同的目录间转来转去后,往往会不记得你曾进入的某个目录的路径。要解决这一问题,可采用下面两个命令来实现。

??pushd 该命令允许你定义你想进入的目录。它的语法与cd命令相同。比如:

??pushd /anydir/anylocation/

??popd 该命令允许你在任何地方直接跳回到你前面定义的那个目录。它的语法很简单,就是popd。

??问:如何用当前路径作提示符?

??答:对于bash来说,在.bashrc文件中加入如下一行内容即可:

??PS1=”\$PWD\\$”

??问:如何能得知一个目录所占据的空间大小?

??答:在命令行键入du -c,该命令将告知你某目录所占用的空间。Du的意思是Disk Usage,-c是du命令的一个功能选项。该命令还有一条有用的选项-ch,该选项将使得du以KB或MB的空间表示法显示所占用的空间,而不是以字节为单位。

??问:用什么方法能获知用户的操作情况?

??答:运行last -N(N为正整数)即可。它可以列出系统记录的所有用户最近N个操作行动。你也可以搭配grep来找出特定用户的使用情况,比如:

??last -100 | grep daniel

??它会列出用户daniel最近执行的100个操作行动情况。

??问:如何把man的内容转换成普通的文本文件?

??答:假设你要将inetd这个指令的man的内容转成文本文件,你只需要在shell下键入如下命令即可:

??man inetd | col -b > inetd.txt

??问:如何在Linux中设定PATH?

??答:通常,Linux的默认shell是bash shell,它的系统整体设定可以加在/etc/profile文件之中,而个人设定,则加在~/.bash_profile文件之中。设定方式为:

??export PATH=/usr/sbin:/usr/bin:/usr/local/bin

??export PATH=$PATH:/usr/local/bin

??问:如何隐藏系统信息?

??答:通常,在你登入Linux时,会在屏幕上显示Linux发行版名称、版本、内核版本和服务器名称等信息。若你不想让它们显示出来,而只是给出“Login:”提示符,则可按如下步骤操作:

??步骤1:编辑“/etc/rc.d/rc.local”文件,在下面所示的语句前加上“#”:

??# This will overwrite /etc/issue at every boot. So,make any changes you

??# want to make to /etc/issue here or you will lose them when you reboot.

??#echo “” > /etc/issue

??#echo “$R” >> /etc/issue

??#echo “Kernel $(uname -r)? on $a $(uname -m)” >> /etc/issue

??#cp -f /etc/issue /etc/issue.net

??#echo >> /etc/issue

??步骤2:删除“/etc”目录下的文件“issue.net”和文件“issue”。操作如下:

???[[email="root@kapil"]root@kapil[/email] /]# rm -f /etc/issue

???[[email="root@kapil"]root@kapil[/email] /]# rm -f /etc/issue.net

??问:如何取消“Ctrl+Alt+Del”组合键的重开机功能?

??答:有时为了系统安全,我们可以取消经由“Ctrl+Alt+Del”键盘重开机的功能,你可以在/etc/inittab中加以设定,将“Ctrl+Alt+Del”组合键的重开机功能去除,设定如下:

??# ca::ctrlaltdel:/sbin/shutdown -t3 -rf now

??将此行用“#”标示起来即可。最后,应执行如下命令来使变动生效:

??/sbin/init q

??问:不小心误删了/dev/xxx怎么办?

??答:不用担心,/dev/下的设备文件是可以重建的,请用如下命令来重建即可:

??cd /dev

??./MAKEDEV xxx

??问:Linux可使用多大的内存容量?

??答:大多数Linux的标准内核的缺省内存可用上限是64MB。

??若要指定其它的可用内存容量上限,则你可在BOOT lilo:提示符下键入:

??mem=XXM

??或者在你的/etc/lilo.conf文件中添加如下一行内容:

??append=”mem=XXM”

??其中参数“XXM”指定内存大小。单位是兆字节(MB)。比如:“128M”。

??如果在/etc/lilo.conf中已有一个“append=”指示配置,则你应将“mem=”加在已有参数的后面,且要在前面的已有参数之后空一格。

??比如:append=”parport=0×3bc,none serial=0×3f8,4 mem=XXM” (此例仅供示范用)

??另外,你必须运行命令/sbin/lilo -v以使新修改的配置生效。

??问:如何使Linux的swap(交换)空间能超过128MB?

??答:创建几个swap分区或swap文件。Linux最多能支持16swap区,在核心版本2.1.117之前的Linux允许每个区最大128MB。而很老的Linux核心仅能支持的swap分区大小为16MB。目前的2.2.XX内核版本所容许的单一swap空间为2GB。

??在Alpha和Sparc64机器上的Linux操作系统的页面机制中的页面大小是8KB,因此它支持的swap分区最大可为512MB。而128MB的限制是对那些4KB页面而言的机器,因为swap分区的最大值应等于页面大小×每个机器字的位数(原因是它仅使用单个页面分配表)。