热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

Linux 文件系统精通指南

来源: 作者: 时间:2007-02-06 Tag: 点击:

日志文件管理系统(如 ext3 和 ReiserFS)记录对文件系统元数据:inode、空闲块分配映射、inode 映射等的更改。当系统崩溃时,可以通过此方式检查日志以获得最近修改的元数据,从而确保快速恢复文件系统。此功能对大型系统尤其重要。如果没有此功能,则在出现硬件故障后,对于 ext2 等文件系统,需要在重新启动时运行 fsck 工具。对于大型文件系统,此过程可能要花费几个小时。

当然,记录日志需要付出一定的代价,即需要在处理时间和恢复之间寻求一个平衡。对于 ext3,可以选择日志记录模式,这些模式允许在寻求上述平衡时做出某些自主决定。journal 模式(记录所有文件系统数据,包括数据块和元数据)是最安全但也是最慢的模式。默认模式(称作 orderd)只记录元数据,但在写元数据之前先将数据块写入磁盘,从而在快速恢复和快速性能之间取得折衷。最快的模式是 writeback 模式,该模式只记录元数据。在此模式中,可能会丢失文件数据,但文件系统自身的完整性将得到维护。

在编写本文档期间,Reiser4 刚好已经发布。同 ReiserFS3.6 一样,ReiserFS4 只记录元数据。与 ReiserFS3.6 不同的是,它基于新的舞蹈树算法,此算法似乎比平衡树算法更快。它还可以扩展到使用无数个 CPU,而且在磁盘写入时具有内置加密和压缩功能。

OCFS 是 Oracle 真正应用程序集群 (RAC)、配置文件和数据库文件的指定文件管理系统。其他文件(甚至是 Oracle 软件文件)将在 ext2/ext3 或 ReiserFS 上获得更好的性能。

当前,就文件管理系统的选择来讲,共同的见解是,除少数情况外,ext2、ext3 和 ReiserFS 之间的性能基本相当。然而在各种系统的拥护者之间却爆发了激烈的争论。ReiserFS 由于能够处理可变的文件大小,因此更适用于具有许多小文件的系统。当然,如果您正要或计划在 Linux 上运行 Oracle RAC,则可能需要为 Oracle 数据文件和配置文件安装 OCFS 或使用自动存储管理 (ASM)。

除了最常见的 ext2/ext3 和 ReiserFS 文件系统以外,Linux 还支持其他本地文件系统,包括 IBM 的 jsf 和 SGI 的 xfs。对传统 UNIX 文件系统的支持包括 SYSV、BSD、Solaris、Next 和 Veritas VxFS。在各个级别支持的其他文件系统包括

 

  • Microsoft 的 fat、ntfs、vfat、fat32
  • IBM 的 hpfs (OS/2)
  • Apple 的 Macintosh hfs
  • Amiga 的 affs
  • Acorn 磁盘文件系统 adfs

 

请注意,Oracle 不支持某些文件系统,因此在使用这些文件系统时风险自负。

Linux 内核 2.6 版中最重要的新特性是访问控制列表 (ACL)。ACL 允许为一个或多个用户列表或用户组授予对单个文件的使用权限。其他新特性包括:

 

  • 对 CD-ROM 上使用的 ISO 9660 文件系统的增强支持
  • 可以存储在文件系统中的默认挂载选项
  • 用于加速文件搜索的索引目录
  • 对 Windows 的逻辑磁盘管理器(动态磁盘)的支持
  • 能够将 ntfs 挂载为读/写,但写仍处于试验状态
  • 对 fat12(旧 DOS 文件系统)的增强支持

 

处理分区和文件系统的工具

要添加一个新磁盘或调整现有磁盘的大小,您需要使用 fdisk 或 cfdisk。尽管 cfdisk 表面上更易于使用,但 fdisk 已被证实最适用于磁盘分区。以下是有关使用 Linux 版本 fdisk 的几个原则,帮助您了解其可能得到的结果。

