6 Linux 磁盘与文件系统管理

上传人:m**** 文档编号:571990638 上传时间:2024-08-12 格式:PDF 页数:37 大小:201.58KB
返回 下载 相关 举报
6 Linux 磁盘与文件系统管理_第1页
第1页 / 共37页
6 Linux 磁盘与文件系统管理_第2页
第2页 / 共37页
6 Linux 磁盘与文件系统管理_第3页
第3页 / 共37页
6 Linux 磁盘与文件系统管理_第4页
第4页 / 共37页
6 Linux 磁盘与文件系统管理_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《6 Linux 磁盘与文件系统管理》由会员分享,可在线阅读,更多相关《6 Linux 磁盘与文件系统管理(37页珍藏版)》请在金锄头文库上搜索。

1、1.认识 EXT2 文件系统2.文件系统的简单操作:3.磁盘的分割、格式化、检验与挂载4.设定开机挂载:5.虚拟内存之建立:Nina整理Linux磁盘与文件系统管理磁盘与文件系统管理1.认识认识 EXT2 文件系统文件系统1.1 磁盘分割1.2 文件系统1.3 Linux 的 EXT2 文件系统(inode)1.4 EXT2/EXT3 文件的存取与日志式文件系统的功能:dumpe2fs1.5 Linux 文件系统的运作1.6 挂载点的意义 (mount point)1.7 其他 Linux 支持的文件系统1.1 磁盘分割为什么要进行硬盘分割:因为我们必须要告诉作业系统我这块硬盘可以存取的区域是

2、由 A 磁柱到 B 磁柱,如此一来, 作业系统才能够控制硬盘磁头去 A-B 范围内的磁柱 存取资料;如果没有告诉作业系统这个信息, 那么作业系统就无法利用 我们的硬盘来进行资料的存取了,因为作业系统将无法知道他要去哪里读 取资料。这就是磁盘分割( Partition )的重点了:也就是记录每一个分割区 ( Partition )的起始与结束磁柱。MBR 就是在一块硬盘的第零轨上面,这也是电脑开机之后要去利用该硬 盘时, 必须要读取的第一个区域。在这个区域内记录的就是硬盘里面的 所有分割信息, 以及开机的时候可以进行开机管理程式的写入的处所。 所以,当一个硬盘的 MBR 坏掉时,由于分割的资料不

3、见了,那么这个硬 盘也就几乎可以说是寿终正寝了, 因为作业系统不知道该去哪个磁柱上 读取资料。MBR 仅提供最多四个 partition 的记忆,这就是所谓的 Primary (P)与 Extended (E) 的 partition 最多只能有四个的原因了。如果您要分割硬盘时,并且已经预计规划使用掉 MBR 所提供的 4 个 partition ( 3P + E或 4P )那么磁盘的全部容量需要使用光,否则剩下的容 量也不能再被使用。1.2 文件系统在告知系统我的 partition 所在的起始与结束磁柱之后,再来则是需要将 partition 格式化为我的作业系统认识的文件系统( File

4、system )。我们可以说,每一个 partition 就是一个 Filesystem 。硬盘的最小储存单位是 sector,一个 sector 只有 512 Bytes,磁头是一个 一个 sector 的读取,为了克服效率上的困扰,就有逻辑区块( Block )的产 生了,逻辑区块是在 partition 进行 filesystem 的格式化时, 所指定的最 小储存单位。Block 的大小为 sector 的 2 的次方倍数。假设我们在格式化 的时候,指定 Block 为 4 KBytes ,磁头要读取的次数则大幅下降。不过 Block 单位并不是越大越好,需要同时考虑到文件读取的效能和文

5、件大小 可能造成的硬盘空间浪费。因此,在规划磁盘时,需要留意到主机的用途 来进行规划。例如 BBS 主机由于文章较短,也就是说文件较小,那么 Block 小一点的好;而如果主机主要用在储存大容量的文件,如视频网 站,那么考虑到效能, 理论上规划的大一点会比较妥当。Superblock当我们在进行磁盘分割( partition )时,每个partition 就是一 个文件系统,而每个文件系统开始的位置的那个block就称superblock , superblock 的作用是储存如文件系统的大小、空的和填满的区块,以及他 各自的总数和其他诸如此类的信息等等。1.3 Linux 的 EXT2 文件

