Linux运维实战之5:磁盘分区、格式化

在网络系统中,磁盘和文件系统管理是两个非常基本、同时也是非常重要的管理任务,特别是文件系统管理,因为它与用户权限和整个网络系统的安全息息相关。本次博文的主题是关于Linux系统中磁盘分区、格式化及挂载,下次博文我们再详细讨论文件系统管理。


在操作系统中,磁盘管理属于设备管理的范畴。一块硬盘安装到主机之后称为裸设备,若要能够在Linux系统中使用必须对其进行如下步骤:分区=>格式化(创建文件系统)=>挂载我们先来谈谈Linux系统中的设备类型。

一、Linux系统中的设备类型:

Linux沿袭Unix的风格,将所有设备认成是一个文件。

设备文件分为两种: 
1、块设备文件(b):

通常称为“随机设备”。所谓“块设备”是指对其信息的存取以“块”为单位,如通常的光盘、硬盘、软盘、磁带等,块长取51210244096字节。块设备可以直接通过块设备特别文件来访问。为了提高数据的传输效率,块设备驱动程序内部采用块缓冲技术。

2、字符设备文件(c):

通常称为“线性设备”。所谓“字符设备”是指在I/O传输中以字符为单位进行传输的设备,如键盘,打印机等。不过需要注意的是以字符为单位并不一定意味着是以字节为单位,因为有的编码规则规定,一个字符占16bit,合2个字节。

设备文件一般存放在/dev目录下:

/dev/hd[a-t]:IDE设备

/dev/sd[a-z]:SCSI设备

/dev/fd[0-7]:标准软驱

/dev/md[0-31]:软raid设备

/dev/loop[0-7]:本地回环设备

/dev/ram[0-15]:内存

/dev/null:无限数据接收设备 ,相当于回收站

/dev/zero:无限零资源,有点像冒泡机

/dev/tty[0-63]:虚拟终端

/dev/ttyS[0-3]:串口

/dev/lp[0-3]:并口

/dev/console:控制台

/dev/fb[0-31]:framebuffer

/dev/cdrom -> /dev/hdc

/dev/modem -> /dev/ttyS[0-9]

/dev/pilot -> /dev/ttyS[0-9]

/dev/console:控制台

Tips:控制台和虚拟终端的区别与联系:

控制台就好比电视机上的按钮,终端好比遥控板,他们的目的都是控制电视机,但是控制台必须在本地,而终端可以在远端,系统只有一个控制台,叫console,其他的都是终端


二、Linux系统中的磁盘及分区:

1、磁盘基础:

日常生活和工作中,常见的磁盘种类有以下几种:

(1)IDE(ATA)硬盘:

集成磁盘电子接口,Integrated Device Electronics,并行传输数据, 最大的理论传输速率为133MB/s

SATA:全称是Serial Advanced Technology Attachment(串行高级技术附件,一种基于行业标准的串行硬件驱动器接口)就是我们现在经常所说的SATA; 常见的理论传输速率:300MB/s, 600MB/s, 6Gb/s

(2)SCSI硬盘:

Small Computer System Interface, UltraSCSI   标准传输速率为320MB/s   常见转速:10000 RPM, 15000RPM 

SAS:串行版的SCSI硬盘,最大传输速率:6Gbps

(3)SSD硬盘:

Disk固态硬盘(Solid State Disk)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。

(4)USB硬盘:

常见USB接口规范:1.1, 2.0, 3.0

2、Linux系统中的磁盘分区

(1)磁盘分区基础:

  • 首先问大家一个问题:磁盘为什么需要分区?

如果没有分区,我们要在一个磁盘上安装两个以上的操作系统是无法办到的。因此,每一个分区可以当做独立的文件系统来使用以便于安装多个操作系统,这就是磁盘需要分区的原因。

  • Linux中不同类型的硬盘和分区文件名不同:

IDE硬盘和分区文件名:

Linux对连接到IDE接口的硬盘使用/dev/hdxy的方式命名,其中hd表示硬盘为IDE类型,x表示硬盘序号,x的值可以是a、b、c、d。 y为分区号;如第二块IDE硬盘的第二个分区系统中文件名为hdb2

SATA或者SCSI硬盘和分区文件名:

连接到SCSI接口的设备使用ID号进行区别,SCSI设备ID号为0~15,SCSI接口卡本身的ID号是7。Linux对连接到SCSI接口卡的硬盘使用/dev/sdx的方式命名,x的值可以是a、b、c、d等,即ID号为0的SCSI硬盘名为/dev/sda,ID号为1的SCSI硬盘名为/dev/sdb,以此类推。LINUX对SCSI硬盘最多支持15个分区。

