(1)概述:硬盘是计算机的主要外部存储设备,计算机中的存储设备种类非常多,主要常见的有软盘、硬盘、光盘、U盘等;甚至还有一些网络存储设备,SAN、NAS等,不过我们最多使用的还是硬盘设备。
(2)如果从存储介质上来区分,那么硬盘可以分为机械硬盘(HDD Hard Disk Driver)和固态硬盘(SSD Solid State Disk),机械硬盘采用磁性碟片存储数据,固态硬盘是通过闪存颗粒来进行存储的。
(3)机械硬盘主要是由磁盘盘片、磁头、主轴与传动轴组成,数据就是存放在磁盘盘片当中。硬盘是上下双磁头,盘片在两个磁头之间高速旋转,也就是说机械硬盘是上下面同事读取数据的,而且由于机械硬盘的旋转速度非长的高,在读写数据的时候如果发生碰撞或者是摇晃,可能会造成磁头或者是磁片损坏,一般来说机械硬盘的拆除时要在无尘的环境下执行操作的。
(4)机械硬盘的逻辑结构主要分为磁道、扇区和柱面。
(5)机械硬盘通过接口与计算机主板进行连接,硬盘的读取和写入速度与接口有很大的关系。常见的机械硬盘接口如下所示:
IDE硬盘接口:(电子集成驱动器),称作ATA硬盘或者是PATA硬盘,是早期机械硬盘的主要接口,ATA133硬盘的理论速度是可以达到133M/S的;
SATA接口:(Serial ATA,串口)是速度更高的磁盘标准;具备了更高的传输速度,并具备了更高的纠错能力,目前已经是SATA三代,理论值可以达到600M/S速度;
SCSI接口:(小型计算机系统接口)广泛的应用在服务器上,具有应用广泛 、多任务、带宽大、cpu占用率低及热插拔等优点,理论传输速度达到320M/S;
1.2 固态硬盘
(1)固态硬盘和传统的机械硬盘就是不在采用盘片进行数据的村塾,而是采用存储芯片进行数据存储。固态硬盘的存储芯片主要是分为两种,一种是采用闪存作为存储介质的,另一种是采用DRAM作为存储介质的,目前市场上使用的大多数都是以闪存作为存储介质的固态硬盘;
(2)固态硬盘因为丢失了机械硬盘的物理结构,所以相比机械硬盘具有低耗能、无噪声、抗震动、低散热、体积小和速度快的优势。
2.linux文件系统
2.1 文件系统的基本概念
文件系统中除要保存问价的数据外,还要保存文件的属性,例如文件的权限、所有者、属组和时间参数等内容。文件系统把文件的数据和属性分开进行存放,把文件数据存放到date block中(数据块:保存文件的具体数据),把文件的属性保存在inode中(i节点,保存文件的属性等相关参数);同时另外还有一个super block用于记录整个文件系统的信息,例如inode和block的总量,已经使用量和剩余量;
2.2 基本概念
(1)super block :记录整个文件系统的信息,包括block和block的数量,未使用的block和block的数量,block和inode的大小;
(2)date block (数据块):用来实际保存数据,block的大小和数量在格式化后就已经决定,不能够改变的。每个block只能够用来保存一个文件数据,如果文件数据小于一个block快,那么这个block块剩余空间不能够被其他的文件使用,如果文件数据大于一个block快,则要占用多个block块。在windows中的磁盘碎片整理利用的就是把一个文件占用的多个block块尽量的整理到一起,这样可以加快读写速度;
(3)inode(i节点):用来记录文件的权限,文件的所有者和属组,文件的大小、文件的状态改变时间,文件最近的一次读取时间,每个文件需要占用一个inode。
2.3 常见的linux文件系统
linux能够支持的文件系统是非常的多,除了linux系统默认的ext系列,还能够支持fat16/fat32、NTFS(需要重新编译内核)。linux可以通过挂载的方式进行其他文件系统数据的使用。
件系统 | 描 述 |
---|---|
ext | Linux 中最早的文件系统,由于在性能和兼容性上具有很多缺陷,现在已经很少使用 |
ext2 | 是 ext 文件系统的升级版本,Red Hat Linux 7.2 版本以前的系统默认都是 ext2 文件系统。于 1993 年发布,支持最大 16TB 的分区和最大 2TB 的文件(1TB=1024GB=1024x1024KB) |
ext3 | 是 ext2 文件系统的升级版本,最大的区别就是带日志功能,以便在系统突然停止时提高文件系统的可靠性。支持最大 16TB 的分区和最大 2TB 的文件 |
ext4 | 是 ext3 文件系统的升级版。ext4 在性能、伸缩性和可靠性方面进行了大量改进。ext4 的变化可以说是翻天覆地的,比如向下兼容 ext3、最大 1EB 文件系统和 16TB 文件、无限数量子目录、Extents 连续数据块 概念、多块分配、延迟分配、持久预分配、快速 FSCK、日志校验、无日志模式、在线碎片整理、inode 增强、默认启用 barrier 等。它是 CentOS 6.3 的默认文件系统 |
swap | swap 是 Linux 中用于交换分区的文件系统(类似于 Windows 中的虚拟内存),当内存不够用时,使用交换分区暂时替代内存。一般大小为内存的 2 倍,但是不要超过 2GB。它是 Linux 的必需分区 |
NFS | NFS 是网络文件系统(Network File System)的缩写,是用来实现不同主机之间文件共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源 |
iso9660 | 光盘的标准文件系统。Linux 要想使用光盘,必须支持 iso9660 文件系统 |
fat | 就是 Windows 下的 fatl6 文件系统,在 Linux 中识别为 fat |
vfat | 就是 Windows 下的 fat32 文件系统,在 Linux 中识别为 vfat。支持最大 32GB 的分区和最大 4GB 的文件 |
NTFS | 就是 Windows 下的 NTFS 文件系统,不过 Linux 默认是不能识别 NTFS 文件系统的,如果需要识别,则需要重新编译内核才能支持。它比 fat32 文件系统更加安全,速度更快,支持最大 2TB 的分区和最大 64GB 的文件 |
ufs | Sun 公司的操作系统 Solaris 和 SunOS 所采用的文件系统 |
proc | Linux 中基于内存的虚拟文件系统,用来管理内存存储目录 /proc |
sysfs | 和 proc —样,也是基于内存的虚拟文件系统,用来管理内存存储目录 /sysfs |
tmpfs | 也是一种基于内存的虚拟文件系统,不过也可以使用 swap 交换分区 |
3、文件系统查看命令
3.1 df命令
通过df命令可以查看已经挂载的文件系统的信息包括设备的文件、文件系统总大小、已经使用的大小、剩余大小、使用率和挂载点等;
(1)语法:
df 选项 挂载点或者是分区目录;
选项说明:
-a :显示所有文件系统信息,包括特殊文件的显示;
-h 使用习惯的单位显示容量,例如使用kb等的显示磁盘的容量
-T 显示文件系统类型
-m 以MB为单位进行容量的显示;
3.2 du命令
du是统计目录或文件所占磁盘空间大小的命令;
(1)语法:
du 选项 目录或者文件名
选项说明:
-a 显示每子文件的磁盘占用量,
-h 使用习惯的单位显示磁盘目录
-s 统计总磁盘占用量;
(2)df和du的区别
df是从文件系统的角度去考虑,也就是说在使用df统计分区的时候,不仅要考虑文件占用的空间,还要统计北命令或者程序占用的空间;
du命令是面向文件的,只会计算文件或者是目录占用的磁盘空间,也就是说df命令统计的分区更准确,是真正的空闲空间;
3.3 mount命令
Linux中所有的存储设备都是需要通过挂载以后才能够正常使用的,挂载是把硬盘分区和挂载点练习起来的过程;挂载点必须是目录,而且原则上应该使用空目录作为挂载点;
(1)语法:
mount -t 文件系统名称 -L卷标名 -o 特殊选项 设备文件名称 挂载点
参数说明:
-t 文件系统名称
-L 卷表明
-o 特殊选项
使用mount命令查看系统中已经挂载的文件系统,包含有虚拟文件系统
(2)在将所需要的存储设备挂载完成之后,当我们不想使用的时候我们需要对我们已经挂载的设备进行卸载,我们需要使用umount命令,一般使用 umount 设备文件名或者是挂载点
(3)卸载命令既可以加设备文件名也可以加挂载点,不过只能加一个。在进行卸载的时候,我们必须退出我们的挂载目录;
3.4 fsck命令
当出现文件系统损坏的的情况,我们可以使用fsck命令进行文件系统的检测和恢复的;
(1)语法:
fsck 选项 分区设备文件名称
选项说明:
-t 文件系统
-A 按照配置文件/etc/fstab检查所有分区
-a 不用显示用户提示,自动修复文件系统
-C 显示检查分区的进度条
-f 强制检测,一般来说fsck命令如果没有发现问题,则是不会检测的,如果强制检测。那么不管发生什么问题都是需要进行检测;
-y 自动修复和-a作用一直,不过有些文件系统只支持-y方式参数进行操作;
3.5 fdisk命令
我们在安装操作系统的过程中已经对硬盘呢进行了分区,但是当我们添加了一块新的硬盘的时候,想要正常使用,我们可以使用fdisk命令进行磁盘的分区;
(1)fdisk -l
列出系统分区
(2)fdisk 设备文件名称
fdisk创建分区步骤:
(1)fdisk 设备文件名称
(2)输入n,表示建立新的分区;
(3)p建立主分区,指定分区编号(1-4)
(4)回车,默认柱面是从1开始的,最多有四个;但是我们新创建的分区还没有进行格式化和挂载,是不能够使用的
(2)如何创建一个扩展分区
说明:主分区和扩展分区加起来最多只能建立4个,而扩展分区只能建立1个;
[root@localhost ~]# fdisk /dev/sdb
…省略部分输出…
Command (m for help): n
#新建立分区
Command action
e extended
p primary partition (1-4)
e
#这次建立扩展分区
Partition number (1-4): 2
#给扩展分区指定分区号2
First cylinder (655-2610, default 655):
#扩展分区的起始柱面。上节建立的主分区1已经占用了1~654个柱面,所以我们从655开始建立,注意:如果没有特殊要求,则不要跳开柱面建立分区,应该紧挨着建立分区
Using default value 655
提示使用的是默认值655
Last cylinder, +cylinders or +size{K, M, G} (655-2610, default 2610):
#这里把整块硬盘的剩余空间都建立为扩展分区
Using default value 2610
#提示使用的是默认值2610
(3)逻辑分区的建立和使用
说明:扩展分区是不能够被格式化和直接使用的,所以还要在扩展分区内部在建立逻辑分区;
[root@localhost ~]# fdisk /dev/sdb
…省略部分输出…
Command (m for help): n
#建立新分区
Command action
l logical (5 or over)
#由于在前面章节中,扩展分区已经建立,所以这里变成了l(logic)
p primary partition (1-4)
l
#建立逻辑分区
First cylinder (655-2610, default 655):
#不用指定分区号,默认会从5开始分配,所以直接选择起始柱面
#注意:逻辑分区是在扩展分区内部再划分的,所以柱面是和扩展分区重叠的
Using default value 655
Last cylinder, +cylinders or +size{K, M, G} (655-2610, default 2610):+2G
#分配2GB大小
Command (m for help): n
#再建立一个逻辑分区
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (917-2610, default 917):
Using default value 917
Last cylinder, +cylinders or +size{K, M, G} (917-2610, default 2610):+2G
Command (m for help): p
#查看一下已经建立的分区
Disk /dev/sdb: 21.5GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 *512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb4b0720c
Device Boot Start End Blocks id System
/dev/sdb1 1 654
5253223+ 83 Linux
#主分区
/dev/sdb2 655 2610 15711570
5 Extended
#扩展分区
/dev/sdb5 655 916
2104483+ 83 Linux
#逻辑分区 1
/dev/sdb6 917 1178
2104483+ 83 Linux
#逻辑分区2
Command (m for help): w
#保存并退出
The partition table has been altered!
Calling ioctl。to re-read partition table.
Syncing disks.
[root@localhost -]#
#退回到提示符界面
3.6 mkfs的使用
说明:分区完成后,如果不格式化写入的文件系统,则是不能够正常使用的,我们需要使用mkfs命令进行格式化
(1)语法:
mkfs 选项 分区或设备文件名称
选项说明:
-t 指定格式化的文件系统;
(2)mkfs命令非常简单,不过是不能够调整分区的默认参数,这些默认参数除非是特殊情况,否则是不需要进行调整的。如果想要重新调整分区的默认参数,使用mke2fs命令重新格式化;
语法如下:
mks2fs 选项 分区设备文件名称
选项说明:
-t 文件系统,指定格式化成那个文件系统
-b 指定block的大小
-i 指定inode的比例,也就是少分配一个inode;
-j 简历带有ext3日志功能的文件系统
-L 卷标名称,给文件系统设置卷标名称;