6、系统(inode)在标准的 ext2 文件系统当中,我们将每个文件的内容分为两部分储存, 文件的属性和文件的内容。也就是说,当 partition 被格式化为 ext2 的文 件系统时,他一定会有 inode table 与 block area 这两个区域。Block 是记录文件内容资料的区域,至于 inode 则是记录该文件的相关属 性,以及文件内容放置在哪一个 Block 之内的信息。inode 除了记录文件的属性外,同时还必须要具有指向( pointer )的功能, 亦即指向文件内容放置的区块。Linux 系统如何读取一个文件的内容,分别针对目录与文件来说明 目录当我们在 Linux

7、下的 ext2 文件系统建立一个目录时,ext2 会分配一个 inode 与至少一块 Block 给该目录。其中,inode 记录该目录的相关属 性,并指向分配到的那块 Block ;而 Block 则是记录在这个目录下的相关 连的文件(或目录)的关连性。 文件当我们在 Linux 下的 ext2 建立一个一般文件时, ext2 会分配至少一个 inode 与相对于该文件大小的 Block 数量给该文件。例如假设我的一个 Block 为 4 Kbytes ,而我要建立一个 100 KBytes 的文件,那么 linux 将 分配一个 inode 与 25 个 Block 来储存该文件。关于 E

8、XT2 文件系统的Tips: ext2 与 ext3 文件在建立时 (format) 就已经设定好固定的 inode 数与 block 数目了; 格式化 Linux 的 ext2 文件系统,可以使用 mke2fs 这个程式来执行。 ext2 允许的 block size 为 1024, 2048 及 4096 bytes; 一个 partition (filesystem) 所能容许的最大文件数,与 inode 的数量有 关, 因为一个文件至少要占用一个 inode。 在目录底下的文件数如果太多而导致一个 Block 无法容纳的下所有的 关连性资料时,Linux 会给予该目录多一个 Block

9、 来继续记录关连资料; 通常 inode 数量的多寡设定为 (partition 的容量) 除以 (一个 inode 预计 想要控制的容量)。 举例来说,若我的block 规划为 4Kbytes,假设我的一 个 inode 会控制两个 block ,亦即是假设我的一个文件大致的容量在 8Kbytes左右时,假设我的这个 partition 容量为 1GBytes, 则 inode 数量 共有( 1G * 1024M/G * 1024K/M ) / ( 8K ) =131072 个。而一个 inode 占用 128 bytes 的空间,因此格式化时就会有 ( 131072个 * 128bytes

10、/个 ) = 16777216 byes =16384 Kbytes 的 inode table 。也就是说,这一个 1GB 的 partition 在还没有储存任何资料前, 就已经少了16MBytes 的容 量。 因为一个 inode 只能记录一个文件的属性,所以 inode 数量比 block 多 是没有意义的。 举上面的例子来说,我的 Block 规划为 4 Kbytes ,所以 1GB 大概就有 262144 个 4Kbytes 的 block ,如果一个 block 对应一个 inode 的话,那么当我的 inode 数量大于 262144 时,多的 inode 将没有 任何用处,徒

11、然浪费硬盘的空间而已。另外一层想法,如果我的文件容量 都很大, 那么一个文件占用一个 inode 以及数个 block ,当然 inode 数量 就可以规划的少很多。 当 block 大小越小,而 inode 数量越多,则可利用的空间越多,但是大 文件写入的效率较差; 这种情况适合文件数量多,但是文件容量小的系 统,例如 BBS 或者是新闻群组( News )这方面服务的系统; 当 Block 大小越大,而 inode 数量越少时,大文件写入的效率较佳, 但是可能浪费的硬盘空间较多; 这种状况则比较适合文件容量较大的系 统。1.4 EXT2/EXT3 文件的存取与日志式文件系统的功能:dump

12、e2fs当一个 ext2 的 filesystem 被建立时,他拥有superblock /groupdescription / blockbitmap / inode bitmap / inode table / data blocks 等等区域。要注意的是, 每个 ext2 filesystem 在被建立的时候,会依据partition 的大小, 给予数个 block group ,而每个 block group 就有上述的这些部分。整个 filesystem 的架构可以下图展现 SuperBlock如前所述, Superblock 是记录整个 filesystem 相关信 息的地方, 没

13、有 Superblock ,就没有这个filesystem 了。他记录的信息 主要有?- block 与 inode 的总量;?- 未使用与已使用的 inode / block 数量;?- 一个 block 与一个 inode 的大小;?- filesystem 的挂载时间、最近一次写入资料的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;?- 一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1 。 Group Description纪录此 block 由由何处开始记录; Block bitmap