Linux运维实战之5:磁盘分区、格式化Linux运维实战之5:磁盘分区、格式化

说明:

a、所有使用USB接口的移动存储设备,不论是移动硬盘、优盘,还是USB光驱,都一律使用/dev/sdxx的设备文件。光驱(光盘)的设备文件一般默认为/dev/cdrom,这个就与光驱的接口无关了。

b、一个硬盘最多可以有4个(主+扩展)分区,其中,扩展分区只能有一个(如图中的/dev/hda2为扩展分区,/dev/hda5为扩展分区中划分的逻辑分区),分区的形式只能有两种: 

P+P+P+P 
P+P+P+E //P表示主分区,E表示扩展分区(扩展分区保存的是磁盘的二级分区表,它指向具体的逻辑分区,这是我个人的理解哈)
因1~4号己被保留,所以第1个逻辑分区的代号由5号开始,以此顺序增加到磁盘号,若未划分/dev/sda3,/dev/sda4分区,则这两个代号是空的被保留下来的代号。 逻辑分区和主分区没有关系,只与MBR的空间有关系

  • MBR(Main/Master Boot Record)知识点:

引导扇区在每个分区里都存在,但我们常说的主引导扇区(也叫主引导记录MBR)是硬盘的第一物理扇区。它位于磁盘的0磁头0柱面1扇区且由两个部分组成:bootloader+硬盘分区表DPT其中bootloader的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。简言之,bootloader就是用来加载内核的

在总共512字节的主引导扇区里其中bootloader446个字节(偏移0–偏移1BDH),DPT64个字节(偏移1BEH–偏移1FDH,每16字节保存一个分区的信息,所以主分区最多只能有4个),最后两个字节“55,AA”(偏移1FEH偏移1FFH)是分区的结束标志,称为“魔数(MagicNumber)”,表示当前分区是否可引导(5A表示可引导)。也就是说MBR=bootloader+DPT+MagicNumber,大致的结构如下图:

blob.png

(2)Linux下的磁盘分区:

命令名称:fdisk 

命令所在路径:/sbin/fdisk

执行权限:root

功能描述:磁盘分区相关操作,最多支持15个分区

语法:fdisk [option] [DEVICE]

常用选项:

    -l:查看当前磁盘分区的详细情况

范例:

[root@Centos ~]# fdisk -l   #查看磁盘的分区情况,不带参数显示的是当前主机上所有的磁盘分区情况
Disk /dev/sda: 107.4 GB, 107374182400 bytes       #当前主机只有一块磁盘,容量107.4GB
255 heads, 63 sectors/track, 13054 cylinders      #此处显示该硬盘的具体参数:共255个磁头,每个磁道63个扇区,共13054个柱面
Units = cylinders of 16065 * 512 = 8225280 bytes      
Sector size (logical/physical): 512 bytes / 512 bytes   #此处显示扇区大小,每个扇区512个字节
I/O size (minimum/optimal): 512 bytes / 512 bytes     #I/O大小,说明读写一个数据最小需要512字节
Disk identifier: 0x00097863

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 *           1          26      204800   83  Linux     #第一个分区,按柱面划分,从第一个柱面开始,到26个柱面结束
Partition 1 does not end on cylinder boundary.  #此处的警告说明该分区没有包含整个柱面(一个柱面一定要属于一个分区,否则就会给出警告)
/dev/sda2 26          91      524288   82  Linux swap / Solaris    #第二个分区,分区类型为“交换分区”
Partition 2 does not end on cylinder boundary.
/dev/sda3 91       13055   104127488   83  Linux      #第三个分区,分区类型为Linux分区

fdisk是交互式命令,其下有许多子命令,说明如下:

[root@Centos ~]# fdisk /dev/sda     #fdisk的参数是设备名称而非分区名
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): m        #交互式命令,提示键入“m”以获取帮助

Command action             #可以看到,fdisk有如下这么多的子命令

a   toggle a bootable flag     #设定可启动标记
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition            #删除一个分区
l   list known partition types    #各分区类型所对应的System ID
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    #修改指定分区的System ID
u   change display/entry units
v verify the partition table
w   write table to disk and exit    #保存退出
x   extra functionality (experts only)