首先,以超级用户身份用设备名称调用 fdisk:

 

# fdisk /dev/hda

The number of cylinders for this disk is set to 1940.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):m

 

可以通过使用 p(或 print)命令显示分区表。使用 n 或 new 命令可创建新分区;使用 w 或 write 命令可把新分区表写入磁盘。输入新命令后,fdisk 需要知道您要创建逻辑分区还是主分区:

 

Command (m for help):n
Command action
l logical (5 or over)
p primary partition (1-4)
l
No free sectors available

Command (m for help):

 

您可以看到,如果没有任何空闲空间(如上所示),则您将收到以上消息。但如果有空闲空间,则 fdisk 需要知道您想要的分区号。如果输入“p”(代表主分区),则您将需要做出以下选择。

 

Partition number (1-4):

 

对于逻辑分区,您将需要做出以下选择

 

Partition number (5 or over):

 

然后,您可以输入新分区的起始柱面号。fdisk 将推荐一个默认编号,如下所示:

 

First cylinder (1-1940, default 1):1

 

您可以选择接受此编号。接下来,您需要输入最后一个柱面或分区大小:

 

Last cylinder or +sizeM or +sizeK(1-1940), default 5721:1G

 

此刻,fdisk 将假设这是一个常规 Linux 分区(由分区表“ID”列中的十六进制数字 83 标识)。可以使用 fdisk 中的 t 或 type 命令更改分区类型。可以使用 l 或 list 命令取得 fdisk 的可用分区类型。以下是可用类型的部分列表:

ID System
82 Linux swap
83 Linux
85 Linux extended
8e Linux LVM

 

必须注意,在您运行 write 命令之前,您在 fdisk 中执行的任何操作都将是临时的—如果您出于任何原因要离开 fdisk,则这确实很有好处。

重新组织分区和文件管理系统

由于每个分区都包含各自的文件管理系统,因此调整分区大小涉及调整文件管理系统和分区的大小。因此,可用的重新分区工具取决于所用文件管理系统的类型。对于 ext2/ext3 系统,有一些可以选择将 resize2fs 与 fdisk、GNU Parted 或 Partition Magic 结合使用。对于 ReiserFS,只能将 cfdisk 与 resize_resiszerfs 搭配使用,这是因为 GNU Parted 对于 ReiserFS 来说仍需改进。

resize2fs 和 resize_reiserfs 都可以调整文件管理系统的大小,并要求使用单独的分区大小调整程序 — fdisk 或 cfdisk。我本人曾使用过 GNU Parted 对 ext2 分区进行重新分区。这是一个相当容易使用的程序。GNU Parted 对 ReiserFS 的支持将来会变得更稳健。Partition Magic 是一个用于 DOS 和 Windows 的商业程序,但如果从它附带的启动软盘或 CD-ROM 运行,则可以用于 Linux ext2/ext3 分区。

尽管实际的命令取决于您所要更改到的系统,但更改文件管理系统的一般过程涉及

 

  • 备份分区上的文件
  • 删除分区中的文件
  • 如果使用的是 fdisk,则可能删除一个分区以便为两个更小的分区留出空间
  • 使用相应的命令生成新文件系统。例如,要创建 ext2 文件系统,您可以使用

 

 

$ mke2fs /dev/hda5  15088

_ ..I

 

可以随意指定块计数,如以上命令中的 15,088。以上事件序列的唯一例外是使用以下命令从 ext2 系统移植到 ext3 系统

 

$tune2fs -j /dev/hda3

 

但仍应进行备份。

挂载分区

仅当具有超级用户权限的用户挂载了分区,分区才在 Linux 中可用。对于 /etc/fstab 文件中列出的 Linux 分区,系统启动时会自动挂载。对于 CD-ROM 和软盘驱动器,通常只需单击相应图标即可。
更多的资源

Linux 技术中心

OCFS

ReiserF/SReiser4

Ext2fs 主页


最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册