鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

本文总结了Linux操作系统来管理我们的硬盘和文件系统需要使用命令。当我们在系统中增加一个硬盘驱动器。什么是我们需要去通过这个硬盘就可以真正使用步骤?下面步骤:

(1)对磁盘进行分区,新建能够使用的分区;

(2)对分区进行格式化。将分区格式化为我们操作系统可以使用的文件系统;

(3)对新建好的文件系统进行检验;

(4)创建挂载点,将该文件系统挂载上来。

接下来就介绍磁盘分区,格式化,检验和挂载的相关命令。

磁盘分区通过 fdisk命令进行。fdisk命令的基本用法 为“fdisk [-l]  设备名”。进入fdisk命令后,详细怎样操作,能够通过按下m查看帮助。

比較重要的几个命令为: d : 删除一个分区。 n: 新增一个分区; p:在屏幕上显示分区表
; q,离开fdisk程序。不保存不论什么设置。w:将所做的设置写入分区表。当然,也能够通过 fdisk -l 命令直接查看当前主机的硬盘信息和分区情况。如图所看到的:

鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

使用fdisk命令另一些注意事项,当我们使用w命令将设置写入分区表后。可能会出现警告信息,让我们又一次启动以更新分区表信息。这是由于我们的磁盘还处于使用状态,无法卸载,因此内核无法又一次取得分区表信息。除了重新启动之外。还能够使用GNU推出的partprobe工具程序强制内核又一次查找分区表。

另外fdisk命令对于2TB以上的磁盘也无法处理,此时就须要parted命令来进行磁盘分区了。

格式化的命令是通过mkfs(make file system)命令进行的。它的用法为 “mkfs [-t 文件系统格式]  设备文件名称”。mkfs是一个综合命令。当我们使用 “mkfs -t ext3 ...”命令时。系统会调用mkfs.ext3命令来进行对应的格式化。

我们能够在输入mkfs命令后连续按下两个tab键。就能够查看mkfs支持的文件格式了。下面是我的的系统上mkfs支持的文件系统格式:

鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

当中vfat格式是能够在Windows和Linux中同一时候被支持的,因此须要在Windows和Linux*享的U盘能够使用这样的格式。在使用mkfs命令时,除了指定文件系统的类型,还能够指定文件系统的卷标,block大小。inode大小等等。mkfs是调用mke2fs这个公用程序来设置这些參数,mke2fs的用法为“mke2fs
 [-b blocksize]  [-i inodesize]  [-L 卷标]  [-cj]  设备”。

fsck命令是用来检查和修正文件系统错误的命令。

fsck命令仅仅有身为root用户并且文件系统有问题情况下才使用这个命令,否则正常情况下使用这个命令。可能会对系统造成损害,当然刚刚格式化成功的分区也能够通过fsck命令来进行检測。此时被检測的分区务必不能挂在到系统上。也就是说文件系统必须处于卸载状态。当使用fsck命令检測磁盘时。有问题的数据都会被放置到到该文件系统的lost+found这个文件夹下。

每一个文件系统最顶层的文件夹(就是挂在点那个文件夹以下)都会存在一个lost+found文件夹。除了fsck命令用来检測文件系统是否出过错,还能够使用badlocks命令来检查硬盘扇区是否有坏轨。

接下来是磁盘挂载与卸载,关于挂载的概念已经讲了非常多遍了。挂载点一定是文件夹,该文件夹就是进入磁盘分区的入口。訪问该文件夹就能訪问到该文件系统的数据。

Linux中使用mount命令进行文件系统的挂载,mount命令是个非常实用的命令。能够挂载 ext3/vfat/nfs等文件系统。mount命令的用法例如以下:

mount -a: 按照配置文件 /etc/fstab的数据将全部未挂载的磁盘都挂载上来;

mount -l: 只输入mount命令会显示出当前系统的挂载信息。加上 -l 參数能够添加Label名称;

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 设备文件名称 挂载点 : 将某个设备按指定方式进行挂载。

mount命令使用起来很easy,在实际挂载的时候甚至不须要通过 -t 參数来指定文件系统的类型,由于文件系统差点儿都有super block,挂载的时候Linux会自己主动分析super block并搭配Linux自己的驱动程序去測试挂载。假设測试成功了。就马上使用该类型的文件系统去挂载设备。所以当我们在电脑中插入U盘了,假设想使用该U盘,也须要使用mount命令将U盘进行挂载。mount命令还能够通过
-o remount 參数进行又一次挂载,当我们进入单用户维护模式时,因为根文件夹常会被系统挂载为仅仅读,这个时候就能够通过这个參数来又一次挂载了。

除了挂载设备,通过mount --bind 命令还能够将某个文件夹挂载到另外一个文件夹上面去。以后訪问挂载点就相当于訪问该文件夹。当然这样的效果也能够通过符号连接实现。

下面是使用mount 挂载一个文件夹的举例:

鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

挂载之后能够使用umount命令进行卸载,umount的用法为 “umount [-fn]  设备文件名称或挂载点”。