我们重点来看下“l”子命令,用于列出Linux支持的分区所对应的System ID

[root@Centos ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1

Linux运维实战之5:磁盘分区、格式化其中常用的类型为:

82:Linux swap交换分区

83:Linux分区

8e:Linux逻辑卷

fd:Soft Raid

下面我们来进行常规的分区操作哈!

  • 首先来查看下当前主机的分区情况:

[root@Centos ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p 

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x00097863

 Device Boot      Start         End      Blocks   Id  System
/dev/sda1 *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 91       13055   104127488   83  Linux   #这里可以看到该主机上已经没有尚未划分的磁盘空间

既然没有多余的磁盘空间来创建分区,那我们先来删除其中一个分区:

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x00097863

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1 *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 91       13055   104127488   83  Linux

Command (m for help): d    #删除一个分区
Partition number (1-4): 4  #根据前面的内容,主分区+扩展分区的数目只能是4个
Warning: partition 4 has empty type #显示第4个分区不存在哈
Command (m for help): d
Partition number (1-4): 3   #删除第3个分区
Command (m for help): p   #验证结果,可以看到sda3分区被删除了

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x00097863

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1 *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.

创建扩展分区:

[root@Centos ~]# fdisk /dev/sda

Command (m for help): n  #创建一个新分区
Command action

 e   extended       #键入e键创建扩展分区
 p   primary partition (1-4)  #键入p键创建主分区

e     #我们要创建扩展分区哈

Partition number (1-4):3     #分区号我们就选3哈

First cylinder (91-13054, default 91):  #选择起始柱面,默认是91

Using default value 91

Last cylinder, +cylinders or +size{K,M,G} (91-13054, default 13054): +10G    #选择结束柱面,这里可以用+K,+M,+G的方法输入

Command (m for help): p    #验证结果

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x00097863

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 91        1396    10483258    5  Extended    #可以看到创建了扩展分区哈

创建逻辑分区:(扩展分区创建好了之后不能拿来直接使用哈,要想使用还需要创建逻辑分区)

Command (m for help): n

Command action

 l   logical (5 or over)   #键入“l”创建逻辑分区(提示分区号从5开始哈)
 p   primary partition (1-4)
 
l

First cylinder (91-1396, default 91):
Using default value 91
Last cylinder, +cylinders or +size{K,M,G} (91-1396, default 1396): +200G

Value out of range.    #提示超出范围了哈

Last cylinder, +cylinders or +size{K,M,G} (91-1396, default 1396): +5G  

Command (m for help): p

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x00097863

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 91        1396    10483258    5  Extended 
/dev/sda5 91         744     5246036+  83  Linux    #创建了逻辑分区哈,可以看到分区号是sda5

重要说明

(1)分区创建好了之后,用fdisk -l命令可以查看分区情况,但需要注意的是:虽然fidsk命令列出了所有的分区情况,不代表新分区就可以被操作系统识别了,文件系统是内核的功能(即软件能识别新分区但内核并不能识别),可以用"cat /proc/partitions"命令查看,若要内核能识别需要把分区变化情况同步到内核。

(2)要特别注意:分区及格式化操作会永久地破坏目前存在于该分区上的任何数据,操作时需要特别小心(操作前对原有数据做备份)!

  • 查看内核识别的分区信息:

[root@Centos dev]# fdisk -l         #查看当前系统所有的磁盘分区情况

Disk /dev/sdb: 10.7 GB, 10737418240 bytes     
255 heads, 63 sectors/track, 1305 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: 0x0aeb57a8

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux     #sdb硬盘只有一个分区哈

Disk /dev/sda: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x00097863

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26          91      524288   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3              91       13055   104127488   83  Linux   
[root@Centos dev]# cat /proc/partitions   #查看内核识别的分区信息 
major minor  #blocks  name         #所有的分区都能被内核识别哈,只有这样才能格式化分区操作哈;如果不能被内核识别,则我们可以让内核重新读取DPT

   8       16   10485760 sdb
   8       17    2104483 sdb1
   8        0  104857600 sda
   8        1     204800 sda1
   8        2     524288 sda2
   8        3  104127488 sda3

让内核重新读取硬盘分区表:

RHEL5:partprobe  [DEVICE]

说明:RHEL5上该命令的执行能够成功,但RHEL6上可能不行,需要重新启动系统

[root@Centos ~]# partprobe /dev/sda      #提示需要重启系统所有分区才能被内核识别(其实windows系统也是这样的,分区完之后会提示用户重启系统以便内核读取)
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).
As a result, it may not reflect all of your changes until after reboot.

 RHEL6:partx -a [PARTITION] DEVICE

[root@Centos ~]# partx -a /dev/sdb   #不带分区选项表示读取指定硬盘的所有分区
BLKPG: Device or resource busy       #显示设备繁忙无法添加分区哈
error adding partition 1

我们手动添加来试试哈!

[root@Centos dev]# partx -a sdb1 /dev/sdb   #手动添加成功了哈
[root@Centos dev]#

三、Linux系统中文件系统的创建(磁盘格式化):

Tips:只有内核能够识别硬盘分区信息之后,我们才能够对硬盘格式化,格式化的过程也就是创建文件系统的过程,文件系统通常由内核提供

1、Linux系统所支持的文件系统类型:

以管理员身份登录,查看"/lib/modules/2.6.32-358.el6.x86_64/kernel/fs/ ”目录

[root@Centos ~]# ls /lib/modules/2.6.32-358.el6.x86_64/kernel/fs/
autofs4  cachefiles  configfs  dlm       exportfs  ext3  fat      fuse  jbd   jffs2  mbcache.ko  nfs_common  nls       ubifs  xfs
btrfs    cifs        cramfs    ecryptfs  ext2      ext4  fscache  gfs2  jbd2  lockd  nfs         nfsd        squashfs  udf

可以看到Linux支持这么多的文件系统哈,下面我们对常用的文件系统类型做一个简单介绍。

(1)minix 
   是Minix操作系统使用的文件系统,是Linux最先使用的文件系统。它有许多缺点:分区只能小于64MB,只支持短文件名,单一的时间戳,等等。在软盘和动态磁盘领域仍然有用。

(2)ext 
   是对Minix的扩展。已完全被ext2取代,内核最终将不会支持它。

(3)ext2 
   是Linux使用的,性能很好的文件系统,用于固定文件系统和可活动文件系统。它是作为ext文件系统的扩展而设计的。ext2在Linux所支持的文件系统中,提供最好的性能(在速度和CPU使用方面),简短的说,ext2是Linux的主要文件系统。

(4)ext3 
   是对ext2增加日志功能后的扩展。是RHEL5中默认使用的文件系统类型。它向前、向后兼容ext2,意为ext2不用丢失数据和格式化就可以转换为ext3,ext3也可以转换为ext2 而不用丢失数据(只要重新安装该分区就行了),强烈推荐使用这种文件系统。

(5)ext4

   为第4代扩展文件系统,是RHEL6中默认使用的文件系统类型,属于典型的日志型文件系统。其特点是保持有磁盘存取记录的日志数据,便于恢复,性能和稳定性更加出色。

(6)ReiserFS/JFS

   仍然在完善的带日志文件系统,特别适合小文件的文件系统

(7)ISO9660文件系统

   该文件系统中光盘所使用的标准文件系统,Linux对该文件系统也有很好的支持,不仅能读取光盘和光盘ISO映像文件,而且还支持在Linux环境中刻录光盘。

(8)NFS文件系统 
   NFS即网络文件系统,用于在UNIX系统间通过网络进行文件共享,用户可将网络中NFS服务器提供的共享目录挂载到本地的文件目录中,从而实现操作和访问NFS文件系统中的内容。

(9)swap文件系统

   swap文件系统用于Linux的交换分区。在Linux中,使用整个交换分区来提供虚拟内存,其分区大小一般应是系统物理内存的2倍,在安装Linux操作系统时,就应创建交换分区, 它是Linux正常运行所必需的,其类型必须是swap,交换分区由操作系统自行管理。

 

2、创建文件系统(格式化分区):

blob.png

 配置文件/etc/mke2fs.conf可以定义文件系统类型,下面进行简单说明:

[root@Centos ~]# cat /etc/mke2fs.conf 
[defaults]    #默认选项
        base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr    #默认创建的文件系统是ext2;
       #若 base_features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize  则默认创建ext4文件系统
        blocksize = 4096     #默认块大小,对于大文件块越小越好
        inode_size = 256
       inode_ratio = 16384
[fs_types]
        ext3 = {
                features = has_journal
        }
        ext4 = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
                inode_size = 256
        }
        ext4dev = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
                inode_size = 256
                options = test_fs=1
        }
        small = {
                blocksize = 1024
                inode_size = 128
                inode_ratio = 4096
        }