14、此处记录那个 block 有没有被使用; Inode bitmap此处记录那个 inode 有没有被使用; Inode table为每个 inode 资料存放区; Data Blocks为每个 block 资料存放区。如果想要知道某个ext2/ext3 的文件系统内,关于上述提到的相关信息 时,可以使用 dumpe2fs 这个指令来读取。rootlinux # dumpe2fs /dev/hda1资料的不一致 (Inconsistent) 状态万一文件在写入硬盘时,因为不知名原因导致系统中断(例如突然的停电 啊、系统核心发生错误等等的发生时),所以资料就只有纪录到动作一, 而动作二尚未进行。

15、这就会产生 metadata 与资料存放区产生不一致 (Inconsistent) 的情况发生了。若发生不一致现象, 因为系统不知道是那个文件发生不一致现象,所以 就会将整个 filesystem 做一致性的检查,如此一来,很费时。日志式文件系统的产生1. 当系统要写入一个文件的时候,会先在日?记录区块中纪录某个文 件准备要写入磁盘了;2. 开始写入文件的权限与资料;3. 开始更新 metadata 的资料;4. 完成资料与 metadata 的更新后,在日?记录区块当中完成该文件的 纪录。1.5 Linux 文件系统的运作资料处理最快的地方应该是 CPU 了, 接下来是主存 (RAM) ,硬

16、盘速度 可是比 CPU 还有 RAM 要慢很多。为了让 Linux 加快整个系统的存取效 率,在 Linux 上面通常采取非同步处理( asynchronously )的方式。非同步举例来说:当系统读取了某一个文件, 则该文件所在的区块资料 会被载入到内存当中,所以该磁盘区块就会被放置在主内存的缓冲快取区 中, 若这些区块的资料被改变时,刚开始资料仅有主内存的区块资料会被改变, 而且在缓冲区当中的区块资料会被标记为 Dirty,这个时 候磁盘实体区块尚未被修正。亦表示,这些 Dirty 区块的资料必需回写到 磁盘当中, 以维持磁盘实体区块上的资料与主内存中的区块资料的一致性。为什么要这么做呢。

17、这是因为主内存的运作速度比起硬盘来实在是快太多 了, 万一系统当中有一个文件相当的大,而又持续性的存取,那么由于 较慢的硬盘存取速度,将使得整个 Linux 速度被拖垮,所以才会使用非同 步方式的资料处理啊。不过, 也由于硬盘与主内存的资料可能没有同步 化,因此,如果 Linux 不正常关机( 例如跳电或者是当机 )时,则由于资料 尚未回写入磁盘当中,会导致系统在再次开机时,会花相当多的时间进行 磁盘检验, 同时也有可能造成磁盘的损毁。1.6 挂载点的意义 (mount point)我们上面提到的都是关于文件系统 (filesystem),但是要能够让我们的 Linux 使用的话, 非得挂载

18、(mount)上我们的 Linux 系统才行。 刚刚我们 上面提到了目录可以记录文件名与 inode 的相关信息,此外,目录也是让 我们得以跟filesystem 产生对应的入口点。因此,我们称那个入口点目录 为挂载点 (mount point)。挂载点一定是目录而不是文件。1.7 其他 Linux 支持的文件系统常见的支援文件系统有 传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模组) / iso9660 (光盘)等等; 日志式文件系统:ext3 / ReiserFS / Windows NTFS / IBMs JFS / SGIs XFS 网路文件系

19、统:NFS / SMBFS想要知道 Linux 支援的文件系统有哪些,可以察看底下这个目录rootlinux # ls -l /lib/modules/uname -r/kernel/fs系统目前已启用的文件系统则有rootlinux # cat /proc/filesystems假设 / 使用的是 /dev/hda1,用 ext3,而 /home 使用 /dev/hda2,用 reiserfs, 那么您取用 /home/dmtsai/.bashrc时,有特别指定要用的什么 文件系统的模组来读取吗。应该是没有吧,这个就是我们Linux kernel 的 Virtual Filesystem S

