[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理

   RHEL中可能有成千上万的文件必须要存储在磁盘中;对系统管理者而言,如何管理好磁盘与文件系统,也是一门必备的学问。本章我们一起来学习 RHEL的磁盘与文件系统必备的知识与技术。

2.1 磁盘的管理
2.1.1 动态磁盘参数
      每一个磁盘都会提供一些参数,通过磁盘的参数,可以修改磁盘的结构与功能。查看磁盘的参数,可以使用 hdparm :
        hdparm device ...
      下面我们来查询 /dev/hda磁盘参数:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第1张图片
       hdparm除了可以用来查看磁盘的参数外,还可以用来设置磁盘的参数:
         hdparm [options...] device
      常用的 options如下表所示:    注: 下表在 最后附件中有下载!
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第2张图片
        下面使用 hdparm设置 /dev/hda DMA状态的例子:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第3张图片
/dev/hda开启了DMA功能。
使用hdparm关闭/dev/hda的DMA。
再次查看是否关闭了/dev/hda的DMA。
2.2 管理分区
     在 RHEL系统中,有几项工具来管理磁盘中的分区。
fdisk :  这是最广为人知的分区管理工具。 fdisk使用交谈的方式,来进
           行分区管理的工作。
sfdisk :   其实是 fdisk姊妹产品,只是 fdisk是以交谈的方式管理分区
           的;而 sfdisk则是以命令列的参数方式来管理我们的分区。
parted :  这是 GNU计划中分区编辑工具。与 fdisk sfdisk相比, parte
           -d还允许调整分区的大小。
    下面我仅以常用的 fdisk作为分区管理工具来学习。
1、fdisk的语法:
         fdisk简单语法为:
         fdisk   device
    上面的 device为要管理分区的硬盘设备文件名。
     fdisk是一个交互式( Interactive)的分区管理工具,也就是在执行 fdisk命令后,必须输入 fdisk所提供的命令, fdisk才会执行指定的动作, fdisk执行后可使用的命令如下表所示:  注: 下表在最后附件中有下载
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第4张图片
下面来看看执行 fdisk的例子:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第5张图片
执行 fdisk时,没有指定参数,则显示其简短的使用说明。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第6张图片
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第7张图片
执行 fdisk /dev/hda 时,以便于利用 fdisk 管理 /dev/hda
执行 fdisk期间,若不清楚该下一步输入什么命令,则输入 m,就会显
   示 fdisk的命令列表。
输入 q命令,则为退出且不保存。
2、查看分区
    查看某一个硬盘的分区信息,用两种方式:
执行 fdisk后,再输入 p命令。
shell中直接执行 fdisk -l 命令。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第8张图片
执行 fdisk查询。
使用 p命令,显示 /dev/hda磁盘的分区表。
输入 q命令,则为退出且不保存。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第9张图片
直接使用 fdisk查询 /dev/hda磁盘的分区表。
        当查看分区资料时, fdisk会先显示下面的信息,此为该磁盘的基本信息。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第10张图片
硬盘的设备名称。
硬盘的实际大小。
该硬盘有多少个磁面。
该硬盘每个磁道有多少个扇区。
磁柱的数量。
每一个磁柱的大小,也可以视为分区数据表中每一个单位的大小。
3、添加分区
     若要在一个磁盘上生成一个新的磁盘分区,可以在 fdisk中使用 n命令来添加磁盘分区。此时要提供下面两项信息。
分区开始的磁柱编号。
分区拥有的磁柱数量。
     下面来用 fdisk命令添加一个 100MB的分区的例子:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第11张图片
执行 fdisk /dev/hda,便于 fdisk管理 /dev/hda
查询目前有哪些分区。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第12张图片
使用 n命令,添加一个扩展分区。
再输入 e,即为 extended
输入该分区开始的磁柱编号。此处没有指定开始磁柱编号,而是回
   车,意即为第一个可用的磁柱。也就是默认值 1491
输入该分区的结束磁柱编号,此处也是回车,也就是默认值 5221
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第13张图片
使用 p命令,显示 /dev/hda磁盘的分区表。
验证了此分区是扩展分区。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第14张图片
使用 n命令,在扩展分区中建立一个逻辑分区。
输入该分区开始的磁柱编号。此处没有指定开始磁柱编号,而是回
   车,意即为第一个可用的磁柱。也就是默认值 1504
输入该分区的结束磁柱编号,此处输入: +100M后,再回车。
    分区的大小可以直接指定:
+size:  直接指定分区使用 size个磁柱。
+sizek:  直接指定分区为 size kB
+sizeM:  直接指定分区为 size MB
    注:若直接指定分区大小,一定要记得加上“+”这
个符号,否则 fdisk将自动视为磁柱编号。若没有指定分区的大小, fdisk也会自动以可用磁柱的最后一个作为默认值。
使用 p命令,显示 /dev/hda磁盘的分区表。
验证了是否生成了正确的分区。
  思考:如何添加一个分区为100MB,结果为 所示的分区。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第15张图片
因为我们修改了分区数据表的内容,则必须使用 w命令来将修改的数
  据写入到磁盘中。
此处提示我们要重新启动系统,让刚刚生成的分区生效。
4、删除分区
     fdisk中的 d命令来删除分区,在此之前一定要确认该 分区没有重要数据,否则分区一经删除,该分区的上的文件可能就无法抢救。
      下面来使用 fdisk命令删除分区:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第16张图片
设备名为 /dev/hda6
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第17张图片
输入 d命令,告之 fdisk要删除某一个分区。
输入要删除的分区编号,此处仅需输入号码即可。
使用 p命令,显示/dev/hda磁盘的分区表。
验证是否真的删除了 /dev/hda6
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第18张图片
最后当然是要保存且重启 RHEL5,以便更新分区数据表。
5、修改分区系统标识符
     不同的分区可以存储不同的操作系统的文件数据, 因此,每一个分区还得记录这个分区上存储的是哪一 种文件系统( File System)。这个用来记录分区用途 的信息,我们称之为分区系统标识符( Partition systemId)。目前的分区系统标识符是一个 16进制的数值,如果想要知道 fdisk工具支持哪些分区标识符,可以在 fdisk中使用 l命令,列出目前使用的 fdisk支持的所有分区标识符清单。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第19张图片
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第20张图片
       初看上面这么多系统标识符,其实常用的没有几个。如下表所示:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第21张图片
           修改分区的系统标识符,先执行 fdisk后,再输入 t命令进行修改。
      下面我们来看看如何修改分区系统标识符:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第22张图片
此处的 /dev/hda5这个分区的系统标识符是 83,系统是 Linux
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第23张图片
执行 t命令。
指定要修改的分区编号。
直接指定新的系统标识符是 82
fdisk提示新的标识符数据已经修改为 82 Linux swap/Solaris)。
验证系统标识符确实变成了 82
最后保存且重启 RHEL5后,则生效。
2.3  Linux常见的文件系统
     目前的 Linux内核支持了数十种文件系统,分类为:
Linux 专用文件系统
     针对 RHEL执行所需的环境量身打造的,归类为“ Linux 专用文件系统”。
支持其他平台的文件系统
      为了让 RHEL可以直接调用其他系统的文件, RHEL也提供一些其他平台的文件系统,如: msdos vfat ntfs udf等。
系统运行类的文件系统
        为了满足 RHEL的特殊功能而设计的,此类称之为“系统运行类的文件系统”。常见的有: procfs devfs tmpfs等。
网络文件系统
       通过网络调用另外一台 PC的磁盘空间的文件系统,统称为网络文件系统。常见的有: NTFS smbfs AFS等。
2.4  制作文件系统
      若磁盘没有提供文件系统,则 RHEL就无法通过文件系统使用磁盘空间。因此,要使用磁盘空间,就必须在该磁盘空间上建立文件系统( Make File System)。
       在制作文件系统过程中,会破坏原先磁盘中的文件系统数据,将使原先文件系统中的文件全部消失。故,在制作文件系统之前,确认磁盘空间中没有重要的资料。否则,损失就大了,请务必特别小心。
        制作文件系统前必须准备下面两项内容:
一个磁盘空间:制作文件系统是以磁盘空间为单位的,必须要准备好一个磁盘空间,才能在上面制作文件系统。
决定要制作成为何种文件系统:必须在开始制作文件系统前,先决定好要在该磁盘上建立何种文件系统。
        在 RHEL中制作文件系统,使用 mkfs命令,语法如下:
         mkfs  [-t  fstype]  [device]  [blocks]
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第24张图片
          下面我们来使用 mkfs制作 /dev/hda5的文件系统:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第25张图片
mkfs /dev/hda5制作文件系统,此处没有加任何参数,故 mkfs采用默认值 ext2文件系统且为 hda5所有空间
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第26张图片
加了 -t  msdos参数,在 /dev/hda5上建立 msdos文件系统了。
2.5  挂载文件系统
    在 RHEL中,整个系统只会有一个根目录,不允许有第二个以外的根目录。故要在 RHEL系统中使用某个磁盘空间的根目录与其中所有文件,就必须将该文件系统挂载到文件系统的某一个目录下。
      挂载文件系统的命令是 mount,语法如下:
       mount [-a]