举例说明:

[root@Centos dev]# mkfs -t ext3 /dev/sdb1   #用ext3文件系统格式化sdb1分区
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)          #块大小为4096B
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe  style="color: #800080">0 blocks
131648 inodes, 526120 blocks
26306 blocks (5.00%) reserved for the super user    #默认分区的5%的空间预留给管理使用的块
First data block=0
Maximum filesystem blocks=541065216
17 block groups
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@Centos dev]# mke2fs -b 2048 /dev/sdb1    #调整分区sdb1的块大小为2048B
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=2048 (log=1)            #可以看到块大小变成了2048B了哈
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe  style="color: #800080">0 blocks
131560 inodes, 1052240 blocks
52612 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=538968064
65 block groups
16384 blocks per group, 16384 fragments per group
2024 inodes per group
Superblock backups stored on blocks: 
        16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

3、查看/调整文件系统参数:
blob.png

举例说明:

[root@Centos dev]# tune2fs -l /dev/sdb1     #查看sdb1分区的超级块信息
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          8f9d5e47-c3e2-441f-b29f-e0a9dd508632         #UUID
Filesystem magic number:  0xEF53                        #文件系统魔数
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              131560
Block count:              1052240            #总共块的数目
Reserved block count:     52612
Free blocks:              1031020
Free inodes:              131549
First block:              0
Block size:               2048              #块大小
Fragment size:            2048
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2024
Inode blocks per group:   253
Filesystem created:       Wed Feb 26 14:13:10 2014          #文件系统创建日期
Last mount time:          n/a
Last write time:          Wed Feb 26 14:13:10 2014
Mount count:              0
Maximum mount count:      20
Last checked:             Wed Feb 26 14:13:10 2014
Check interval:           15552000 (6 months)
Next check after:         Mon Aug 25 14:13:10 2014
Reserved blocks uid:      0 (user root)     #预留空间所给的用户是管理员
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256              
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   half_md4
Directory Hash Seed:      7b570d3a-1fe3-4d12-a9c3-3a5811e8cbe4