20、witch (VFS)的功能。透过这个 VFS 的功能来管理所 有的filesystem,省去了我们需要自行设定读取文件系统的定义。2.文件系统的简单操作文件系统的简单操作2.1 磁盘与目录的容量:df,du2.2 连结文件的介绍:ln2.1 磁盘与目录的容量:df,durootlinux # df -ahikHTm 目录或文件名参数-a 列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k 以 KBytes 的容量显示各文件系统;-m 以 MBytes 的容量显示各文件系统;-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H 以 M=100

21、0K 取代 M=1024K 的进位方式;-T 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;-i 不用硬盘容量,而以 inode 的数量来显示rootlinux # df -ahikHTm 目录或文件名参数-a 列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k 以 KBytes 的容量显示各文件系统;-m 以 MBytes 的容量显示各文件系统;-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H 以 M=1000K 取代 M=1024K 的进位方式;-T 连同该 partition 的 files

22、ystem 名称 (例如 ext3) 也列出;-i 不用硬盘容量,而以 inode 的数量来显示2.2 连结文件的介绍:ln Hard Link (硬式连结或实际连结)Hard Link只是在某个目录下新增一个该文件的关连资料而已。最大的好处 就是安全。不管哪一个文件被删除了,其实仅是移除目录底下的文件关连 性资料,并没有更动到原本文件的 inode 与 block 资料。一般来说,使用 hard link 设置连结文件时,磁盘的空间与 inode 的数目都不会改变(可能 会改变,那就是当目录的 Block 被用完时,就可能会新加一个block 来记 录,而导致磁盘空间的变化。不过,一般 ha

23、rd link 所用掉的关连资料量很 小,所以通常不会改变 inode 与磁盘空间的大小。)由于 hard link 是在同一个partition上面进行资料关连的建立,所以 hard link 是有限制的不能跨 Filesystem;不能 link 目录。 Symbolic Link (符号连结,亦即是捷径)相对于 hard link , Symbolic link 好理解多了,Symbolic link 就是建立一 个独立的文件,而这个文件会让资料的读取指向他 link 的那个文件内容。 由于只是来做为指向的动作, 所以当来源文件被删除之后,symbolic link 的会一直说无法开启某

24、文件。这个Symbolic Link 与 Windows 的捷径可以 划等号,Symbolic link 是一个独立的新文件,所以会占用inode 与 block。rootlinux # ln -sf 来源文件 目标文件参数-s 如果 ln 不加任何参数就进行连结,那就是hard link,至于 -s 就是 symbolic link-f 如果目标文件存在时,就主动的将目标文件直接移除后再建立。 关于目录的 link 数量新的目录的 link 数为 2 ,而上层目录的 link 数则会增加 1 。3.磁盘的分割、格式化、检验与挂载磁盘的分割、格式化、检验与挂载1913.1 磁盘分割 fdisk

25、3.2 磁盘格式化 mke2fs, mkbootdisk, fdformat3.3 磁盘检验 fsck, badblocks, sync3.4 磁盘挂载与卸载 mount, umount3.5 磁盘参数修订 mknod, e2label, tune2fs, hdparm3.1 磁盘分割 fdiskrootlinux # fdisk -l 设备名称参数-l 输出后面接的设备所有的 partition 内容。若仅有 fdisk -l 时,则系统 将会把整个系统内能够搜寻到的设备的 partition 均列出来。使用 fdisk 不需要背指令,因为按下 m 之后,立刻就会有一堆指令说明 跑出来了。在

26、上面的指令当中,比较重要的有d 删除一个磁盘分割 槽、 n 新增一个磁盘分割槽、 p 将目前的磁盘分割槽列出来、q 不储存 离开。 w 写入磁盘分割表后离开。这个危险。修改磁盘分区表后,有时得要重新开机,有的则不需要,看提示信息。 partprobe使分区表生效,格式化后才能mount到某个目录下。3.2 磁盘格式化 mke2fs, mkbootdisk, fdformatrootlinux # mke2fs -bicLj 设备名称参数-b:可以设定block 的大小,目前支援1024、2048、4096 bytes 三种;-i:多少容量给予一个 inode;-c:检查磁盘错误,仅下达一次 -

27、c 时,会进行快速读取测试;如果下达 两次 -c -c 的话,会测试读写(read-write),会很慢;-L:后面可以接表头名称 (Label);-j:本来mke2fs 是EXT2 ,加上 -j后,会主动加入journal而成为EXT3。mkbootdisk (制作软盘开机片)rootlinux # mkbootdisk -device /dev/fd0 uname -rfdformat (进行软盘低阶格式化)rootlinux # fdformat /dev/fd0H1440在上面的设备文件为 /dev/fd0H1440 , 其中加在 /fd0 之后的 H1440 为 表示 1.44MB

