一、磁盘介绍
磁盘(disk)是指利用磁记录技术存储数据的存储器。
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。
1、硬盘
硬盘的容量以兆字节(MB)或千兆字节(GB)为单位,1GB=1024MB,1TB=1024GB。但硬盘厂商在标称硬盘容量时通常取1G=1000MB,因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。
2、硬盘的分类
1)从工作原理可分为:
机械硬盘(Hard Disk Drive, 简称HDD):所有的盘片都装在一个旋转轴上,采用磁性碟片来存储数据,读写速度慢,怕摔、怕磁,(单位换下来的坏盘会做消磁处理)。
固态硬盘(Solid State Disk, 简称SSD):内部不存在任何盘片的机械部件,通过闪存颗粒来存储数据,读写速度快,价格相对贵。
固态硬盘和传统的机械硬盘最大的区别就是不再采用盘片进行数据存储,而采用存储芯片进行数据存储。固态硬盘的存储芯片主要分为两种:一种是采用闪存作为存储介质的;另一种是采用DRAM作为存储介质的。目前使用较多的主要是采用闪存作为存储介质的固态硬盘。
2)从硬盘的接口可分为:
SATA接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口等,SCSI和IDE接口已淘汰。
3、机械硬盘结构
机械硬盘主要由磁盘盘片、磁头、主轴与传动轴等组成,数据就存放在磁盘盘片中,上下盘面同时进数据读取的。硬盘是上下双磁头,盘片在两个磁头中间高速旋转。所以机械硬盘在读取或写入数据时,非常害怕晃动和磕碰。
机械硬盘的逻辑结构主要分为磁道、扇区和拄面。看下图:
磁道:以盘片中心为圆心,把盘片分成若干个同心圆,那每一个“线条”划分出的每一个同心圆,就称为磁道。(注意,磁道只是逻辑结构,在盘面上并没有真正的同心圆)。磁道从外向内自0开始顺序进行编号,各个磁道上的扇区数是在硬盘格式化时确定的。
扇区:在盘片上每个同心圆是磁道,把盘片划分成若干个扇形的区域,就是扇区。每个扇区的大小是固定的,为 512Byte(相当于0.5KB)。扇区也是磁盘的最小存储单位。
柱面:如果硬盘是由多个盘片组成的,多个盘片中具有相同编号的磁道会形成一个圆柱,这个圆柱就被称作磁盘的柱面。磁盘中有多少个磁道,就有多少个柱面。见上图。
硬盘的大小/存储容量 = 磁头数 x 柱面数 x 扇区数 x 每个扇区的大小。 其中,
磁头数(Heads)表示硬盘共有几个磁头,也可以理解为硬盘有几个盘面,然后乘以 2;
柱面数(Cylinders)表示硬盘每面盘片有几条磁道;
扇区数(Sectors)表示每条磁道上有几个扇区;
每个扇区的大小一般是 512Byte。
二、Linux 文件系统的组成
Linux 文件系统由文件名,inode和block三部分组成 。通常情况下,文件系统会将文件的实际内容和属性分开存放:
文件的属性保存在 inode (i 节点)中,每个 inode 都有自己的编号。每个文件各占用一个 inode。不仅如此,inode 中还记录着文件数据所在 block 块的编号;
文件的实际内容保存在 block (数据块)中,用来真正存放数据的地方。每个 block 都有属于自己的编号。当文件太大时,可能会占用多个 block 块。
另外,还有一个 super block(超级块)用于记录整个文件系统的整体信息,包括 inode 和 block 的总量、已经使用量和剩余量,以及文件系统的格式和相关信息等。
注意:inode 节点并不存储文件的文件名,因为文件名是文件所在目录的数据,所以会保存在上一级目录的 block 块中。要对文件的上一级目录拥有 w 权限,才能删除目录中的文件,就是因为文件名是保存在目录的 block 中的。
由此可以推断出,只要能找到文件 inode 所在的位置,就能知道这个文件存放数据的 block 号,从而找到文件的实际数据。
下面inode参考文章:理解inode 通俗易懂,非常好。
(一)inode
1、inode是什么?
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
2、inode的内容
inode包含文件的元信息,相当于windows的文件的属性:
文件的字节数
文件拥有者的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳,共有三个:
- ctime指inode上一次变动的时间,
- mtime指文件内容上一次变动的时间,
- atime指文件上一次打开的时间。
链接数,即有多少文件名指向这个inode
文件数据block的位置
可以用 stat 命令,查看某个文件的inode信息:
[root@centos7 ~]# stat ./abc/file2.cfg
文件:"./abc/file2.cfg"
大小:1440 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:4656 硬链接:1
权限:(0764/-rwxrw-r--) Uid:( 1000/ lisi) Gid:( 1001/ g_lisi)
最近访问:2020-01-19 11:20:21.322358423 +0800
最近更改:2019-12-12 14:22:34.593080610 +0800
最近改动:2020-01-04 14:40:54.145424326 +0800
创建时间:-
总之,除了文件名以外的所有文件信息,都存在inode之中。
3、inode的大小
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
查看每个硬盘分区的inode总数和已经使用的数量,可以使用 df 命令:
[root@centos7 ~]# df -i ./abc/file2.cfg
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 9332224 40541 9291683 1% /
4、inode号码
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。
这里值得重复一遍,Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。
表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
使用 ls -i 命令,可以看到文件名对应的inode号码:
[root@centos7 ~]# ls -i ./abc/file2.cfg
4656 ./abc/file2.cfg
5、目录文件
Unix/Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。
目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。
ls 命令只列出目录文件中的所有文件名。
ls -i 命令列出整个目录文件,即文件名和inode号码。如果要查看文件的详细信息,就必须根据inode号码,访问inode节点,读取信息。
ls -l 或 ll 命令列出文件的详细信息。
[root@centos7 ~]# ls ./abc
aa_dir aa_dir.tar aa_dir.tar.bz2 aa_dir.tar.gz aa_dir.zip bb_dir file2.cfg test22
[root@centos7 ~]# ls -i ./abc
20977 aa_dir 33596178 aa_dir.tar.bz2 33667746 aa_dir.zip 4656 file2.cfg
33575013 aa_dir.tar 33575015 aa_dir.tar.gz 16790266 bb_dir 4654 test22
[root@centos7 ~]# ll -l ./abc
总用量 28
drwxr-xr-x 3 root root 52 1月 19 15:01 aa_dir
-rw-r--r-- 1 root root 10240 1月 10 16:01 aa_dir.tar
-rw-r--r-- 1 root root 1101 1月 10 16:08 aa_dir.tar.bz2
-rw-r--r-- 1 root root 1002 1月 10 16:05 aa_dir.tar.gz
-rw-r--r-- 1 root root 1614 1月 10 16:40 aa_dir.zip
drwxr-x-wx 2 root root 6 1月 6 11:53 bb_dir
-rwxrw-r-- 1 lisi g_lisi 1440 12月 12 14:22 file2.cfg
drwxr-xr-- 3 root root 43 1月 4 14:08 test22
理解了上面这些知识,就能理解目录的权限。目录文件的读权限(r)和写权限(w),都是针对目录文件本身。由于目录文件内只有文件名和inode号码,所以如果只有读权限,只能获取文件名,无法获取其他信息,因为其他信息都储存在inode节点中,而读取inode节点内的信息需要目录文件的执行权限(x)。
6、inode的特殊作用
由于inode号码与文件名分离,这种机制导致了一些Unix/Linux系统特有的现象。
1) 有时,文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除文件的作用。
2) 移动文件或重命名文件,只是改变文件名,不影响inode号码。
3) 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名。
(2)block
1、block的内容
block是真正存储数据的地方。block是文件系统中的最小存储单位,扇区是磁盘中的最小存储单位。
操作系统读取硬盘的时候,不会一个个扇区(512字节)地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。
"块"的大小:有1KB,即连2个扇区组成一个 block。或4K,连8个扇区组成一个 block等。
block 的大小和数量在格式化后就已经决定,不能修改;如果修改,请重新格式化分区,记得先卸载。
2、block的大小对系统的影响
block调大时,节约了寻址时间,速度变快,但浪费空间;
block调小时,节约空间,但寻址时间变长,速度变慢。
说明:为什么block调大会浪费空间?这是因为一个文件会占用多个block来存放。当前一个block放不下时,就会占用下一个block,到最后如果产生不足以占用一个完整的block时,仍然会占用一个完整的block,就会浪费这个block剩下的空间。
如果有一个2T的硬盘,可以前1.5T使用4K的block,后0.5G使用64K的block,这样可以改善机械硬盘越到最后速度越慢的问题。用空间换时间。
3、查看block的大小以及修改
显示磁盘状态信息:CentOS6用: dumpe2fs 设备文件名 ,CentOS7用:xfs_info 设备文件名
查看某个设备的block大小
[root@centos7 ~]# xfs_info /dev/sda3
meta-data=/dev/sda3 isize=512 agcount=4, agsize=1166528 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4666112, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
修改block的大小,CentOS7用 mkfs.xfs格式化命令,需要格式化分区,mkfs.xfs就是mkfs –t xfs的简写
(3)Linux支持的常见文件系统
Linux 系统能够支持的文件系统非常多,CentOS 6.x 默认使用 Ext4,而 CentOS 7.x 默认使用 xfs 格式。
Linux 所能够支持的文件系统在 "/usr/src/kemels/当前系统版本/fs" 目录中(需要在安装时选择),该目录中的每个子目录都是一个可以识别的文件系统。常见的 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 的默认文件系统 |
| xfs | 被业界称为最先进、最具有可升级性的文件系统技术,由 SGI 公司设计,目前最新的 CentOS 7 版本默认使用的就是此文件系统。 |
| 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 交换分区 |
三、磁盘和文件系统管理命令
磁盘写数据时,先从外往里。引导数据一般保存在0磁道0扇区里,系统启动时需要这个引导区里的引导数据来引导系统启动。
1、分区并格式化分区
硬盘是用来存储数据的,通常新的硬盘要对其进行分区并格式化分区,分区就如同把一个大柜按照要求分割成几个小柜子(组合衣柜);格式化就好比在每个小柜子中打入隔断,决定每个隔断的大小和位置,然后在柜门上贴上标签,标签中写清楚每件衣服保存的隔断的位置和这件衣服的一些特性(比如衣服是谁的,衣服的颜色、大小等)。
在格式化过程中,既清除了硬盘中的数据,又向硬盘中写入了文件系统。不同操作系统使用的文件系统并不相同,格式化的真实目的是为了写入文件系统。
2、磁盘常用管理命令
1)df 命令:查看文件系统硬盘使用情况
用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。
df 命令主要读取的数据几乎都针对的是整个文件系统,即主要是从各文件系统的 Super block (超级块)中读取数据。
基本格式为:[root@centos7 ~]# df [选项] [目录或文件名]
选项:
| 选项 | 作用 |
|---|---|
| -a | 显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统; |
| -m | 以 MB 为单位显示容量; |
| -k | 以 KB 为单位显示容量,默认以 KB 为单位; |
| -h | 使用人们习惯的 KB、MB 或 GB 等单位自行显示容量; |
| -T | 显示该分区的文件系统名称; |
| -i | 不用硬盘容量显示,而是以含有 inode 的数量来显示。 |
实例一:df
不使用任何选项的 df 命令,默认会将系统内所有的文件系统信息,以 KB 为单位显示出来。
- Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
- 1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
- Used:表示用掉的硬盘空间大小;
- Available:表示剩余的硬盘空间大小;
- Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
- Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
实例二:df -hT
2)du 命令:统计目录或文件所占磁盘空间大小
注意:使用 “ls” 命令是可以看到文件的大小的。但是大家会发现,在使用 "ls" 命令査看目录大小时,目录的大小多数是 4KB,这是因为目录下的子目录名和子文件名是保存到父目录的 block(默认大小为 4KB)中的,如果父目录下的子目录和子文件并不多,一个 block 就能放下,那么这个父目录就只占用了一个 block 大小。
[root@centos7 ~]# ll -dh ./abc
drwxr-xr-x 5 root root 144 1月 19 11:45 ./abc
但是我们在统计目录时,不是想看父目录下的子目录名和子文件名到底占用了多少空间,而是想看父目录下的子目录和子文件的总磁盘占用量大小,这时就需要使用 du 命令才能统计目录的真正磁盘占用量大小。
基本格式为:[root@centos7 ~]# du [选项] [目录或文件名]
选项:
- -a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
- -h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
- -s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
实例一:
[root@centos7 ~]# du -ah ./abc
4.0K ./abc/test22/anaconda-ks.cfg
0 ./abc/test22/test_d
4.0K ./abc/test22
4.0K ./abc/file2.cfg
0 ./abc/bb_dir
12K ./abc/aa_dir.tar
4.0K ./abc/aa_dir.tar.gz
4.0K ./abc/aa_dir.tar.bz2
4.0K ./abc/aa_dir.zip
0 ./abc/aa_dir/aa1_dir/a1.txt
0 ./abc/aa_dir/aa1_dir
4.0K ./abc/aa_dir/file3.cfg
4.0K ./abc/aa_dir/aa.txt
8.0K ./abc/aa_dir
40K ./abc
[root@centos7 ~]# du -h ./abc
0 ./abc/test22/test_d
4.0K ./abc/test22
0 ./abc/bb_dir
0 ./abc/aa_dir/aa1_dir
8.0K ./abc/aa_dir
40K ./abc
[root@centos7 ~]# du -sh ./abc
40K ./abc
3)df 命令和du 命令的区别
使用 du 命令和 df 命令去统计分区的使用情况时,得到的数据是不一样的。是因为
df 命令是从文件系统的角度考虑的,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。
du 命令是面向文件的,只会计算文件或目录占用的磁盘空间。
所以,df 命令统计的分区更准确,是真正的空闲空间。
3、给硬盘分区:fdisk命令
在 Linux 中有专门的分区命令 fdisk 和 parted。其中 fdisk 命令较为常用,但不支持大于 2TB 的分区;如果需要支持大于 2TB 的分区,则需要使用 parted 命令,当然 parted 命令也能分配较小的分区。
注意:千万不要在当前的硬盘上尝试使用 fdisk,这会完整删除整个系统,一定要再找一块硬盘,或者使用虚拟机。
1)使用 "fdisk -l" 查看分区信息
查看系统中有多少块磁盘,以及每块磁盘的分区情况
[root@centos7 ~]# fdisk -l
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa366e322
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000cc463
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 41934847 18664448 83 Linux
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
其上半部分态是硬盘的整体状态,包含总大小,扇区,扇区大小等,下半部分是分区的信息,共 7 列,含义如下:
- Device:分区的设备文件名。
- Boot:是否为启动引导分区,在这里 /dev/sda1 为启动引导分区。
- Start:起始柱面,代表分区从哪里开始。
- End:终止柱面,代表分区到哪里结束。
- Blocks:分区的大小,单位是 KB。
- id:分区内文件系统的 ID。在 fdisk 命令中,可以 使用 "i" 查看。
- System:分区内安装的系统是什么。
这里看到 我有三个硬盘, /dev/sdc 没有进行分区。如果硬盘并没有分区,使用 fdisk 命令的目的就是建立分区。后面对 /dev/sdc 建立分区,并进行后面的格式化-挂载。
建立分区命令:fdisk 设备文件名
在 fdisk 交互界面中输入 m 可以得到帮助,帮助里列出了 fdisk 可以识别的交互命令,如下:
| 命令 | 说 明 |
|---|---|
| a | 设置可引导标记 |
| b | 编辑 bsd 磁盘标签 |
| c | 设置 DOS 操作系统兼容标记 |
| d | 删除一个分区 |
| 1 | 显示已知的文件系统类型。82 为 Linux swap 分区,83 为 Linux 分区 |
| m | 显示帮助菜单 |
| n | 新建分区 |
| 0 | 建立空白 DOS 分区表 |
| P | 显示分区列表 |
| q | 不保存退出 |
| s | 新建空白 SUN 磁盘标签 |
| t | 改变一个分区的系统 ID |
| u | 改变显示记录单位 |
| V | 验证分区表 |
| w | 保存退出 |
| X | 附加功能(仅专家) |
4、对硬盘分区进行格式化
分区完成后,如果不格式化写入文件系统,则是不能正常使用的。需要使用 mkfs 或 mke2fs命令对硬盘分区进行格式化。
mkfs 命令为硬盘分区写入文件系统时,无法手动调整分区的默认参数(比如块大小是 4096 Bytes),如果想要调整,就使用 mke2fs 命令重新格式化。如果没有特殊需要,建议使用 mkfs 命令对硬盘分区进行格式化。
1)mkfs 命令
基本格式为:[root@centos7 ~]# mkfs [-t 文件系统格式] 分区设备文件名
选项:-t 文件系统格式:用于指定格式化的文件系统,如 xfs、ext4;
注意:mkfs.xfs 是 mkfs –t xfs的简写,mkfs.ext4 是 mkfs –t ext4的简写
2)mke2fs命令(不建议用)
基本格式为:[root@centos7 ~]# mke2fs [选项] 分区设备文件名
| 选项 | 功能 |
|---|---|
| -t 文件系统 | 指定格式化成哪个文件系统, 如 ext2、ext3、ext4; |
| -b 字节 | 指定 block 的大小; |
| -i 字节 | 指定"字节 inode "的比例,也就是多少字节分配一个 inode; |
| -j | 建立带有 ext3 日志功能的文件系统; |
| -L 卷标名 | 给文件系统设置卷标名,就不使用 e2label 命令设定了; |
5、mount 挂载命令
查看文章:Linux mount挂载命令
6、磁盘知识点
工厂生产的硬盘必须经过低级格式化、分区和高级格式化三个处理步骤后,电脑才能利用它们存储数据。其中磁盘的低级格式化通常由生产厂家完成,目的是划定磁盘可供使用的扇区和磁道并标记有问题的扇区;而用户则需要使用操作系统所提供的磁盘工具如“fdisk、gdisk”等程序进行硬盘“分区”和“格式化”。磁盘两种分区表:MBR和GPT
1)MBR
将分区信息保存到磁盘的第一个扇区(MBR扇区)的64个字节中,每个分区占用16个字节,这16个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)等内容。
特点:
MBR分区主分区数目不能超过4个,很多时候,4个主分区并不能满足需要。
MBR分区方案无法支持超过2TB容量的磁盘。因为这一方案用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。磁盘容量超过2TB以后,分区的起止位置也就无法表示了,BIOS将无法识别分区。(这种分区表逐渐将被淘汰,当然现在很多系统还在用)
2)GPT
GUID Partition Table的缩写,含义“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。
GPT的分区方案之所以比MBR更先进,是因为在GPT分区表头中可自定义分区数量的最大值,也就是说GPT分区表的大小不是固定的。在Windows中,微软设定GPT磁盘最大分区数量为128个。
特点:
支持2TB以上的大硬盘。
每个磁盘的分区个数几乎没有限制。操作系统存在允许的最多分区数的限制,比如win限制128个
四、给硬盘(dev/sdc)分区-格式化-挂载
主要包含这几个步骤:硬盘(这里虚拟硬盘测试 dev/sdc)- 分区 - 格式化 - 挂载 - 访问使用
(1)使用fdisk管理分区(MBR分区表)
创建主分区、一个扩展分区和逻辑分区,其中,扩展分区不能格式化和挂载
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):l
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16
关注
打赏
