《6 Linux 磁盘与文件系统管理.pdf》由会员分享,可在线阅读,更多相关《6 Linux 磁盘与文件系统管理.pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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 格式化为我的作业系统认识的文件系统(Filesystem)。我们可以说,每一个 par
4、tition 就是一个 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 文件系统(inode)在标准的 ext2 文件系统当中,我们将每个文
6、件的内容分为两部分储存,文件的属性和文件的内容。也就是说,当 partition 被格式化为 ext2 的文 件系统时,他一定会有 inode table 与 block area 这两个区域。Block 是记录文件内容资料的区域,至于 inode 则是记录该文件的相关属 性,以及文件内容放置在哪一个 Block 之内的信息。inode 除了记录文件的属性外,同时还必须要具有指向(pointer)的功能,亦即指向文件内容放置的区块。Linux 系统如何读取一个文件的内容,分别针对目录与文件来说明 目录当我们在 Linux 下的 ext2 文件系统建立一个目录时,ext2 会分配一个 inode
7、 与至少一块 Block 给该目录。其中,inode 记录该目录的相关属 性,并指向分配到的那块 Block;而 Block 则是记录在这个目录下的相关 连的文件(或目录)的关连性。文件当我们在 Linux 下的 ext2 建立一个一般文件时,ext2 会分配至少一个 inode 与相对于该文件大小的 Block 数量给该文件。例如假设我的一个 Block 为 4 Kbytes,而我要建立一个 100 KBytes 的文件,那么 linux 将 分配一个 inode 与 25 个 Block 来储存该文件。关于 EXT2 文件系统的Tips:ext2 与 ext3 文件在建立时(format)
8、就已经设定好固定的 inode 数与 block 数目了;格式化 Linux 的 ext2 文件系统,可以使用 mke2fs 这个程式来执行。ext2 允许的 block size 为 1024,2048 及 4096 bytes;一个 partition(filesystem)所能容许的最大文件数,与 inode 的数量有 关,因为一个文件至少要占用一个 inode。在目录底下的文件数如果太多而导致一个 Block 无法容纳的下所有的 关连性资料时,Linux 会给予该目录多一个 Block 来继续记录关连资料;通常 inode 数量的多寡设定为(partition 的容量)除以(一个 in
9、ode 预计 想要控制的容量)。举例来说,若我的block 规划为 4Kbytes,假设我的一 个 inode 会控制两个 block,亦即是假设我的一个文件大致的容量在 8Kbytes左右时,假设我的这个 partition 容量为 1GBytes,则 inode 数量 共有(1G*1024M/G*1024K/M)/(8K)=131072 个。而一个 inode 占用 128 bytes 的空间,因此格式化时就会有(131072个*128bytes/个)=16777216 byes=16384 Kbytes 的 inode table。也就是说,这一个 1GB 的 partition 在还没
10、有储存任何资料前,就已经少了16MBytes 的容 量。因为一个 inode 只能记录一个文件的属性,所以 inode 数量比 block 多 是没有意义的。举上面的例子来说,我的 Block 规划为 4 Kbytes,所以 1GB 大概就有 262144 个 4Kbytes 的 block,如果一个 block 对应一个 inode 的话,那么当我的 inode 数量大于 262144 时,多的 inode 将没有 任何用处,徒然浪费硬盘的空间而已。另外一层想法,如果我的文件容量 都很大,那么一个文件占用一个 inode 以及数个 block,当然 inode 数量 就可以规划的少很多。当
11、block 大小越小,而 inode 数量越多,则可利用的空间越多,但是大 文件写入的效率较差;这种情况适合文件数量多,但是文件容量小的系 统,例如 BBS 或者是新闻群组(News)这方面服务的系统;当 Block 大小越大,而 inode 数量越少时,大文件写入的效率较佳,但是可能浪费的硬盘空间较多;这种状况则比较适合文件容量较大的系 统。1.4 EXT2/EXT3 文件的存取与日志式文件系统的功能:dumpe2fs当一个 ext2 的 filesystem 被建立时,他拥有superblock/groupdescription/blockbitmap/inode bitmap/inode
12、 table/data blocks 等等区域。要注意的是,每个 ext2 filesystem 在被建立的时候,会依据partition 的大小,给予数个 block group,而每个 block group 就有上述的这些部分。整个 filesystem 的架构可以下图展现 SuperBlock如前所述,Superblock 是记录整个 filesystem 相关信 息的地方,没有 Superblock,就没有这个filesystem 了。他记录的信息 主要有?-block 与 inode 的总量;?-未使用与已使用的 inode/block 数量;?-一个 block 与一个 inod
13、e 的大小;?-filesystem 的挂载时间、最近一次写入资料的时间、最近一次检验磁盘(fsck)的时间等文件系统的相关信息;?-一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0,若未被挂载,则 valid bit 为 1。Group Description纪录此 block 由由何处开始记录;Block bitmap此处记录那个 block 有没有被使用;Inode bitmap此处记录那个 inode 有没有被使用;Inode table为每个 inode 资料存放区;Data Blocks为每个 block 资料存放区。如果想要知道某个ext2/e
14、xt3 的文件系统内,关于上述提到的相关信息 时,可以使用 dumpe2fs 这个指令来读取。rootlinux#dumpe2fs/dev/hda1资料的不一致(Inconsistent)状态万一文件在写入硬盘时,因为不知名原因导致系统中断(例如突然的停电 啊、系统核心发生错误等等的发生时),所以资料就只有纪录到动作一,而动作二尚未进行。这就会产生 metadata 与资料存放区产生不一致(Inconsistent)的情况发生了。若发生不一致现象,因为系统不知道是那个文件发生不一致现象,所以 就会将整个 filesystem 做一致性的检查,如此一来,很费时。日志式文件系统的产生1.当系统要写
15、入一个文件的时候,会先在日?记录区块中纪录某个文 件准备要写入磁盘了;2.开始写入文件的权限与资料;3.开始更新 metadata 的资料;4.完成资料与 metadata 的更新后,在日?记录区块当中完成该文件的 纪录。1.5 Linux 文件系统的运作资料处理最快的地方应该是 CPU 了,接下来是主存(RAM),硬盘速度 可是比 CPU 还有 RAM 要慢很多。为了让 Linux 加快整个系统的存取效 率,在 Linux 上面通常采取非同步处理(asynchronously)的方式。非同步举例来说:当系统读取了某一个文件,则该文件所在的区块资料 会被载入到内存当中,所以该磁盘区块就会被放置
16、在主内存的缓冲快取区 中,若这些区块的资料被改变时,刚开始资料仅有主内存的区块资料会被改变,而且在缓冲区当中的区块资料会被标记为 Dirty,这个时 候磁盘实体区块尚未被修正。亦表示,这些 Dirty 区块的资料必需回写到 磁盘当中,以维持磁盘实体区块上的资料与主内存中的区块资料的一致性。为什么要这么做呢。这是因为主内存的运作速度比起硬盘来实在是快太多 了,万一系统当中有一个文件相当的大,而又持续性的存取,那么由于 较慢的硬盘存取速度,将使得整个 Linux 速度被拖垮,所以才会使用非同 步方式的资料处理啊。不过,也由于硬盘与主内存的资料可能没有同步 化,因此,如果 Linux 不正常关机(例
17、如跳电或者是当机)时,则由于资料 尚未回写入磁盘当中,会导致系统在再次开机时,会花相当多的时间进行 磁盘检验,同时也有可能造成磁盘的损毁。1.6 挂载点的意义(mount point)我们上面提到的都是关于文件系统(filesystem),但是要能够让我们的 Linux 使用的话,非得挂载(mount)上我们的 Linux 系统才行。刚刚我们 上面提到了目录可以记录文件名与 inode 的相关信息,此外,目录也是让 我们得以跟filesystem 产生对应的入口点。因此,我们称那个入口点目录 为挂载点(mount point)。挂载点一定是目录而不是文件。1.7 其他 Linux 支持的文件系
18、统常见的支援文件系统有 传统文件系统:ext2/minix/MS-DOS/FAT(用 vfat 模组)/iso9660(光盘)等等;日志式文件系统:ext3/ReiserFS/Windows NTFS/IBMs JFS/SGIs XFS 网路文件系统:NFS/SMBFS想要知道 Linux 支援的文件系统有哪些,可以察看底下这个目录rootlinux#ls-l/lib/modules/uname-r/kernel/fs系统目前已启用的文件系统则有rootlinux#cat/proc/filesystems假设/使用的是/dev/hda1,用 ext3,而/home 使用/dev/hda2,用
19、reiserfs,那么您取用/home/dmtsai/.bashrc时,有特别指定要用的什么 文件系统的模组来读取吗。应该是没有吧,这个就是我们Linux kernel 的 Virtual Filesystem Switch(VFS)的功能。透过这个 VFS 的功能来管理所 有的filesystem,省去了我们需要自行设定读取文件系统的定义。2.文件系统的简单操作文件系统的简单操作2.1 磁盘与目录的容量:df,du2.2 连结文件的介绍:ln2.1 磁盘与目录的容量:df,durootlinux#df-ahikHTm 目录或文件名参数-a 列出所有的文件系统,包括系统特有的/proc 等文件
20、系统;-k 以 KBytes 的容量显示各文件系统;-m 以 MBytes 的容量显示各文件系统;-h 以人们较易阅读的 GBytes,MBytes,KBytes 等格式自行显示;-H 以 M=1000K 取代 M=1024K 的进位方式;-T 连同该 partition 的 filesystem 名称(例如 ext3)也列出;-i 不用硬盘容量,而以 inode 的数量来显示rootlinux#df-ahikHTm 目录或文件名参数-a 列出所有的文件系统,包括系统特有的/proc 等文件系统;-k 以 KBytes 的容量显示各文件系统;-m 以 MBytes 的容量显示各文件系统;-h
21、以人们较易阅读的 GBytes,MBytes,KBytes 等格式自行显示;-H 以 M=1000K 取代 M=1024K 的进位方式;-T 连同该 partition 的 filesystem 名称(例如 ext3)也列出;-i 不用硬盘容量,而以 inode 的数量来显示2.2 连结文件的介绍:ln Hard Link(硬式连结或实际连结)Hard Link只是在某个目录下新增一个该文件的关连资料而已。最大的好处 就是安全。不管哪一个文件被删除了,其实仅是移除目录底下的文件关连 性资料,并没有更动到原本文件的 inode 与 block 资料。一般来说,使用 hard link 设置连结文
22、件时,磁盘的空间与 inode 的数目都不会改变(可能 会改变,那就是当目录的 Block 被用完时,就可能会新加一个block 来记 录,而导致磁盘空间的变化。不过,一般 hard link 所用掉的关连资料量很 小,所以通常不会改变 inode 与磁盘空间的大小。)由于 hard link 是在同一个partition上面进行资料关连的建立,所以 hard link 是有限制的不能跨 Filesystem;不能 link 目录。Symbolic Link(符号连结,亦即是捷径)相对于 hard link,Symbolic link 好理解多了,Symbolic link 就是建立一 个独立
23、的文件,而这个文件会让资料的读取指向他 link 的那个文件内容。由于只是来做为指向的动作,所以当来源文件被删除之后,symbolic link 的会一直说无法开启某文件。这个Symbolic Link 与 Windows 的捷径可以 划等号,Symbolic link 是一个独立的新文件,所以会占用inode 与 block。rootlinux#ln-sf 来源文件 目标文件参数-s 如果 ln 不加任何参数就进行连结,那就是hard link,至于-s 就是 symbolic link-f 如果目标文件存在时,就主动的将目标文件直接移除后再建立。关于目录的 link 数量新的目录的 lin
24、k 数为 2,而上层目录的 link 数则会增加 1。3.磁盘的分割、格式化、检验与挂载磁盘的分割、格式化、检验与挂载1913.1 磁盘分割 fdisk3.2 磁盘格式化 mke2fs,mkbootdisk,fdformat3.3 磁盘检验 fsck,badblocks,sync3.4 磁盘挂载与卸载 mount,umount3.5 磁盘参数修订 mknod,e2label,tune2fs,hdparm3.1 磁盘分割 fdiskrootlinux#fdisk-l 设备名称参数-l 输出后面接的设备所有的 partition 内容。若仅有 fdisk-l 时,则系统 将会把整个系统内能够搜寻到
25、的设备的 partition 均列出来。使用 fdisk 不需要背指令,因为按下 m 之后,立刻就会有一堆指令说明 跑出来了。在上面的指令当中,比较重要的有d 删除一个磁盘分割 槽、n 新增一个磁盘分割槽、p 将目前的磁盘分割槽列出来、q 不储存 离开。w 写入磁盘分割表后离开。这个危险。修改磁盘分区表后,有时得要重新开机,有的则不需要,看提示信息。partprobe使分区表生效,格式化后才能mount到某个目录下。3.2 磁盘格式化 mke2fs,mkbootdisk,fdformatrootlinux#mke2fs-bicLj 设备名称参数-b:可以设定block 的大小,目前支援1024
26、、2048、4096 bytes 三种;-i:多少容量给予一个 inode;-c:检查磁盘错误,仅下达一次-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/fd0H
27、1440,其中加在/fd0 之后的 H1440 为 表示 1.44MB 的软盘容量。在低阶格式化之后,还要将软盘的文件格式 化为 Linux 的 ext2 之型态,则需要使用mke2fs 指令。3.3 磁盘检验 fsck,badblocks,synclost+found 这个目录,如果程序有发现到任何的错误的文件,就会将该 文件的资料给他丢到这个目录当中,而且只有挂载 partition 的目录(就 是挂载点)才会有这个默认的目录。rootlinux#fsck-AtCary 设备名称参数-t fsck 可以检查好几种不同的 filesystem,而 fsck 是一个综合程序而 已。个别的 fi
28、lesystem 的检验程式都在/sbin 底下,您可以使用 ls-l/sbin/fsck*去检查看看,就知道有几种 filesystem。默认的 FC4 情况 下,至少有:ext2,ext3,vfat,msdos 等等 filesystem。-A:依据/etc/fstab 的内容,将所有的设备都扫瞄一次(通常开机过程中 就会执行此一指令)-a:自动修复检查到的有问题的磁区,所以你不用一直按 y。-r:一定要让使用者决定是否需要修复,这与上一个-a 刚好相反。-y:与-a 类似,但是某些 filesystem 仅支援-y 这个参数。-C:可以在检验的过程当中,使用一个长条图来显示目前的进度。-
29、f:强制检查。一般如果 fsck 没发现任何unclean 的flag,不会主动进入 细部检查,如果想要强制 fsck 进入细部检查,就得加上 f 的flag。badblocksrootlinux#badblocks-svw 设备名称参数-s 在屏幕上列出进度-v 可以在屏幕上看到进度-w 使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的 设备已有文件时。sync在正常的状况中,由于为了增加系统的效率,因此,很多时候进行中的 程式产生的程序之暂存文件都不会直接存至磁盘机当中,而是记忆在内 存当中。由于内存的资料传递速度比磁盘机快了几十倍,所以如此一来 将有助于整个系统的效率。然而这也
30、产生了一个困扰,那就是当你的系 统不正常关机的时候,可能会使得一些已经经过改变,却还没有存入磁 盘中的资料遗失(因为还在内存当中。)所以这个时候 sync 的功能就相 当的大了。因为他可以直接将系统暂存在内存当中的资料回存写入磁盘 当中。3.4 磁盘挂载与卸载 mount,umount挂载点目录必须先建立。挂载了文件系统之后,那么原目录下的东西就会暂时的消失。rootlinux#mount-arootlinux#mount-tonL 设备名称代号 挂载点参数-a 依照/etc/fstab 的内容将所有相关的磁盘都挂上来。-n 一般来说,当我们挂载文件系统到 Linux 上头时,Linux 会主
31、动的 将目前的 partition 与 filesystem 还有对应的挂载点,都记录到/etc/mtab那个文件中。不过,有些时刻(例如不正常关机导致一些问题,而进入单 人模式)系统无法写入/etc/mtab 时,就可以加上-n 这个参数来略过写入 mtab 的动作。-L 系统除了利用设备名称代号(例如/dev/hda1)之外,还可以利用 partition的表头名称(Label)来进行挂载。所以,最好为partition 取一个 在唯一名称。-t Linux 支援的文件格式,就写在这里吧。举例来说,我们在上面建 立/dev/hdb5 是 ext3 文件系统,那么要挂载时,就得要加上-t e
32、xt3来告知系统,用 ext3 的文件格式来挂载该 partition。常见的有ext2,ext3,reiserfs,等 Linux 惯用 filesystem;vfat,msdos 等 Windows 常见 filesystem;iso9660 为光盘片的格式;nfs,smbfs 等为网络相关文 件系统。若 mount 后面没加-t 格式时,则 Linux 在默认的情况下,会主动以/etc/filesystems 这个文件内规范的文件系统格式来尝试主动的挂载。-o 后面可以接一些挂载时额外加上的参数。比方说帐号、密码、读写权 限等ro,rw:此 partition 为唯读(ro)或可读写(r
33、w)async,sync:此 partition 为同步写入(sync)或非同步(async),这个与我 们之前提到的文件系统运作方式有关,默认是 asyncauto,noauto:允许此 partition 被以 mount-a 自动挂载(auto)dev,nodev:是否允许此 partition 上,可建立设备文件。dev 为可允许suid,nosuid:是否允许此 partition 含有 suid/sgid 的文件格式。exec,noexec:是否允许此 partition 上拥有可执行 binary 文件。user,nouser:是否允许此 partition 让 user 执行
34、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 mknodrootlinux#mknod 设备名称 bcp Major Minor参数设备种类b 设定设备名称成为一
35、个周边储存设备文件,例如硬盘等;c 设定设备名称成为一个周边输入设备文件,例如滑鼠/键盘等;p 设定设备名称成为一个 FIFO 文件;Major 主要设备代码;Minor 次要设备代码;e2labelrootlinux#e2label 设备名称 新的Label名称不可以随意修改 Label 的名称。优点不论硬盘代号怎么变,不论您将硬盘插在那个 IDE 介面(IDE1 或 IDE2 或 master 或 slave 等),由于系统是透过 Label,所以,磁盘插在 那个介面将不会有影响。缺点如果插了两颗硬盘,刚好两颗硬盘的 Label 有重复的,那就惨 了。因为系统会无法判断那个磁盘分割槽才是正
36、确的。tune2fsrootlinux#tune2fs-jlL 设备代号参数-j 将 ext2 的 filesystem 转换为 ext3 的文件系统;-l 类似 dumpe2fs-h 的功能,将 superblock 内的资料读出来。-L 类似 e2label 的功能,可以修改 filesystem 的 Label。hdparm如果硬盘是有 DMA 模式功能的,但是系统却没有启动他,那么硬盘存取 效能可能会降低一半以上,所以,就用 hdparm启动 DMA。rootlinux#hdparm-icdmXTt 设备名称参数-i 系统在开机的过程当中,会利用本身核心的驱动程式(模组)来测试硬 盘,
37、利用-i 参数,可将这些测试值取出来,这些值不一定是正确的,不 过,却可以提供我们一个参考值的依据。-c 设定 32-bit(32位元)存取模式。这个 32 位元存取模式指的是在硬盘 在与PCI 介面之间传输的模式,而硬盘本身是依旧以 16 位元模式在跑。默认的情况下,这个设定值都会被打开,建议直接使用 c1 即可。-d 设定是否启用 dma 模式,-d1 为启动,-d0 为取消;-d 设定是否启用 dma 模式,-d1 为启动,-d0 为取消;-m 设定同步读取多个 sector 的模式。一般来说,设定此模式,可降低 系统因为读取磁盘而损耗的效能,不过,WD 的硬盘则不怎么建议设定此 值一般
38、来说,设定为 16/32 是最佳化,不过,WD 硬盘建议值则是4/8。这个值的最大值,可以利用 hdparm-i/dev/hda 输出的MaxMultSect来设定。一般如果不晓得,设定 16 是合理的。-X 设定 UtraDMA 的模式,一般来说,UDMA 的模式值加 64 即为设定 值。并且,硬盘与主机板晶片必须要同步,所以,取最小的那个。一般来 说33 MHz DMA mode 02(X64X66)66 MHz DMA mode 34(X67X68)100MHz DMA mode 5(X69)如果硬盘上面显示的是 UATA 100 以上的,那么设定 X69 也不错。-T 测试暂存区 ca
39、che 的存取效能-t 测试硬盘的实际存取效能(较正确。)4.设定开机挂载设定开机挂载4.1 各式磁盘挂载与中文编码挂载还有 USB 随身盘4.2 开机挂载/etc/fstab 及/etc/mtab4.3 特殊设备 loop 挂载4.1 各式磁盘挂载与中文编码挂载还有 USB 随身盘 挂载 Windows 磁盘rootlinux#mkdir/mnt/win98rootlinux#mount-t vfat/dev/hda1/mnt/win98rootlinux#mount-t vfat-o iocharset=cp950/dev/hda1/mnt/win98 挂载 USB 随身盘rootlinu
40、x#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/floppy要注意的是,即使你使用软盘完毕之后,一定要将/media/floppy 卸载之 后才可以取出软盘片,不然系统会一直告诉你发生错误。4.2 开机挂载/etc/fstab 及/etc/mtab系统挂载的一些限制 根目录/是必须挂载的,而且一定要先被挂载进来
41、。其它 mount point 必须为已建立的目录,可任意指定,但一定要遵守 必须的系统目录架构原则 所有 mount point 在同一时间之内,只能挂载一次。所有 partition 在同一时间之内,只能挂载一次。如若进行卸载,您必须先将工作目录移到 mount point(及其子目录)之外。rootlinux#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 d
42、efaults 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 0 0/dev/proc/proc proc defaults 0 0/dev/sys/sys sysfs defaults 0 0/etc/fstab 内总共有六栏,分别来看每一栏的内容:1.磁盘设备代号或该设备的 Label2.挂载点(mount point)3.磁盘分割槽的文件系统4.文件系统参数
43、5.能否被 dump 备份指令作用6.是否以 fsck 检验磁区当我们编辑/etc/fstab 后,为了避免可能的错误,通常就会以 mount-a 这个指令来测试看看。而/etc/fstab 是开机时的配置文件,实际 filesystem 的挂载是记录到/etc/mtab 与/proc/mounts 这2个文件中 的。4.3 特殊设备 loop 挂载除了常见的软、硬盘挂载之外,我们还可以挂载特殊设备。举例来说,利用我们的硬盘内的文件模拟出来的设备。建立大型文件rootlinux#dd if=/dev/zero of=/tmp/loopdev bs=1024k count=2048if 是 in
44、put file,of 是 output file,至于 bs 是每个 block 大小,count 则 是总共几个 bs 的意思。不过要注意/tmp那个 partition 的大小。格式化rootlinux#mke2fs-j/tmp/loopdev挂载rootlinux#mount-t ext3-o loop/tmp/loopdev/media/cdrom/rootlinux#df5.虚拟内存之建立虚拟内存之建立5.1 建立虚拟内存设备5.2 建立虚拟内存文件5.3 虚拟内存的限制5.1 建立虚拟内存设备第一种正规的方法是直接再加一个硬盘,并且将其中某个磁区规划为 swap 的 filesy
45、stem。1.以fdisk/dev/hda-d 先建立一个 partition 就是(1)建立一个 partition,(2)将该 partition 的 ID 改为 82 这一个 swap 的磁盘文件格式代号。2.以mkswap/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 还是需要建立的。