28、的软盘容量。 在低阶格式化之后,还要将软盘的文件格式 化为 Linux 的 ext2 之型态,则需要使用mke2fs 指令。3.3 磁盘检验 fsck, badblocks, synclost+found 这个目录,如果程序有发现到任何的错误的文件,就会将该 文件的资料给他丢到这个目录当中,而且只有挂载 partition 的目录 (就 是挂载点) 才会有这个默认的目录。rootlinux # fsck -AtCary 设备名称参数-t fsck 可以检查好几种不同的 filesystem,而 fsck 是一个综合程序而 已。个别的 filesystem 的检验程式都在 /sbin 底下,您可

29、以使用 ls -l /sbin/fsck*去检查看看,就知道有几种 filesystem。默认的 FC4 情况 下,至少有:ext2, ext3, vfat, msdos 等等 filesystem。-A:依据 /etc/fstab 的内容,将所有的设备都扫瞄一次 (通常开机过程中 就会执行此一指令)-a:自动修复检查到的有问题的磁区,所以你不用一直按 y 。-r:一定要让使用者决定是否需要修复,这与上一个 -a 刚好相反。-y:与 -a 类似,但是某些 filesystem 仅支援 -y 这个参数。-C:可以在检验的过程当中,使用一个长条图来显示目前的进度。-f:强制检查。一般如果 fsck

30、 没发现任何unclean 的flag,不会主动进入 细部检查,如果想要强制 fsck 进入细部检查,就得加上 f 的flag。badblocksrootlinux # badblocks -svw 设备名称参数-s 在屏幕上列出进度-v 可以在屏幕上看到进度-w 使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的 设备已有文件时。 sync在正常的状况中,由于为了增加系统的效率,因此,很多时候进行中的 程式产生的程序之暂存文件都不会直接存至磁盘机当中, 而是记忆在内 存当中。由于内存的资料传递速度比磁盘机快了几十倍, 所以如此一来 将有助于整个系统的效率。然而这也产生了一个困扰, 那

31、就是当你的系 统不正常关机的时候,可能会使得一些已经经过改变, 却还没有存入磁 盘中的资料遗失(因为还在内存当中。)所以这个时候 sync 的功能就相 当的大了。 因为他可以直接将系统暂存在内存当中的资料回存写入磁盘 当中。3.4 磁盘挂载与卸载 mount, umount挂载点目录必须先建立。挂载了文件系统之后, 那么原目录下的东西就会暂时的消失。rootlinux # mount -arootlinux # mount -tonL 设备名称代号 挂载点参数-a 依照 /etc/fstab 的内容将所有相关的磁盘都挂上来。-n 一般来说,当我们挂载文件系统到 Linux 上头时, Linux

32、 会主动的 将目前的 partition 与 filesystem 还有对应的挂载点,都记录到 /etc/mtab那个文件中。不过,有些时刻 (例如不正常关机导致一些问题,而进入单 人模式)系统无法写入 /etc/mtab 时,就可以加上 -n 这个参数来略过写入 mtab 的动作。-L 系统除了利用设备名称代号 (例如 /dev/hda1) 之外,还可以利用 partition的表头名称 ( Label ) 来进行挂载。所以,最好为partition 取一个 在唯一名称。-t Linux 支援的文件格式,就写在这里吧。举例来说,我们在上面建 立/dev/hdb5 是 ext3 文件系统,那么

33、要挂载时,就得要加上 -t ext3来告知系统,用 ext3 的文件格式来挂载该 partition。常见的有ext2, ext3, reiserfs, 等 Linux 惯用 filesystem;vfat, msdos 等 Windows 常见 filesystem;iso9660 为光盘片的格式;nfs, smbfs 等为网络相关文 件系统。若 mount 后面没加 -t 格式时,则 Linux 在默认的情况下,会主动以 /etc/filesystems 这个文件内规范的文件系统格式来尝试主动的挂载。-o 后面可以接一些挂载时额外加上的参数。比方说帐号、密码、读写权 限等ro, rw: 此

34、 partition 为唯读(ro) 或可读写(rw)async, sync: 此 partition 为同步写入 (sync) 或非同步 (async),这个与我 们之前提到的文件系统运作方式有关,默认是 asyncauto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)dev, nodev: 是否允许此 partition 上,可建立设备文件。 dev 为可允许suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式。exec, noexec: 是否允许此 partition 上拥有可执行 binary 文