能够使用设备文件名称或者挂载点来进行卸载,卸载之后能够使用df命令或mount -l命令来查看该文件系统还是否存在于文件夹树中,可是假设挂载的是文件夹而不是磁盘设备,则就仅仅能通过挂载点来卸载。并且卸载的时候请注意。须要将工作文件夹换到挂载点(及其子文件夹)之外的文件夹里去。

接下来介绍一些改动磁盘參数的命令。之前讲过,在Linux下全部设备都是用文件来表示,那怎样通过文件来表示一个设备呢,就是通过文件的major和minor数值来取代。

major为主设备码,minor为次设备码,内核认识设备数据就是通过这两个数值来决定的。在Linux内核升级为2.6之后。硬件的设备文件名称能够自己主动被系统实时产生了。不须要我们手动创建。可是还是了解一下怎样手动创建设备文件。以备不时之需。创建设备文件是通过mknod命令进行,该命令的用法为“mknod
设备文件名称 [bcp] [Major] [Minor]”。

每一个文件系统有一个文件系统卷标(Label)。该卷标值能够在文件系统格式化(mkfs)时指定。也能够使用e2label命令来改动。e2label的使用方法为:“e2label  设备名称  新的Label名称“。 Linux文件系统的卷标名类似于Window里每一个盘都有的一个名字(C盘/D盘等)。挂载的时候我们也能够使用文件系统的卷标名来进行挂载,而在CentOS中。/etc/fstab文件的设置都是默认用Label
name。

使用卷标名有什么优点呢?不管你的磁盘设备文件名称怎么变。系统是通过Label name来识别你的硬盘,因此不管你的硬盘插到哪个接口都不会有影响。

还有tune2fs命令,tune2fs命令功能比較广泛,能够自行man下面。hdparm命令对于IDE接口的硬盘而言,能够设置非常多高级參数。可是对于SATA接口的硬盘,就没有多大用处了。唯一能够做的就是通过 “hdparm -t 设备名称” 的方式来測试磁盘的性能,可是測试结果不是非常准确,仅仅能作为一个參考。

手动使用mount命令来挂载不是非常方便,能够让系统在开机的时候自己主动将文件系统挂载好。主要通过改动/etc/fstab文件来设置开机自己主动挂载。

我们每次使用mount命令挂载文件系统时。事实上就是把对应的參数写到/etc/fstab这个文件中的。该文件共同拥有六个字段,通过名字就能理解每一个字段的意义的。

当中Device字段是代表磁盘设备的文件名称或设备的Label
name。并且默认是採用Label name。第四列的parameters代表的是文件系统的參数,能够设置许多的參数。比如同步还是异步,是否同意用户挂载等等。

dump列是指该文件系统是否能被dump命令进行备份。0是不备份,1是每天都dump备份,2代表其他不定日期的dump备份。fsck列代表是否用fsck程序检測该文件系统,0代表不检測,1代表检測。2也代表检測,可是比1检測的晚,因此将根文件夹所在的文件系统设置为1,其他的设置为2就可以。当我们改动/etc/fstab文件后。为了防止语法错误而导致我们无法开机,在改动后一定要使用df命令或mount
-l命令来測试是否可以得到
正确地挂在信息。

在Linux中。对于一个镜像文件,我们能够不用把它刻录成光盘。就能够訪问到该文件中的数据。我们能够直接使用特殊特备loop方式挂载,mount -o loop的方式将一个镜像文件进行挂载,然后訪问该挂载点就能訪问到镜像文件中的数据。

真的很方便,想想在Windows中,我们得通过第三方软件才干打开镜像文件。除了镜像文件。对于一个大文件,我们也能够使用这样的方式来挂载,这就相当于我们不须要改动分区表就能制造出我们想要的分区了。下面是我使用
mount -o loop 方式将CentOS安装镜像文件进行挂载:

鸟哥Linux私房菜 基础学习篇读书笔记(10):Linux磁盘和文件系统管理(3)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnVjaGVuY29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

最后介绍一下内存交换空间(swap)的构建。在安装CentOS时,就说明了须要构建swap(内存交换空间)。当主机的物理内存不足时,内核就会把物理内存中临时用不到的程序和数据挪到swap中,从而空出物理内存来载入须要运行的程序。因此swap的功能就是在物理内存不足的情况下起到扩展内存的作用。假设在安装Linux时忘记了构建swap,能够使用例如以下方式来创建swap:首先依旧是使用fsck命令分出一个分区来给系统作为swap。然后使用mkswap命令来将该分区格式化为swap格式,然后用“swapon
设备文件名称”的方式来将该swap设备启动。能够使用free这个内存查看命令观察swap是否被正确载入。

除了能够把一个分区构建为swap,还能够使用一个大文件来构造swap。方法是类似的。

并且使用文件构建swap时,还能够使用swapoff来释放
swap file。

本章Linux命令总结:

fdisk,partprobe,mkfs,mke2fs,fsck,badlocks。mount,umount,mknod,e2label,tune2fs,hdparm,mkswap,swapon。swapoff,free。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

上一篇:Android Tips: 打电话和发短信


下一篇:android 一题多改系列——android 打电话实现两种方法