或者
        mount [-t  fstype] [-o  mount_options] [-device] [mount_pointer]
      执行 mount时,没有指定参数,则表示要查看目前的挂载数据表。 mount常用参数见下表:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第27张图片
     好啦,我们来看看如何使用 mount命令:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第28张图片
建立 /mnt/tmp/目录,作为挂载点。
查看 /mnt/tmp/的内容,目前为空的,表示没有任何文件资料。
使用 mount命令,将 /dev/hda5分区的文件系统挂载到 /mnt/tmp/
再次查看 /mnt/tmp/,结果显示有一个 lost+found的目录,即存放在/ dev/hda5分区中的文件系统。
2.5.1  挂载数据表
        如何才能知道 RHEL共挂载了哪些文件系统?其实非常简单,直接使用 mount命令,不加任何参数即可。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第29张图片
由上述数据,可知是以下列的格式显示文件系统的挂载信息。
    device  on  mount_pointer   type  fstype  (mount_options)
    其中的每一个字段说明如下:
device :  文件系统的设备文件名。若 device显示为
                    none :  则表示不是实体的磁盘空间。
mount_pointer :  挂载点的路径名称。
fstype :  文件系统的类型。
mount_options :  挂载时的参数。
    除此之外,每挂载一个文件系统的时候, RHEL会自动将挂载的信息加入到 /etc/mtab文件中;而卸载一个文件系统时, RHEL也会自动删除 /etc/mtab中相关的记录。所以,另一种查看目前文件系统挂载信息的方法,就是直接读取 /etc/mtab文件。
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第30张图片
         不过,/ etc/mtab会以 /etc/fstab文件的格式显示目前的挂载信息。
2.5.2  挂载参数
      使用 mount挂载文件系统时,可以指定挂载的参数来修改文件系统的功能。挂载参数分为:共享挂载参数和文件系统特定的挂载参数。
1、共享挂载参数
      共享挂载参数可以用在任何文件系统上,而且大部分是两两一组,同一组的参数通常是互斥的;也就是说如果你使用了其中一个,就不能使用同一组的另外一个参数。例如: ro/rw就是一组共享挂载参数,若使用 ro,就不能使用 rw
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第31张图片
           另外,有一个名为 defaults的共享挂载参数,即使用 mount时没有加任何参数, defaults这个挂载参数等于 rw、suid、dev、exec、auto、nouser、async几个参数的组合。
2、文件系统特定挂载参数
      它仅适用于某文件系统,我们称之为文件系统特定挂载参数。
3、指定与修改挂载参数
      改变文件系统参数有两种方式:
执行 mount时,直接指定 -o  mount_options参数。
使用 mount  -o  remount,mount_options修改挂载参数。
     方法⑴:仅适用新挂载文件系统时,若已经挂载,则先卸载,再使用方法⑴重新挂载一次;
   方法⑵:不需要卸载,直接修改文件系统的挂载参数。
   下面来举一个例子,修改挂载参数:
[RHEL5系统管理攻略]--第2章 磁盘与文件系统管理_第32张图片
使用mount命令,直接把/dev/hda5挂载到/mnt/tmp/目录中,因未指定参数,故使用defaults作为挂载参数。由于defaults包含rw,所以/dev/hda5应为可读可写的。
验证/dev/hda5是否为rw的状态。显然是。
当使用touch /mnt/tmp/file1时,没有报错信息,说明已经顺利建立了/mnt/tmp/file1 。
卸载/dev/hda5文件系统后,再使用mount挂载/dev/hda5到/mnt/tmp/中。此时参数为ro,所以/dev/hda5的读写状态是只读取的。
果然,挂载数据表中显示的的确是ro
试着生成/mnt/tmp/file2文件,RHEL告诉我们这是一个只读文件系统,当然无法生成/mnt/tmp/file2文件了。
那我们就用mount -o remount 的技巧,在不卸载/dev/hda5的情形下,直接修改/dev/hda5的挂载参数再度成为可读可写。
修改后,/dev/hda5的挂载参数就变成了rw
当然,/mnt/tmp/file3就可以被生成出来了。

本文出自 “beyondhedefang ” 博客,转载请与作者联系!

你可能感兴趣的:([RHEL5系统管理攻略]--第2章 磁盘与文件系统管理)