35、件。user, nouser: 是否允许此 partition 让 user 执行 mount 。一般来说,mount 仅有 root 可以进行,但下达 user 参数,则可让一般 user 也能够 对此 partition 进行 mount 。defaults: 默认值为rw, suid, dev, exec, auto, nouser, and asyncremount: 重新挂载,这在系统出错,或重新更新参数时很有用。 umount (将设备文件卸载)rootlinux # umount 设备代号或挂载点3.5 磁盘参数修订 mknod, e2label, tune2fs, hdparm

36、 mknodrootlinux # mknod 设备名称 bcp Major Minor参数设备种类b 设定设备名称成为一个周边储存设备文件,例如硬盘等;c 设定设备名称成为一个周边输入设备文件,例如滑鼠/键盘等;p 设定设备名称成为一个 FIFO 文件;Major 主要设备代码;Minor 次要设备代码; e2labelrootlinux # e2label 设备名称 新的Label名称不可以随意修改 Label 的名称。优点不论硬盘代号怎么变,不论您将硬盘插在那个 IDE 介面 (IDE1 或 IDE2 或 master 或 slave 等),由于系统是透过 Label ,所以,磁盘插在

37、那个介面将不会有影响。缺点如果插了两颗硬盘,刚好两颗硬盘的 Label 有重复的,那就惨 了。因为系统会无法判断那个磁盘分割槽才是正确的。 tune2fsrootlinux # tune2fs -jlL 设备代号参数-j 将 ext2 的 filesystem 转换为 ext3 的文件系统;-l 类似 dumpe2fs -h 的功能,将 superblock 内的资料读出来。-L 类似 e2label 的功能,可以修改 filesystem 的 Label 。 hdparm如果硬盘是有 DMA 模式功能的,但是系统却没有启动他,那么硬盘存取 效能可能会降低一半以上, 所以,就用 hdparm启

38、动 DMA 。rootlinux # hdparm -icdmXTt 设备名称参数-i 系统在开机的过程当中,会利用本身核心的驱动程式(模组)来测试硬 盘,利用 -i 参数,可将这些测试值取出来,这些值不一定是正确的,不 过,却可以提供我们一个参考值的依据。-c 设定 32-bit (32位元)存取模式。这个 32 位元存取模式指的是在硬盘 在与PCI 介面之间传输的模式,而硬盘本身是依旧以 16 位元模式在跑。 默认的情况下,这个设定值都会被打开,建议直接使用 c1 即可。-d 设定是否启用 dma 模式, -d1 为启动, -d0 为取消;-d 设定是否启用 dma 模式, -d1 为启动

39、, -d0 为取消;-m 设定同步读取多个 sector 的模式。一般来说,设定此模式,可降低 系统因为读取磁盘而损耗的效能,不过, WD 的硬盘则不怎么建议设定此 值一般来说,设定为 16/32 是最佳化,不过,WD 硬盘建议值则是4/8 。 这个值的最大值,可以利用 hdparm -i /dev/hda 输出的MaxMultSect来设定。一般如果不晓得,设定 16 是合理的。-X 设定 UtraDMA 的模式,一般来说, UDMA 的模式值加 64 即为设定 值。并且,硬盘与主机板晶片必须要同步,所以,取最小的那个。一般来 说33 MHz DMA mode 02 (X64X66)66 M

40、Hz DMA mode 34 (X67X68)100MHz DMA mode 5 (X69)如果硬盘上面显示的是 UATA 100 以上的,那么设定 X69 也不错。-T 测试暂存区 cache 的存取效能-t 测试硬盘的实际存取效能 (较正确。)4.设定开机挂载设定开机挂载4.1 各式磁盘挂载与中文编码挂载还有 USB 随身盘4.2 开机挂载 /etc/fstab 及 /etc/mtab4.3 特殊设备 loop 挂载4.1 各式磁盘挂载与中文编码挂载还有 USB 随身盘 挂载 Windows 磁盘rootlinux # mkdir /mnt/win98rootlinux # mount -

