您的位置:首页 > 运维架构 > Linux

磁盤與文件系統管理命令_Linux 磁盤與文件系統管理 命令用法详解:

2018-10-16 13:51 1641 查看
 RHEL中可能有成千上万的文件必须要存储在磁盘中;对系统管理者而言,如何管理好磁盘与文件系统,也是一门必备的学问。本章我们一起来学习RHEL的磁盘与文件系统必备的知识与技术。 2.1 磁盘的管理 2.1.1 动态磁盘参数       每一个磁盘都会提供一些参数,通过磁盘的参数,可以修改磁盘的结构与功能。查看磁盘的参数,可以使用hdparm :         hdparm device ...       下面我们来查询/dev/hda磁盘参数:       hdparm除了可以用来查看磁盘的参数外,还可以用来设置磁盘的参数:         hdparm [options...] device       常用的options如下表所示:    注:下表在最后附件中有下载!         下面使用hdparm设置/dev/hda DMA状态的例子: ① /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执行后可使用的命令如下表所示:  注:下表在最后附件中有下载 下面来看看执行fdisk的例子: ① 执行fdisk时,没有指定参数,则显示其简短的使用说明。 ① 执行fdisk /dev/hda 时,以便于利用fdisk 管理/dev/hda。 ② 执行fdisk期间,若不清楚该下一步输入什么命令,则输入m,就会显    示fdisk的命令列表。 ③ 输入q命令,则为退出且不保存。 2、查看分区     查看某一个硬盘的分区信息,用两种方式: ⑴ 执行fdisk后,再输入p命令。 ⑵ 在shell中直接执行fdisk -l 命令。 ① 执行fdisk查询。 ② 使用p命令,显示/dev/hda磁盘的分区表。 ③ 输入q命令,则为退出且不保存。 ① 直接使用fdisk查询/dev/hda磁盘的分区表。         当查看分区资料时,fdisk会先显示下面的信息,此为该磁盘的基本信息。 ① 硬盘的设备名称。 ② 硬盘的实际大小。 ③ 该硬盘有多少个磁面。 ④ 该硬盘每个磁道有多少个扇区。 ⑤ 磁柱的数量。 ⑥ 每一个磁柱的大小,也可以视为分区数据表中每一个单位的大小。 3、添加分区      若要在一个磁盘上生成一个新的磁盘分区,可以在fdisk中使用n命令来添加磁盘分区。此时要提供下面两项信息。 ⑴ 分区开始的磁柱编号。 ⑵ 分区拥有的磁柱数量。      下面来用fdisk命令添加一个100MB的分区的例子: ① 执行fdisk /dev/hda,便于fdisk管理/dev/hda。 ② 查询目前有哪些分区。 ① 使用n命令,添加一个扩展分区。 ② 再输入e,即为extended。 ③ 输入该分区开始的磁柱编号。此处没有指定开始磁柱编号,而是回    车,意即为第一个可用的磁柱。也就是默认值1491。 ④ 输入该分区的结束磁柱编号,此处也是回车,也就是默认值5221。 ① 使用p命令,显示/dev/hda磁盘的分区表。 ② 验证了此分区是扩展分区。 ① 使用n命令,在扩展分区中建立一个逻辑分区。 ② 输入该分区开始的磁柱编号。此处没有指定开始磁柱编号,而是回    车,意即为第一个可用的磁柱。也就是默认值1504。 ③ 输入该分区的结束磁柱编号,此处输入:+100M后,再回车。     分区的大小可以直接指定: ⑴ +size:  直接指定分区使用size个磁柱。 ⑵ +sizek:  直接指定分区为size kB。 ⑶ +sizeM:  直接指定分区为size MB。     注:若直接指定分区大小,一定要记得加上“+”这 个符号,否则fdisk将自动视为磁柱编号。若没有指定分区的大小,fdisk也会自动以可用磁柱的最后一个作为默认值。 ④ 使用p命令,显示/dev/hda磁盘的分区表。 ⑥ 验证了是否生成了正确的分区。   思考:如何添加一个分区为100MB,结果为⑤所示的分区。 ① 因为我们修改了分区数据表的内容,则必须使用w命令来将修改的数   据写入到磁盘中。 ② 此处提示我们要重新启动系统,让刚刚生成的分区生效。 4、删除分区      fdisk中的d命令来删除分区,在此之前一定要确认该分区没有重要数据,否则分区一经删除,该分区的上的文件可能就无法抢救。       下面来使用fdisk命令删除分区: ① 设备名为/dev/hda6 。 ① 输入d命令,告之fdisk要删除某一个分区。 ② 输入要删除的分区编号,此处仅需输入号码即可。 ③ 使用p命令,显示/dev/hda磁盘的分区表。 ④ 验证是否真的删除了/dev/hda6 。 ① 最后当然是要保存且重启RHEL5,以便更新分区数据表。 5、修改分区系统标识符      不同的分区可以存储不同的操作系统的文件数据,因此,每一个分区还得记录这个分区上存储的是哪一种文件系统(file System)。这个用来记录分区用途的信息,我们称之为分区系统标识符(Partition systemId)。目前的分区系统标识符是一个16进制的数值,如果想要知道fdisk工具支持哪些分区标识符,可以在fdisk中使用l命令,列出目前使用的fdisk支持的所有分区标识符清单。       初看上面这么多系统标识符,其实常用的没有几个。如下表所示:          修改分区的系统标识符,先执行fdisk后,再输入t命令进行修改。       下面我们来看看如何修改分区系统标识符: ① 此处的/dev/hda5这个分区的系统标识符是83,系统是Linux 。 ① 执行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]           下面我们来使用mkfs制作/dev/hda5的文件系统: ① 用mkfs将/dev/hda5制作文件系统,此处没有加任何参数,故mkfs采用默认值ext2文件系统且为hda5所有空间。 ① 加了-t  msdos参数,在/dev/hda5上建立msdos文件系统了。 2.5  挂载文件系统     在RHEL中,整个系统只会有一个根目录,不允许有第二个以外的根目录。故要在RHEL系统中使用某个磁盘空间的根目录与其中所有文件,就必须将该文件系统挂载到文件系统的某一个目录下。       挂载文件系统的命令是 mount,语法如下:        mount [-a] 或者        mount [-t  fstype] [-o  mount_options] [-device] [mount_pointer]       执行mount时,没有指定参数,则表示要查看目前的挂载数据表。mount常用参数见下表:      好啦,我们来看看如何使用mount命令: ① 建立/mnt/tmp/目录,作为挂载点。 ② 查看/mnt/tmp/的内容,目前为空的,表示没有任何文件资料。 ③ 使用mount命令,将/dev/hda5分区的文件系统挂载到/mnt/tmp/ 。 ④ 再次查看/mnt/tmp/,结果显示有一个lost+found的目录,即存放在/dev/hda5分区中的文件系统。 2.5.1  挂载数据表         如何才能知道RHEL共挂载了哪些文件系统?其实非常简单,直接使用mount命令,不加任何参数即可。 由上述数据,可知是以下列的格式显示文件系统的挂载信息。     device  on  mount_pointer   type  fstype  (mount_options)     其中的每一个字段说明如下: ⑴ device :  文件系统的设备文件名。若device显示为                    none :  则表示不是实体的磁盘空间。 ⑵ mount_pointer :  挂载点的路径名称。 ⑶ fstype :  文件系统的类型。 ⑷ mount_options :  挂载时的参数。     除此之外,每挂载一个文件系统的时候,RHEL会自动将挂载的信息加入到/etc/mtab文件中;而卸载一个文件系统时,RHEL也会自动删除/etc/mtab中相关的记录。所以,另一种查看目前文件系统挂载信息的方法,就是直接读取/etc/mtab文件。         不过,/etc/mtab会以/etc/fstab文件的格式显示目前的挂载信息。 2.5.2  挂载参数       使用mount挂载文件系统时,可以指定挂载的参数来修改文件系统的功能。挂载参数分为:共享挂载参数和文件系统特定的挂载参数。 1、共享挂载参数       共享挂载参数可以用在任何文件系统上,而且大部分是两两一组,同一组的参数通常是互斥的;也就是说如果你使用了其中一个,就不能使用同一组的另外一个参数。例如:ro/rw就是一组共享挂载参数,若使用ro,就不能使用rw 。           另外,有一个名为defaults的共享挂载参数,即使用mount时没有加任何参数,defaults这个挂载参数等于rw、suid、dev、exec、auto、nouser、async几个参数的组合。 2、文件系统特定挂载参数       它仅适用于某文件系统,我们称之为文件系统特定挂载参数。 3、指定与修改挂载参数       改变文件系统参数有两种方式: ⑴ 执行mount时,直接指定 -o  mount_options参数。 ⑵ 使用mount  -o  remount,mount_options修改挂载参数。      方法⑴:仅适用新挂载文件系统时,若已经挂载,则先卸载,再使用方法⑴重新挂载一次;    方法⑵:不需要卸载,直接修改文件系统的挂载参数。    下面来举一个例子,修改挂载参数: ① 使用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就可以被生成出来了。

相关命令

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