实训8-磁盘管理_第1页
实训8-磁盘管理_第2页
实训8-磁盘管理_第3页
实训8-磁盘管理_第4页
实训8-磁盘管理_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

磁盘分区基本知识硬盘组成与分区扇区(Sector)为最小的物理储存单位,每个扇区为512bytes;将扇区组成一个圆,那就是磁柱(Cylinder),磁柱是分区(partition)的最小单位;第一个扇区最重要,里面有:(1)主要启动区(Masterbootrecord,MBR)及分区表(partitiontable),其中MBR占有446bytes,而partitiontable则占有64bytes.磁盘分区磁盘分区指指定分区的启始与结束磁柱。即告诉操作系统『这颗磁盘在此分区可以存取的区域是由A磁柱到B磁柱之间的区块』,这样操作系统就能够知道他可以在所指定的区块内进行文件数据的读/写/搜寻等动作.指定分区的磁柱范围记录位置:就是第一个扇区的分区表中.但是因为分区表仅有64bytes而已,因此最多只能记录四笔分区的记录,这四笔记录我们称为主要(primary)或扩展(extended)分区,其中扩展分区还可以再分割出逻辑分区表(logical),而能被格式化的则仅有主要分区与逻辑分区。主要分区与扩展分区最多可以有四笔(硬盘的限制)扩展分区最多只能有一个(操作系统的限制)逻辑分区是由扩展分区持续切割出来的分区;能够被格式化后,作为数据存取的分割槽为主要分区与逻辑分区。扩展分区无法格式化;逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘则有11个逻辑分区(5号到15号).各种接口的磁盘在Linux中的文件名分别为:/dev/sd[a—p][1—15]:为SCSI,SATA,U盘,Flash闪盘等接口的磁盘文件名;/dev/hd[a-d][1—63]:为IDE接口的磁盘文件名;文件系统格式化因为每种操作系统所配置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区进行格式化,以成为操作系统能够利用的『文件系统格式(filesystem)』。Linux的文件系统则为Ext2(Linuxsecondextendedfilesystem,ext2fs)一个分区可以格式化为多个文件系统,如LVM、软件磁盘阵列等文件系统工作原理操作系统的文件数据除了文件实际内容外,通常含有非常多的属性,例如Linux操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到inode中,至于实际数据则放置到datablock区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等.每个inode与block都有编号。superblock:记录此filesystem的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;block:实际记录文件的内容,若文件太大时,会占用多个block。索引式文件系统(indexedallocation):图1inode/block数据存取示意图3、inodetable(inode表格)inode记录的文件数据包括底下这些:该文件的存取模式(read/write/excute);该文件的拥有者与群组(owner/group);该文件的容量;该文件创建或状态改变的时间(ctime);最近一次的读取时间(atime);最近修改的时间(mtime);定义文件特性的旗标(flag),如SetUID..。;该文件真正内容的指向(pointer);inode的数量与大小也是在格式化时就已经固定了:每个inode大小均固定为128bytes;每个文件都仅会占用一个inode而已;承上,因此文件系统能够创建的文件数量与inode的数量有关;系统读取文件时需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容.4、Superblock(超级区块)Superblock是记录整个filesystem相关信息的地方,没有Superblock,就没有这个filesystem了。其记录的信息主要有:block与inode的总量;未使用与已使用的inode/block数量;block与inode的大小(block为1,2,4K,inode为128bytes);filesystem的挂载时间、最近一次写入数据的时间、最近一次检验磁盘(fsck)的时间等文件系统的相关信息;一个validbit数值,若此文件系统已被挂载,则validbit为0,若未被挂载,则validbit为1。图2文件系统示意图练习:查看文件系统dumpe2fs[—bh]装置文件名选项与参数:-b:列出保留为坏轨的部分—h:仅列出superblock的数据,不会列出其他的区段内容!范例:找出我的根目录磁盘文件名,并观察文件系统的相关信息df<==这个命令可以叫出目前挂载的装置<==就是这个光!dumpe2fs/dev/hdc2Filesystemvolumename:/1<==这个是文件系统的名称(Label)Defaultmountoptions:user_xattracl<==默认挂载的参数Filesystemstate:clean〈==这个文件系统是没问题的(clean)〈==inode的总数<==block的总数〈==还有多少个block可用<==还有多少个inode可用Blocksize:4096〈==每个block的大小啦!Inodesize:128<==每个inode的大小〈==底下这三个与下一小节有关〈==第一个datagroup内容,包含block的启始/结束号码<==超级区块在0号block〈==inodetable所在的block<==所有block都用完了!<==剩余未使用的inode号码。。。。(底下省略)。。。.#前半部在显示supberblock的内容,包括标头名称(Label)以及inode/block的相关信息#后面则是每个blockgroup的个别信息!您可以看到各区段数据所在的号码!#也就是说,基本上所有的数据都与block的号码有关.三、目录树1、目录在Linux下的ext2文件系统创建一个目录时,ext2会分配一个inode与至少一块block给该目录。其中,inode记录该目录的相关权限与属性,并可记录分配到的那块block号码;而block则是记录在这个目录下的文件名与该文件名占用的inode号码数据。目录所占用的block内记录如下的信息:图:目录占用的block记录的数据示意图练习:观察root家目录内的文件所占用的inode号码ls—li6546836483226483232、文件当我们在Linux下的ext2创建一个一般文件时,ext2会分配一个inode与相对于该文件大小的block数量给该文件。例如:假设我的一个block为4Kbytes,而我要创建一个100KBytes的文件,那么linux将分配一个inode与25个block来储存该文件!但同时请注意,由于inode仅有12个直接指向,因此还要多一个block来作为区块号码的记录。3、目录树读取文件的inode本身并不记录文件名,文件名的记录是在目录的block当中。因此在文件与目录的权限中,我们才会提到『新增/删除/更名文件名与目录的w权限有关』!那么因为文件名是记录在目录的block当中,因此当我们要读取某个文件时,就务必会经过目录的inode与block,然后才能够找到那个待读取文件的inode号码,最终才会读到正确的文件的block内的数据.由于目录树是由根目录开始读起,因此系统通过挂载的信息可以找到挂载点的inode号码(通常一个filesystem的最顶层inode号码会由2号开始!),此时就能够得到根目录的inode内容,并依据该inode读取根目录的block内的文件名数据,再一层一层的往下读到正确的文件名。练习:观察读取/etc/passwd这个文件的过程(假设身份为一般使用者):ll—di//etc/etc/passwd2r—x1912545r-x1914888r——流程:/的inode:透过挂载点的信息找到/dev/hdc2的inode号码为2的根目录inode,且inode规范的权限让我们可以读取该block的内容(有r与x);/的block:经过上个步骤取得block的号码,并找到该内容有etc/目录的inode号码(1912545);etc/的inode:读取1912545号inode得知vbird具有r与x的权限,因此可以读取etc/的block内容;etc/的block:经过上个步骤取得block号码,并找到该内容有passwd文件的inode号码(1914888);passwd的inode:读取1914888号inode得知vbird具有r的权限,因此可以读取passwd的block内容;passwd的block:最后将该block内容的数据读出来.4、EXT2/EXT3文件的存取与日志式文件系统的功能新建一个文件或目录的流程:先确定用户对于欲新增文件的目录是否具有w与x的权限,若有的话才能新增;根据inodebitmap找到没有使用的inode号码,并将新文件的权限/属性写入;根据blockbitmap找到没有使用中的block号码,并将实际的数据写入block中,且升级inode的block指向数据;将刚刚写入的inode与block数据同步升级inodebitmap与blockbitmap,并升级superblock的内容.5、数据的不一致(Inconsistent)状态你的文件在写入文件系统时,因为不知名原因导致系统中断(例如突然的停电啊、系统核心发生错误啊~等等的事情发生时),所以写入的数据仅有inodetable及datablock而已,最后一个同步升级中介数据的步骤并没有做完,此时就会发生metadata的内容与实际数据存放区产生不一致(Inconsistent)的情况了。日志式文件系统的兴起.6、日志式文件系统(Journalingfilesystem)为了避免上述提到的文件系统不一致的情况发生,因此提出一个新的方式,如果在filesystem当中规划出一个区块,该区块专门在记录写入或修订文件时的步骤,那不就可以简化一致性检查的步骤了?也就是说:预备:当系统要写入一个文件时,会先在日志记录区块中纪录某个文件准备要写入的信息;实际写入:开始写入文件的权限与数据;开始升级metadata的数据;结束:完成数据与metadata的升级后,在日志记录区块当中完成该文件的纪录。在这样的程序当中,万一数据的纪录过程当中发生了问题,那么我们的系统只要去检查日志记录区块,就可以知道哪个文件发生了问题,针对该问题来做一致性的检查即可,而不必针对整块filesystem去检查,这样就可以达到快速修复filesystem的能力!这就是日志式文件最基础的功能。ext3:日志式文件系统,是ext2的升级版本,并且可向下兼容ext2版本.7、挂载点(mountpoint):每个filesystem都有独立的inode/block/superblock等信息,这个文件系统要能够链接到目录树才能被我们使用.将文件系统与目录树结合的动作我们称为『挂载』。