设定卷标/查看卷标、UUID和文件系统类型:

[root@Centos ~]# e2label /dev/sdb1 MYDATA   #设定sdb1的卷标为MYDATA
[root@Centos ~]# blkid /dev/sdb1     #UUID、文件系统类型和卷标
/dev/sdb1: UUID="284c3316-e0f8-4a87-8d49-72ab1c9964ae" TYPE="ext4" LABEL="MYDATA"

文件系统创建完之后,我们还需要挂载分区才能够正常使用新创建好的分区。
下次博文我们具体来讨论下挂载/卸载(参见:http://www.178linux.com/62484)

原创文章,作者:N4_jjx,如若转载,请注明出处:http://www.178linux.com/60811

(0)
N4_jjxN4_jjx
上一篇 2016-11-26 21:02
下一篇 2016-11-26

相关推荐

  • shell脚本小练习..

    刚刚接触vim和shell脚本,用几个小脚本练练手。 1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 2、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中。 3、编写脚本…

    2017-04-13
  • n28 第二周作业

    n28 第二周作业

    Linux干货 2017-12-09
  • Linux哲学思想

    一、一切皆文件     1、将所有资源都抽象成文件形式;     2、几乎可以通过读写文件的形式,操作所有的系统资源。 二、由一个一个的小程序组成,且每一个小程序只做一件事情,并且只做好该件事情即可     1、一个小程序只做好一件事情,即…

    Linux干货 2016-09-19
  • find命令使用练习

    1、  查找/var目录下属主为root,且属组为mail的所有文件   2、  查找/var目录下不属于root、lp、gdm的所有文件   3、  查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件   4、  查找当前系统上没有属主或属组,且最…

    Linux干货 2016-08-15
  • 第七周学习总结–系统启动流程

    写在前面 作为一个理工科的你,我相信你一定给自己或者给别人装过windows操作系统,作为windows操作系统都图形化了,因此我们可能很难去了解中间都发生了什么。比如使用U盘安装的时候,网上一大堆某某某U盘制作系统工具,按照网上的教程,制作完成以后,就可以在要装系统的电脑上点击电源键狂按F12(不同的电脑可能不同)进入BIOS设置了,然后就等着使用了。作为…

    2018-01-14
  • linux 必须掌握的60个命令

    Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统, 就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200…

    2017-09-05

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-30 23:45

    知识点总结的非常不错,在磁盘管理那部分结合知识和实战总结的非常到位,值得大家学习。