创建分区和文件系统
本节讨论初级管理(LPIC-1)101 考试的主题 1.104.1 的内容。这个主题的权值是 3。
在本节中,学习以下内容:
- 配置硬盘分区
- 在硬盘和其他介质上创建文件系统
- 使用
mkfs 命令设置 ext2、ext3、reiserfs、vfat 和 xfs 分区
首先,快速回顾一下。在主题 101 的教程 “LPI 101 考试准备(主题 101):硬件和体系结构” 中,学习了 IDE 和 SCSI 硬盘驱动器(比如 /dev/hda 和 /dev/sdb)以及这些设备上的分区(比如 /dev/hda1、/dev/hda5 和 /dev/sda1)。
在主题 102 的教程 “LPI 101 考试准备(主题 102):Linux 安装与包管理” 中,进一步学习了分区,包括主分区、扩展分区 和逻辑分区。还学习了 Linux 文件系统将文件 放在硬盘或其他块存储设备 上的目录 中。与许多其他系统一样,Linux 系统上的目录可以包含其他目录,即子目录。这个教程还讨论了选择分区方式时的考虑因素。
本节回顾块设备和分区,然后介绍 fdisk 命令,这个命令用于在块设备上创建、修改或删除分区。还介绍各种形式的 mkfs 命令(mkfs 代表 make filesystem);这些命令用于将分区格式化为某种文件系统类型。
注意: 除了 LPI 考试所要求的工具和文件系统,还可能会遇到或需要其他工具和文件系统。在 其他工具和文件系统 中,可以找到对其他可用工具的简要概述。
块设备和分区
我们快速回顾一下块设备和分区。如果需要更多信息,请参考 主题 101 和 主题 102 的教程。
块设备
块设备 是一个抽象层,代表任何可以格式化为固定大小的块 的设备;对各个块的访问是相互独立的。这种访问常常称为随机访问。
为可随机访问的固定大小的块建立一个抽象层,这样在使用这些块设备时就不需要关心底层设备是硬盘、软盘、CD、网络驱动器还是某种虚拟设备(比如内存中文件系统)。
块设备的例子包括系统上的 IDE 硬盘驱动器(比如 /dev/hda)或 SCSI 驱动器(/dev/sdb)。使用 ls -l 命令显示 /dev 项。输出行的第一个字符是 b 就表示 块 设备,比如软盘、CD 驱动器、IDE 硬盘驱动器或 SCSI 硬盘驱动器;c 表示 字符 设备,比如磁带驱动器或终端。 例子见清单 1。
清单 1. Linux 块设备和字符设备
[ian@lyrebird ian]$ ls -l /dev/fd0 /dev/hda /dev/sdb /dev/st0 /dev/tty0
brw-rw---- 1 ian floppy 2, 0 Jun 24 2004 /dev/fd0 brw-rw---- 1 root disk 3, 0 Jun 24 2004 /dev/hda brw-rw---- 1 root disk 8, 16 Jun 24 2004 /dev/sdb crw-rw---- 1 root disk 9, 0 Jun 24 2004 /dev/st0 crw--w---- 1 root root 4, 0 Jun 24 2004 /dev/tty0 |
分区
对于某些块设备,比如软盘和 CD 或 DVD 盘,一般将整个介质作为单一文件系统使用。但是,对于大型硬盘,甚至是比较小的 USB 内存密钥,更常见的做法是将可用空间分割(即分区)成几个单独的分区。
分区的大小可以不一样,并且不同分区可以具有不同的文件系统,所以一个硬盘可以用于许多用途,包括在多个操作系统之间共享。例如,我使用的测试系统具有几个不同的 Linux 发行版,有时候还有一个 Windows® 系统,这些操作系统共享一个或两个硬盘驱动器。
在主题 101 和 102 的教程中提到过,硬盘的几何结构 是按照柱面、磁道和扇区定义的。尽管现代驱动器使用逻辑块寻址(它反映的几何结构与真实情况很不相符),但是分区所用的基本分配单位仍然是柱面。
显示分区信息
分区信息存储在磁盘的分区表 中。这个表列出了每个分区的开头和结尾、它的类型 以及它是否是可引导的。要想创建和删除分区,应该使用专用工具编辑分区表。对于 LPI 考试,需要了解 fdisk 程序,所以这里讨论这个工具,但是还有其他分区工具。
带 -l 选项的 fdisk 命令用于列出分区信息。如果想看到某个驱动器上的分区,那么要添加一个设备名,比如 /dev/hda。注意,分区工具需要根访问权。清单 2 显示了我的一个硬盘驱动器上的分区。
清单 2. 用 fdisk 列出分区
[root@lyrebird root]# fdisk -l /dev/hda
Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2078 16691503+ 7 HPFS/NTFS
/dev/hda2 2079 3295 9775552+ c Win95 FAT32 (LBA)
/dev/hda3 3296 3422 1020127+ 83 Linux
/dev/hda4 3423 19457 128801137+ f Win95 Ext'd (LBA)
/dev/hda5 3423 3684 2104483+ 82 Linux swap
/dev/hda6 3685 6234 20482843+ 83 Linux
/dev/hda7 6235 7605 11012526 83 Linux
/dev/hda8 7606 9645 16386268+ 83 Linux
/dev/hda9 9646 12111 19808113+ 83 Linux
/dev/hda10 12112 15680 28667961 83 Linux
/dev/hda11 15681 19457 30338721 83 Linux
|
注意:
1. 前面的信息显示磁盘大小和几何结构。在使用 LBA 的大多数大磁盘上,每个柱面有 255 个磁道,每个磁道有 63 个扇区,所以每个柱面有 16065 扇区,即 8225280 字节。
2. 在这个例子中,第一个主分区(/dev/hda1)标为可引导的(即活动的)。在主题 102 的教程中指出,这使标准的 DOS PC 主引导记录能够引导这个分区。这个标志对于 LILO 或 GRUB 引导装载器没有意义。
3. Start 和 End 列显示每个分区的启始柱面和结束柱面。这些柱面范围必须不重叠,并且一般是连续的,之间没有间隔的空间。
4. Blocks 列显示分区中的块数量(每个块 1K,即 1024 字节)。因此一个分区中的最大块数量是柱面数量(End + 1 - Start)乘以每柱面的扇区数量,再除以 2。末尾的 + 号表示分区中不是所有扇区都被使用。
5. Id 字段表示分区的用途。类型 82 是 Linux 交换分区,类型 83 是 Linux 数据分区。大约定义了 100 种分区类型。这个硬盘在几个操作系统之间共享,包括 Windows/XP,因此有 Windows NTFS(和 FAT32)分区。
用 fdisk 进行分区
您已经看到了如何使用 fdisk 命令显示分区信息。这个命令还提供一个交互式环境,可以在其中编辑分区表,从而创建或删除分区。
警告
在开始修改分区之前,要记住一些重要的事情。如果不遵循这些原则,那么可能会丢失现有的数据。
1. 不要修改正在使用的分区。 操作要有计划并且小心。
2. 了解工具。 在您明确指示之前,fdisk 命令不会将任何修改应用于磁盘。其他工具,包括 parted,可能会未经确认就应用修改。
3. 对于可能造成数据损失的任何操作,在开始操作之前备份重要的数据。
4. 分区工具会写分区表。除非使用的工具也能够移动、重设大小、格式化或写磁盘的数据区域,否则数据就会丢失。如果意外地犯了错误,那么尽快停下来并寻求帮助。仍然有可能恢复分区和数据。
启动 fdisk
要以交互模式启动 fdisk,只需提供一个磁盘的名称(比如 /dev/hda 或 /dev/sdb)作为参数。以下例子引导一个 Knoppix live CD。这需要根特权,将看到与清单 3 相似的输出。
清单 3. 启动交互式 fdisk
root@ttyp1[knoppix]# fdisk /dev/hda
The number of cylinders for this disk is set to 14593.
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):
|
大多数现代硬盘的柱面数超过 1024 个,所以常常会看到清单 3 所示的警告。输入 m,显示清单 4 所示的单字母命令列表。
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论