重点是:挂载点一定是目录,该目录为进入该文件系统的入口。

因此并不是你有任何文件系统都能使用,必须要『挂载』到目录树的某个目录后,才能够使用该文件系统的。练习:观察/,/boot,/home三个

目录,由于filesystem最顶层的目录之inode一般为2号,因此可以发现/,/boot,/home为三个不同的filesystemls—lid//boot/home222四、文件系统操作1、查看磁盘与目录的容量dfdf[-ahikHTm][目录或文件名]选项与参数:—a:列出所有的文件系统,包括系统特有的/proc等文件系统;-k:以KBytes的容量显示各文件系统;—m:以MBytes的容量显示各文件系统;-h:以人们较易阅读的GBytes,MBytes,KBytes等格式自行显示;-H:以M=1000K取代M=1024K的进位方式;—T:连同该partition的filesystem名称(例如ext3)也列出;—i:不用硬盘容量,而以inode的数量来显示范例一:将系统内所有的filesystem列出来!df1K—blocks#在Linux底下如果df没有加任何选项,那么默认会将系统内所有的#(不含特殊内存内的文件系统与swap)都以1Kbytes的容量来列出来!#至于那个/dev/shm是与内存有关的挂载!范例二:将容量结果以易读的容量格式显示出来df—h#不同于范例一,这里会以G/M等容量格式显示出来,比较容易看!范例三:将系统内的所有特殊文件格式及名称都列出来df-aTType#系统里面其实还有很多特殊的文件系统存在的。那些比较特殊的文件系统几乎#都是在内存当中,例如/proc这个挂载点。因此,这些特殊的文件系统#都不会占据硬盘空间!范例四:将/etc底下的可用的磁盘容量以易读的容量格式显示df—h/etc#在df后面加上目录或者是文件时,df#会自动的分析该目录或文件所在的partition,并将该partition的容量显示出来,#所以,您就可以知道某个目录底下还有多少容量可以使用了!范例五:将目前各个partition当中可用的inode数量列出df-ih#这个范例则主要列出可用的inode剩余量与总容量。分析一下与范例一的关系,#你可以清楚的发现到,通常inode的数量剩余都比block还要多dudu[-ahskm]文件或目录名称选项与参数:—a:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。—h:以人们较易读的容量格式(G/M)显示;—s:列出总量而已,而不列出每个各别的目录占用容量;-S:不包括子目录下的总计,与-s有点差别。—k:以KBytes列出容量显示;—m:以MBytes列出容量显示;范例一:列出目前目录下的所有文件容量du〈==每个目录都会列出来。。。.中间省略。。.。<==包括隐藏文件的目录〈==这个目录(。)所占用的总量#直接输入du没有加任何选项时,则du会分析『目前所在目录』#的文件与目录所占用的硬盘空间.但是,实际显示时,仅会显示目录容量(不含文件),#因此。目录有很多文件没有被列出来,所以全部的目录相加不会等于。的容量喔!#此外,输出的数值数据为1K大小的容量单位。范例二:同范例一,但是将文件的容量也列出来du—a<==有文件的列表了。。.。中间省略。...范例三:检查根目录底下每个目录所占用的容量du—sm/*.。..。中间省略。.。。.。。.。中间省略。..。〈==系统初期最大就是他了啦!#这是个很常被使用的功能~利用通配符*来代表每个目录,#如果想要检查某个目录下,哪个次目录占用最大的容量,可以用这个方法找出来#值得注意的是,如果刚刚安装好Linux时,那么整个系统容量最大的应该是/usr#而/proc虽然有列出容量,但是那个容量是在内存中,不占硬盘空间。实体链接与符号链接:lnHardLink(实体链接,硬式连结或实际连结)ln/etc/crontab.<==创建实体链接的命令ll-i/etc/crontab/root/crontab1912701219127012hardlink是有限制的:不能跨Filesystem;不能link目录。SymbolicLink(符号链接,亦即是快捷方式)ln—s/etc/crontabcrontab2ll-i/etc/crontab/root/crontab2191270165468712/root/crontab2->/etc/crontabln[-sf]来源文件目标文件选项与参数:-s:如果不加任何参数就进行连结,那就是hardlink,至于—s就是symboliclink-f:如果目标文件存在时,就主动的将目标文件直接移除后再创建!范例一:将/etc/passwd复制到/tmp底下,并且观察inode与blockcd/tmpcp—a/etc/passwd。du—sb;df—i.18340〈==先注意一下这里的容量是多少!149738#利用du与df来检查一下目前的参数~那个du—sb#是计算整个/tmp底下有多少bytes的容量!范例二:将/tmp/passwd制作hardlink成为passwd—hd文件,并观察文件与容量lnpasswdpasswd—hddu—sb;df-i仔细看,即使多了一个文件在/tmp底下,整个inode与block的容量并没有改变!ls-ilpasswd*58636125863612#原来是指向同一个inode啊!这是个重点啊!另外,那个第二栏的连结数也会添加!范例三:将/tmp/passwd创建一个符号链接ln-spasswdpasswd-sols—lipasswd*5864016#passwd-so指向的inodenumber不同了!这是一个新的文件~这个文件的内容是指向#passwd的.passwd-so的大小是6bytes,因为passwd共有六个字符之故du-sb;df-i呼呼!整个容量与inode使用数都改变!范例四:删除源文件passwd,其他两个文件是否能够打开?rmpasswdcatpasswd—hd.。..。.正常显示完毕!catpasswd—sollpasswd*passwd—sopasswd#符号链接果然无法打开!另外,如果符号链接的目标文件不存在,#其实文件名的部分就会有特殊的颜色显示!五、磁盘的分割、格式化、检验与挂载如果我们想要在系统里面新增一颗硬盘时,应该有哪些动作需要做的呢:对磁盘进行分割,以创建可用的partition;对该partition进行格式化(format),以创建系统可用的filesystem;若想要仔细一点,则可对刚刚创建好的filesystem进行检验;在Linux系统上,需要创建挂载点(亦即是目录),并将他挂载上来;1、磁盘分区:fdiskfdisk[—l]装置名称选项与参数:—l:输出后面接的装置所有的partition内容.若仅有fdisk—l时,则系统将会把整个系统内能够搜寻到的装置的partition均列出来。范例:找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息df/〈==注意:重点在找出磁盘文件名而已/dev/hdc2fdisk/dev/hdc〈==仔细看,不要加上数字!Thenumberofcylindersforthisdiskissetto5005。1024<==等待你的输入!m〈==输入m后,就会看到底下这些命令介绍ddeleteapartition〈==删除一个partitionnaddanewpartition〈==新增一个partitionpprintthepartitiontable〈==在屏幕上显示分割表qquitwithoutsavingchanges〈==不储存离开fdisk程序wwritetabletodiskandexit<==将刚刚的动作写入分割表p<==这里可以输出目前磁盘的状态〈==这个磁盘的文件名与容量5005〈==磁头、扇区与磁柱大小<==每个磁柱的大小192650052052#装置文件名启动区否开始磁柱结束磁柱1K大小容量磁盘分区槽内的系统q#想要不储存离开吗?按下q就对了!不要随便按w!范例:查阅目前系统内的所有partition有哪些?fdisk-l4744/dev/sda1147458118260bW95FAT322、磁盘格式化mkfsmkfs[-t文件系统格式]装置文件名选项与参数:—t:可以接文件系统格式,例如ext3,ext2,vfat等(系统有支持才会生效)范例一:请将上个小节当中所制作出来的/dev/hdc6格式化为ext3文件系统mkfs—text3/dev/hdc6Filesystemlabel=〈==这里指的是分割槽的名称(label)Blocksize=4096(log=2)〈==block的大小配置为4K251392inodes,502023blocks〈==由此配置决定的inode/block数量Creatingjournal(8192blocks):done<==有日志记录#这样就创建起来我们所需要的Ext3文件系统了!简单明了!mkfs[tab][tab]#按下两个[tab],会发现mkfs支持的文件格式如上所示!可以格式化vfat!3、磁盘挂载与卸除要进行挂载前,你最好先确定几件事:单一文件系统不应该被重复挂载在不同的挂载点(目录)中;单一目录不应该重复挂载多个文件系统;要作为挂载点的目录,理论上应该都是空目录才是。mount命令mount—amount[—l]mount[-t文件系统][—LLabel名][—o额外选项]\[-n]装置文件名挂载点选项与参数:-a:依照配置文件HYPERLINK”。tw/linux_basic/0230filesystem_3.php”\l”fstab"/etc/fstab的数据将所有未挂载的磁盘都挂载上来—l:单纯的输入mount会显示目前挂载的信息。加上-l可增列Label名称!-t:与HYPERLINK”.tw/linux_basic/0230filesystem_3。php"\l”mkfs”mkfs的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型.常见的Linux支持类型有:ext2,ext3,vfat,reiserfs,iso9660(光盘格式),nfs,cifs,smbfs(此三种为网络文件系统类型)—n:在默认的情况下,系统会将实际挂载的情况实时写入/etc/mtab中,以利其他程序的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入.此时就得要使用这个—n的选项了。—L:系统除了利用装置文件名(例如/dev/hdc6)之外,还可以利用文件系统的标头名称(Label)来进行挂载.最好为你的文件系统取一个独一无二的名称吧!—o:后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:ro,rw:挂载文件系统成为只读(ro)或可擦写(rw)async,sync:此文件系统是否使用同步写入(sync)或异步(async)的内存机制,请参考HYPERLINK”http://。tw/linux_basic/0230filesystem_3.php”\l”harddisk—filerun”文件系统运行方式.默认为async。auto,noauto:允许此partition被以mount-a自动挂载(auto)dev,nodev:是否允许此partition上,可创建装置文件?dev为可允许suid,nosuid:是否允许此partition含有suid/sgid的文件格式?exec,noexec:是否允许此partition上拥有可运行binary文件?user,nouser:是否允许此partition让任何使用者运行mount?一般来说,mount仅有root可以进行,但下达user参数,则可让一般user也能够对此partition进行mount.defaults:默认值为:rw,suid,dev,exec,auto,nouser,andasyncremo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论