您现在的位置: 无忧电子商务网 >> 信息学院 >> 应用技巧 >> linux >> 正文

Linux 管理员手册(3)

作者:佚名    信息学院来源:IT世界    点击数:    更新时间:2006-3-28 我要参与讨论

  参阅e2fsck 手册页)

  自动检查只对启动时自动mount的文件系统发生作用。使用fsck 手工检查其他文件系统,比如软盘。

  如果fsck 发现为修复的问题,你需要深入了解文件系统的一般工作原理和有问题的文件系统的细节,或好的备份。最后一个办法容易(虽然冗长)安排,如果你自己不知道,有时可以通过朋友、Linux新闻组、电子邮件列表或其他支持源安排。我很想告诉你更多,但我对这的学习和实践也并不多。Theodore T'so的debugfs 程序应该有用。

  fsck 只能运行于未mount的文件系统,不要用于已mount的文件系统(除了启动时的只读根文件系统)。这是因为它存取原始磁盘,在操作系统不知道的情况下修改文件系统。 There will be trouble, if the operating system is confused.

    用badblocks检查磁盘错误

  应该周期性地用badblocks 命令检查坏块它输出找到的所有坏块的编号的列表。列表给fsck 记录在文件系统数据结构中,使操作系统存储数据时不使用这些坏块。举例:

$ badblocks /dev/fd0H1440 1440 > bad-blocks
$ fsck -t ext2 -l bad-blocks /dev/fd0H1440
Parallelizing fsck version 0.5a (5-Apr-94)
e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Check reference counts.
Pass 5: Checking group summary information.

/dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED *****
/dev/fd0H1440: 11/360 files, 63/1440 blocks
$

  如果badblocks报告一个块已经使用,e2fsck 将试着将此块移到其他地方。如果该块真的坏了,而不是在坏块边缘,文件内容可能丢失。

    Fighting fragmentation

  文件写到磁盘时,不一定在连续的块中。没在连续块中的文件叫碎片。因为磁盘的读写头回更多地移动,读碎片文件会花较长的时间。虽然如果有好的读前缓冲系统不会有什么问题,但最好还是避免碎片。

  Ext2文件系统试图使碎片最少,即使不能将一个文件的所有块存在连续扇区中,也尽量靠近。 Ext2通常有效地安排里文件其他块最近的空闲块,因此很少需要关心碎片问题。 Ext2文件系统有一个消除碎片程序,请看参考书目中的 [TV]。

  有许多MSDOS消碎片程序在文件系统中移动块以消除碎片。其他一些文件系统,消碎片必须通过备份-重产生-回存文件系统来完成。对于所有文件系统,消碎片应该备份文件系统,因为很多原因可能在消碎片过程中导致错误。

    对所有文件系统的其他工具

  一些其他工具对管理文件系统有用。 df (Disk Free)显示一个或多个文件系统的空闲磁盘空间。 du (Disk Usage)显示一个目录和其内的所有文件使用了多少磁盘空间。这用于发现磁盘空间浪费。

  sync 强制将磁盘缓冲的所有未写块写入磁盘(见 5.6)。这一般无须手工完成,由守护进程update 自动完成。这在有些情况下很有用,例如,如果update 或其辅助进程bdflush 死了,或你不能等运行update 必须马上 关闭电源。

    对ext2文件系统的其他工具

  除了产生文件系统的mke2fs 和检查文件系统的e2fsck 直接或通过与文件系统类型无关的前端存取外,Ext2文件系统还有几个有用的工具。

  tune2fs 调整文件系统参数。一些有趣的参数有:

  最大mount数。当文件系统被mount过多少次以后,即使标志是干净的,e2fsck 强制检查。对用于开发或测试的系统,应该降低这个限制数。

  最大检查间隔。到达这个间隔时间,即使标志是干净的,e2fsck 强制检查。如果文件系统不是经常mount,可以不使能这个功能。

  保留给root的块数。Ext2给root保留一些块,这样如果文件系统满了,还可能无须删除任何东西做系统管理。保留量确省是5%,这在大多数磁盘上不会造成浪费。当然,软盘没有理由保留块。

  参阅tune2fs 手册页

  dumpe2fs 显示一个ext2文件系统的信息,大部分来源于超级块。有些输出信息是技术性的,要求对文件系统工作的理解(见附录 ), 但许多即使是一般管理员是也易于理解的。

  debugfs 是一个文件系统调试器。它允许直接存取磁盘上的文件系统数据结构,可用于修复fsck 不能自动修复的磁盘。它也可用于恢复被删除的文件。但是,debugfs 非常要求你理解你所干的事,错误的理解和操作将破坏你的所有数据。

  dump 和restore 可用于备份一个ext2文件系统。它们是传统UNIX备份工具的ext2版。关于更有关备份的信息见 9章。

    没有文件系统的磁盘

  并非所有磁盘或分区都作为文件系统使用。例如对换分区,就没有文件系统。许多软盘作为磁带仿真使用,所以tar 或其他文件可以直接写到原始磁盘,而不是文件系统。Linux启动软盘不包括文件系统,只是原始核心。

  不用文件系统的优点是有更多的磁盘可用空间,因为文件系统需要一些记录。也更容易与其他系统兼容;例如tar 文件格式在所有系统上相同,而文件系统则在大多数系统上不同。如果需要,你会很快使用没有文件系统的磁盘。可启动的 Linux软盘无需文件系统,虽然有也可能。

  使用原始磁盘的一个原因是做映象拷贝。比如,如果磁盘包含部分损坏的文件系统,那么在修复前做一个完全拷贝是个好主意,因为如果你修错了,可以重来。做映象拷贝的一个方法是用 dd :