41、t vfat /dev/hda1 /mnt/win98rootlinux # mount -t vfat -o iocharset=cp950 /dev/hda1 /mnt/win98 挂载 USB 随身盘rootlinux # mkdir /mnt/usbrootlinux # mount -t vfat /dev/sda1 /mnt/usb 挂载软盘rootlinux # mount -t ext2 /dev/fd0 /media/floppyrootlinux # mount -t vfat /dev/fd0 /media/floppyrootlinux # umount /media/

42、floppy要注意的是,即使你使用软盘完毕之后,一定要将 /media/floppy 卸载之 后才可以取出软盘片,不然系统会一直告诉你发生错误。4.2 开机挂载 /etc/fstab 及 /etc/mtab系统挂载的一些限制 根目录 / 是必须挂载的,而且一定要先被挂载进来。 其它 mount point 必须为已建立的目录,可任意指定,但一定要遵守 必须的系统目录架构原则 所有 mount point 在同一时间之内,只能挂载一次。 所有 partition 在同一时间之内,只能挂载一次。 如若进行卸载,您必须先将工作目录移到 mount point(及其子目录) 之外。rootlinux

43、# cat /etc/fstab# Device Mount point filesystem parameters dump fsckLABEL=/ / ext3 defaults 1 1/dev/hda5 /home ext3 defaults 1 2/dev/hda3 swap swap defaults 0 0/dev/hdc /media/cdrom auto pamconsole,exec,noauto,managed 0 0/dev/devpts /dev/pts devpts gid=5,mode=620 0 0/dev/shm /dev/shm tmpfs defaults

44、0 0/dev/proc /proc proc defaults 0 0/dev/sys /sys sysfs defaults 0 0/etc/fstab 内总共有六栏,分别来看每一栏的内容:1. 磁盘设备代号或该设备的 Label2. 挂载点 (mount point)3. 磁盘分割槽的文件系统4. 文件系统参数5. 能否被 dump 备份指令作用6. 是否以 fsck 检验磁区当我们编辑 /etc/fstab 后,为了避免可能的错误,通常就会以 mount -a 这个指令来测试看看。而 /etc/fstab 是开机时的配置文件,实际 filesystem 的挂载是记录到 /etc/mta

45、b 与 /proc/mounts 这2个文件中 的。4.3 特殊设备 loop 挂载除了常见的软、硬盘挂载之外,我们还可以挂载特殊设备。举例来说, 利用我们的硬盘内的文件模拟出来的设备。建立大型文件rootlinux # dd if=/dev/zero of=/tmp/loopdev bs=1024k count=2048if 是 input file,of 是 output file ,至于 bs 是每个 block 大小,count 则 是总共几个 bs 的意思。不过要注意 /tmp那个 partition 的大小。格式化rootlinux # mke2fs -j /tmp/loopdev

46、挂载rootlinux # mount -t ext3 -o loop /tmp/loopdev /media/cdrom/rootlinux # df5.虚拟内存之建立虚拟内存之建立5.1 建立虚拟内存设备5.2 建立虚拟内存文件5.3 虚拟内存的限制5.1 建立虚拟内存设备第一种正规的方法是直接再加一个硬盘,并且将其中某个磁区规划为 swap 的 filesystem。1. 以fdisk /dev/hda-d 先建立一个 partition 就是(1)建立一个 partition, (2)将该 partition 的 ID 改为 82 这一个 swap 的磁盘文件格式代号。2. 以mksw

47、ap /dev/hda-d1-16 的方式来将您刚刚建立出来的 partition 格式化为 swap 的文件格式。3. 再来则是将 swap 启动,启动的指令为swapon /dev/hda-d1-16 , 这样就能启动了。这样swap 就自动加入到内存容量里头去了。将 swap 关掉用swapoff 就对了。5.2 建立虚拟内存文件不想新增加一个磁区,可以使用 swap file 的方式来新增硬盘。1. 以 dd 指令来建立 swapfile ;2. 以 mkswap 来将 swapfile 格式化为 swap 的文件格式;3. 以 swapon 来启动该文件,使成为 swap ;4. 以 swapoff 来关闭该文件。5.3 虚拟内存的限制说实话,虚拟内存在目前的桌上型电脑来讲,存在的意义已经不大了。 这是因为目前的 x86 主机所含的内存实在都太大了 (一般入门级至少也 都有 256MB 了),所以,我们的 Linux 系统大概都用不到虚拟内存 (swap) 这个玩意儿的。如果是针对服务器或者是工作站这些常年上线的 系统来说的话,那么,无论如何,swap 还是需要建立的。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号