$ dd if=/dev/fd0H1440 of=floppy-image
2880+0 records in
2880+0 records out
$ dd if=floppy-image of=/dev/fd0H1440
2880+0 records in
2880+0 records out
$

  第一个dd 给软盘做了一个完全映象到文件 floppy-image , 第二个把映象写到软盘。 (假设用户在第二个命令前换了软盘。否则这个命令对可能没用。)

    分配磁盘空间

    分区概要
  用最好的方式给磁盘分区不容易,而且,没有一个通用的正确方法,这包括很多因素。

  传统的方法是有个(相对)小的根文件系统,包括 /bin , /etc , /dev , /lib , /tmp , 和其他系统启动和运行需要的东西。这种方法,根文件系统(在它自己的分区或硬盘上)是所有系统启动需要的东西。理由是如果根文件系统小而不常用,系统崩溃时它就不太容易损坏,而且崩溃时也易于修复。然后给/usr 目录树、用户主目录(经常在/home )、对换空间产生单独的分区或使用单独的硬盘。分离的用户主目录(存用户文件)在其自己的分区中易于备份,因为一般无须备份程序(/usr 中)。网络环境中,这样可以使多台计算机共享/usr (例如使用NFS) 这样每台机器可以节约数十、数百兆的磁盘空间。

  多分区的问题是将整个磁盘的空闲空间分割成若干小片。现在,由于磁盘和操作系统已经很可靠,许多人更倾向与一个分区存所有文件。当然,这样可能比备份、回存小分区痛苦些。

  对于小硬盘(假设你不做核心开发),最好的方法可能是只要一个分区。对于大硬盘,分几个大分区可能更好。尤其在某种情况下出现错误时。 (注意这里说的小和大是相对的,根据你对磁盘空间的需求而言。)

  如果你有多个硬盘,你可能想让根文件系统(包括/usr ) 在一个上,而用户主目录在另一个上。

  最好准备尝试几个不同的分区方案(over time, not just while first installing the system)。这有些工作量,因为这其实是从头安装系统若干遍,但这是确认正确的唯一方法。

    空间要求

  你安装的Linux给出一些对不同配置所需磁盘空间的指示。单独安装的程序可能也是。这能帮助你计划你的磁盘使用,但你应该为以后可能的需求保留一些额外空间。

  拥护文件总量基于你的用户希望。许多人好象想要他们所有可能的文件量,但多多益善。有些人只有很少的文字处理,也许几兆就够,而有些人可能需要上GB的空间做图象处理。

  顺便说一句,用KB或MB比较文件大小和用MB给出的磁盘空间时,应当注意这2者的可能的不同。一些硬盘制造商喜欢称1000字节为1KB,1000KB为1MB,而计算机世界的其他地方都以1024为因数。因此我的MB硬盘实际只是330MB硬盘。

  对换空间在5.5章讨论。


    硬盘分配举例

  我原来有个109MB的硬盘,现在我用一个330MB硬盘。我解释一下我如何分区这些硬盘并说明为什么。

  当我的需要和操作系统变化时,我用不同的方法分区109MB硬盘。我说明2种方案。首先,我曾和Linux一起运行MSDOS,为此,我需要大约20MB给MSDOS、C编译器、编辑器、一些其他工具、我工作的程序、和足够的空闲空间。给Linux开了10MB对换分区,其他79MB作为一个分区给Linux。我曾试验给出单独的根,/usr , 和/home ,但这样就没有什么空闲空间干什么有趣的事了。

  当我不再需要MSDOS,我重新分区,12MB对换分区,其他是一个单独的文件系统。

  从头分区是为了玩玩要求自己分区的一些东西,例如试试不同的Linux,或比较文件系统的速度。当没有这些需要后,就把它作为对换区(我喜欢打开好多窗口)。

    给Linux增加更多的磁盘空间

上一页  [1] [2] [3] [4] [5] [6] 下一页

在google里搜索更多Linux 管理员手册(3)

Google
Web www.51ec.org
  • 上一篇信息学院:

  • 下一篇信息学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    我来说两句 对此文章发表了评论
      昵 称: *必填    ·注册用户·
      评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
    评 论
    内 容

     
    评论列表 (最新 评论仅限网友观点!)

    热门文章
  • 此栏目下没有热点信息学院
  • 供求信息




    | 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明