内存中的多寡在保存的时候,内存中的数据在保存的时候

磁盘,提供持久的多少存储,它不像大家的内存,尽管突然断电了,在内存中的数据貌似都会被放弃了,内存中的数据在保留的时候,会被写到硬盘里面,磁盘也是一种I/O设备。

【linux相识相知】磁盘分区及文件系统管理详解,linux相识相知

磁盘,提供持久的数量存储,它不像我们的内存,若是突然断电了,在内存中的数据一般都会被废弃了,内存中的数据在保存的时候,会被写到硬盘里面,磁盘也是一种I/O设备。

咱俩都驾驭磁盘分区落成以后,还要实行格式化,那些格式化操作就是指定文件系统,文件系统的本色就是对一个存储设备上的元数据和数据就行协会,末了把数量有团体的放在可以长时间积存的装置中。

此次博客紧若是介绍可linux中的磁盘分区和文件系统管理。

 

咱俩都知道磁盘分区已毕将来,还要举办格式化,那么些格式化操作就是指定文件系统,文件系统的原形就是对一个存储设备上的元数据和数目就行协会,最后把数量有团体的放在可以一劳永逸积存的装备中。

磁盘的接口类型:

IDE:一种较老的接口技术,价格低廉,包容性强,传输速度可达133MB/s;

SCSI:主要使用于中、高端服务器中,支持热拔插,价格较高,其中UltraSCSI可达320MB/S,UltraSCSI640可达640MB/S;

SCSI接口

SATA:首要用来PC上,串口硬盘,可达6gbps;

SAS:是一种串行链接的SCSI接口技术,向下包容SATA,速度快;

USB:一种便携的存储设备,USB3.0理论最大传输速度可达500MB/s,现在流行的USB3.1Gen
2最高可达10Gbps。

 

并口和串口的分别:

并口:同一线缆可以接多块设备,IDE和SCSI为并口硬盘;

串口:同一线缆只能接一个设备,SATA、SAS和USB为串口,抗苦恼能力强。

咱俩都明白作为linux的艺术学思想之一,一切皆文件,在linux中应用设备文件来标识分歧的硬盘,也就是设备的拜会接口,在Linux中I/O设备分为2倍,字符设备和块设备,基于不一致的效益进行分拣的:

(1)字符设备:线性访问的,数据的置换单位是“字符”,提供的连天的数据流,不协理随机存取,举例来说,键盘、调制解调器都是超人的字符设备;

(2)块设备:可以提供随机走访,数据调换的单位是“块”,硬盘、CD-ROM驱动器都是名列三甲的块设备,应用可以寻址磁盘上的任何职分,并读取数据。

 图片 1

在Linux系统中,c代表字符设备,b为块设备(灰色部分标识)。

末尾红色标注的两表现设备号:

主设备号:左列,区分设备项目,用于标明设备所要求的驱动程序;

次设备号:右列,区分同系列型下的例外的设施。

 

 mknod命令

 mknod可以成立设备文件,格式如下:

mknod  [OPTION]...  NAME  TYPE  [MAJOR  MINOR]
选项:
-m MODE:创建后的设备文件的访问权限

mknod /dev/ttyUSB32 c 188 32

 linux的设备文件都是位于/dev目录下的,应用程序可以通过这个设备文件完天津装备的读写等操作。以前写过设备都有先后设备号,linux有约定俗成的编号,如硬盘的主设备号在centos6和7中为8:

 依据接口类型的不比,设备的公文名命令也有一对确定,在centos如下:

 图片 2

在引用设备的时候能够透过以下三种格局:

1.设施文件名,也就是/dev目录下的文本名;

2.序列卷标(volume label);

3.UUID,唯一表示码,能够唯一的象征一个设施。

 

此次博客首若是介绍可linux中的磁盘分区和文件系统管理。

MBR和GPT

一块磁盘是足以被剪切成三个分区,从Windows的角度来看,就是C,D,E分区。磁盘分区的章程有MBR和GPT。

 

 MBR(Master Boot Record)

共计大小为512字节,存在于磁盘的第0个扇区。

446bytes:率领启动操作系统的次序;

64bytes:分区表,每16bytes标识一个分区,一共可以有4个主分区,不过假若想划分更加多的区,可以指定增加分区,比如分为3个主分区,一个扩充分区,而扩张分区可以划分为多少个逻辑分区。

 图片 3

 综上所述,假使选择MBR分区,就非得至少有一个恢弘分区,然后将伸张分区分成逻辑分区,逻辑分区的序号从5发端。

 

 GPT(GUID Partition Table):

MBR是另一种分区形式:

1):GPT分区表中最多可以帮衬128个主分区

2):突破了MBR单个分区只好是2.2T的限定,最大支撑1EB容量

在GPT中主分区、伸张分区和混淆分区的定义就淡化了众多。

 

 

 

分区工具

 fidisk

 1.翻看磁盘分区

fdisk -l device...:查看指定磁盘设备的分区情况

 图片 4

 2.管理分区

 fdisk为MBR方式的分区工具,提供了交互式的接口来治本分区所有的操作,都是在内存中成就的,当使用w保存的时候,才真正去创设或改动分区。

fdisk device

 大家来试试,能够见见使用fdisk加设备名,就进去到了一个交互式的界面,输入m即可得到赞助:

[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x3918c6ef 创建新的 DOS 磁盘标签。
命令(输入 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)

 举个例子:现在新加了一块120G的磁盘,分为3个主分区,每个区20G,余下的空中都给伸张分区并累加一个20G的逻辑分区。

[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x3918c6ef 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-251658239,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-251658239,默认为 251658239):+20G
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (41945088-251658239,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-251658239,默认为 251658239):+20G
分区 2 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (83888128-251658239,默认为 83888128):
将使用默认值 83888128
Last 扇区, +扇区 or +size{K,M,G} (83888128-251658239,默认为 251658239):+20G
分区 3 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e
已选择分区 4
起始 扇区 (125831168-251658239,默认为 125831168):
将使用默认值 125831168
Last 扇区, +扇区 or +size{K,M,G} (125831168-251658239,默认为 251658239):
将使用默认值 251658239
分区 4 已设置为 Extended 类型,大小设为 60 GiB
命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (125833216-251658239,默认为 125833216):
将使用默认值 125833216
Last 扇区, +扇区 or +size{K,M,G} (125833216-251658239,默认为 251658239):+20G
分区 5 已设置为 Linux 类型,大小设为 20 GiB

 查看分区景况:

[[email protected] ~]# fdisk -l /dev/sdb 
磁盘 /dev/sdb:128.8 GB, 128849018880 字节,251658240 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3918c6ef
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   83  Linux
/dev/sdb2        41945088    83888127    20971520   83  Linux
/dev/sdb3        83888128   125831167    20971520   83  Linux
/dev/sdb4       125831168   251658239    62913536    5  Extended
/dev/sdb5       125833216   167776255    20971520   83  Linux

 

 parted

 那几个工具既可以做MBR的分区,又有啥不可做GPT的分区,主要时候用来做GPT的。

 1.查看分区景况:

parted -l device   (亲测:竟然也可以使用fdisk -l指定设备查看)

 2.管理分区

 parted也提供了交互式的接口来保管分区,输入help查看协理,大家来看一下:

[[email protected] ~]# parted
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found
        partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted)                                  

(看起来比fdisk麻烦多了) 大家来举个例证来表明parted的使用形式:
1)首先选取要分区的设施,使用select Device

(parted) select /dev/sdc
使用 /dev/sdc

 2)接纳分区格式为GPT

 mklabel gpt

 上边是命令的运用扶助

(parted) help mklabel 
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
    “标签类型”是以下任意一项:aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop

 3)使用mkpart分区时,不需求指定分区的数字标识(在MBR中可能要指定1-4或愈多),可以一直给它助长名称,那阐明在GPT分区的情景下,主分区增加分区已经变得不那么重大了,分区的伊始点最好从1始发

(parted) mkpart 
分区名称?  []? my_data1                                                  
文件系统类型?  [ext2]?     #文件系统先不用管,后面会讲到                                               
起始点? 1        #                                                        
结束点? 2048     #默认为M

 4)那样一个分区就创立好了,可以应用print查看

(parted) print                                                            
Model: ATA VMware Virtual I (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name      标志
 1      1049kB  2048MB  2047MB               my_data1

 5)让大家再来新建一个分区,新建分区的开首点就是上一个分区的截至点

(parted) mkpart                                                           
分区名称?  []? my_data2
文件系统类型?  [ext2]?                                                   
起始点? 2048
结束点? 4096                                                             
(parted)                                                                  
(parted) print                                                            
Model: ATA VMware Virtual I (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name      标志
 1      1049kB  2048MB  2047MB               my_data1
 2      2048MB  4096MB  2048MB               my_data2

 6)作为linux的艺术学思想之一,防止与用户交互,我们也足以应用以下办法来创建新的分区

(parted) mkpart my_data3 4096 6144                                        
(parted)                                                                  
(parted) print                                                            
Model: ATA VMware Virtual I (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name      标志
 1      1049kB  2048MB  2047MB               my_data1
 2      2048MB  4096MB  2048MB               my_data2
 3      4096MB  6144MB  2048MB               my_data3

 7)parted使用quit退出即生效

(parted) quit                                                             
信息: You may need to update /etc/fstab.
[[email protected] ~]#       

如上就是2种比较常用的分区工具了
更加要留意的是,在早就分区并且已经挂载在根文件系统的目录上的配备,再在那么些装置上开立异的分区(比如在扩充分区上创办逻辑分区),内核可能在创制已毕后不可能间接识别。
可以查阅/proc/partitions,确认内核是或不是业已辨认:

[[email protected] ~]# cat /proc/partitions 
major minor  #blocks  name
   8       16  125829120 sdb
   8       17   20971520 sdb1
   8       18   20971520 sdb2
   8       19   20971520 sdb3
   8       20          1 sdb4
   8       21   20971520 sdb5
   8       32   52428800 sdc
   8       33    1998848 sdc1
   8       34    1999872 sdc2
   8       35    1999872 sdc3
   8        0   20971520 sda
   8        1     512000 sda1
   8        2   20458496 sda2
  11        0    4277248 sr0
 253        0   16261120 dm-0
 253        1    2097152 dm-1
 253        2    2097152 dm-2

 倘使没有辨别可以利用以下二种格局通报内核强制重读磁盘分区表:

partx -a device
kpartx -af device

 如若命令四遍不可以学有所成,请多试五回。

 

磁盘的接口类型:

IDE:一种较老的接口技术,价格低廉,包容性强,传输速度可达133MB/s;

SCSI:首要利用于中、高端服务器中,协理热拔插,价格较高,其中UltraSCSI可达320MB/S,UltraSCSI640可达640MB/S;

图片 5

SCSI接口

SATA:主要用于PC上,串口硬盘,可达6gbps;

SAS:是一种串行链接的SCSI接口技术,向下包容SATA,速度快;

USB:一种便携的存储设备,USB3.0理论最大传输速度可达500MB/s,现在新星的USB3.1Gen
2最高可达10Gbps。

 

并口和串口的区分:

并口:同一线缆可以接多块设备,IDE和SCSI为并口硬盘;

串口:同一线缆只能接一个设施,SATA、SAS和USB为串口,抗烦扰能力强。

咱俩都明白作为linux的医学思想之一,一切皆文件,在linux中动用设备文件来标识差别的硬盘,也就是设备的拜访接口,在Linux中I/O设备分为2倍,字符设备和块设备,基于差别的成效拓展分类的:

(1)字符设备:线性访问的,数据的置换单位是“字符”,提供的总是的数据流,不扶助随机存取,举例来说,键盘、调制解调器都是卓绝的字符设备;

(2)块设备:可以提供随机访问,数据调换的单位是“块”,硬盘、CD-ROM驱动器都是第一级的块设备,应用可以寻址磁盘上的其他任务,并读取数据。

 图片 6

在Linux系统中,c代表字符设备,b为块设备(黑色部分标识)。

后边黑色标注的两作为设备号:

主设备号:左列,区分设备项目,用于标明设备所急需的驱动程序;

次设备号:右列,区分同体系型下的例外的设施。

 

 mknod命令

 mknod可以成立设备文件,格式如下:

mknod  [OPTION]...  NAME  TYPE  [MAJOR  MINOR]
选项:
-m MODE:创建后的设备文件的访问权限

mknod /dev/ttyUSB32 c 188 32

 linux的设备文件都是坐落/dev目录下的,应用程序可以经过这个装备文件完路易港配备的读写等操作。从前写过设备都有程序设备号,linux有约定俗成的号子,如硬盘的主设备号在centos6和7中为8:

 按照接口类型的不等,设备的文件名命令也有一些确定,在centos如下:

 图片 7

在引用设备的时候可以由此以下二种方法:

1.装备文件名,也就是/dev目录下的公文名;

2.种类卷标(volume label);

3.UUID,唯一表示码,可以唯一的代表一个设施。

 

文件系统的表征

磁盘分区完结将来,还要开展格式化,那几个格式化操作就是指定文件系统,文件系统的实质就是对一个存储设备上的元数据和数目就行社团,最后把数据有集体的位于可以长时间积存的配备中。

观念的布道是一个分区只好格式化成一种文件系统,然而由于新技巧的发生,LVM或者RAID,一个分区可以被格式化成八个文件系统,也得以将多个分区格式格式化成一个文件系统。

数码一般分为实际的多寡(实际的多寡,一首mp4)和元数据(文件的特性和权力等),它们在文件系统中存放的职位是见仁见智的。实际的数目是储存在data
block中,元数据则是储存在innode中,除此之外还有一个superblock。

superblock:记录了文件系统的一体化新闻,包含innode/block的总量、使用量和剩余量和文件系统的格式等

inode:记录文件的属性,一个文本占一个inode,同时也记录了文本所在的block号

block:实际记录文件的内容,若文件大小大于block,则占据多个block块

 

 下边就来讲一下inode和block之间的关系:

 1.索引式文件系统

 若一个文本的inode号是4,此中存放了其block的义务:2,7,13,15,那么操作系统读取数据的时候,就可以按照inode中block的地点三回性将数据读取出来。

 图片 8

2.链式文件系统

 和索引式文件系统差其余是莲式读取文件措施,常见于U盘的FAT格式,那种文件系统没有inode的留存,每个block的号码都记录在前一个block中。

 图片 9

 3.磁盘重组

 磁盘重组的指标就是将写在磁盘中离散的block重新组织一下,将同一个文本的block块集合在一块,以便于数据的读取。导致数据离散的因由,一般是由于文件系统使用的小运过长,卓殊频仍的数目标操作,比如删除、扩展和修改的次数过多。

 

MBR和GPT

一块磁盘是可以被划分成七个分区,从Windows的角度来看,就是C,D,E分区。磁盘分区的主意有MBR和GPT。

 

 MBR(Master Boot
Record)

一共大小为512字节,存在于磁盘的第0个扇区。

446bytes:率领启动操作系统的主次;

64bytes:分区表,每16bytes标识一个分区,一共可以有4个主分区,不过一旦想划分越多的区,能够指定伸张分区,比如分为3个主分区,一个扩展分区,而扩展分区可以分开为多少个逻辑分区。

 图片 10

 综上所述,倘诺选拔MBR分区,就必须至少有一个增加分区,然后将扩张分区分成逻辑分区,逻辑分区的序号从5起先。

 

 GPT(GUID Partition Table):

MBR是另一种分区格局:

1):GPT分区表中最多能够扶助128个主分区

2):突破了MBR单个分区只好是2.2T的限制,最大支撑1EB容量

在GPT中主分区、伸张分区和混淆分区的定义就淡化了过多。

 

 

 文件系统的档次

Linux的文件系统: ext2(无日志功能), ext3, ext4, xfs, reiserfs, btrfs
光盘:iso9660
网络文件系统:nfs, cifs
集群文件系统:gfs2, ocfs2
内核级分布式文件系统:ceph
windows的文件系统:vfat, ntfs
伪文件系统:proc, sysfs, tmpfs, hugepagefs
Unix的文件系统:UFS, FFS, JFS
交换文件系统:swap
用户空间的分布式文件系统:mogilefs, moosefs, glusterfs

 

分区工具

 fidisk

 1.查看磁盘分区

fdisk -l device...:查看指定磁盘设备的分区情况

 图片 11

 2.管理分区

 fdisk为MBR格局的分区工具,提供了交互式的接口来保管分区所有的操作,都是在内存中形成的,当使用w保存的时候,才真的去成立或修改分区。

fdisk device

 大家来尝试,可以看来选择fdisk加设备名,就进入到了一个交互式的界面,输入m即可得到赞助:

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x3918c6ef 创建新的 DOS 磁盘标签。
命令(输入 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)

 举个例子:现在新加了一块120G的磁盘,分为3个主分区,每个区20G,余下的半空中都给增加分区并加上一个20G的逻辑分区。

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x3918c6ef 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-251658239,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-251658239,默认为 251658239):+20G
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (41945088-251658239,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-251658239,默认为 251658239):+20G
分区 2 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (83888128-251658239,默认为 83888128):
将使用默认值 83888128
Last 扇区, +扇区 or +size{K,M,G} (83888128-251658239,默认为 251658239):+20G
分区 3 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e
已选择分区 4
起始 扇区 (125831168-251658239,默认为 125831168):
将使用默认值 125831168
Last 扇区, +扇区 or +size{K,M,G} (125831168-251658239,默认为 251658239):
将使用默认值 251658239
分区 4 已设置为 Extended 类型,大小设为 60 GiB
命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (125833216-251658239,默认为 125833216):
将使用默认值 125833216
Last 扇区, +扇区 or +size{K,M,G} (125833216-251658239,默认为 251658239):+20G
分区 5 已设置为 Linux 类型,大小设为 20 GiB

 查看分区情形:

[root@localhost ~]# fdisk -l /dev/sdb 
磁盘 /dev/sdb:128.8 GB, 128849018880 字节,251658240 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3918c6ef
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   83  Linux
/dev/sdb2        41945088    83888127    20971520   83  Linux
/dev/sdb3        83888128   125831167    20971520   83  Linux
/dev/sdb4       125831168   251658239    62913536    5  Extended
/dev/sdb5       125833216   167776255    20971520   83  Linux

 

 parted

 这么些工具既可以做MBR的分区,又足以做GPT的分区,主要时候用来做GPT的。

 1.查看分区情况:

parted -l device   (亲测:竟然也可以使用fdisk -l指定设备查看)

 2.管理分区

 parted也提供了交互式的接口来管理分区,输入help查看辅助,大家来看一下:

[root@localhost ~]# parted
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found
        partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted)                                  

(看起来比fdisk麻烦多了)

咱俩来举个例证来表明parted的使用办法:

1)首先选取要分区的设备,使用select Device

(parted) select /dev/sdc
使用 /dev/sdc

 2)拔取分区格式为GPT

 mklabel gpt

 上边是命令的行使支持

(parted) help mklabel 
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
    “标签类型”是以下任意一项:aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop

 3)使用mkpart分区时,不需求指定分区的数字标识(在MBR中恐怕要指定1-4或越来越多),可以直接给它充裕名称,那表明在GPT分区的意况下,主分区伸张分区已经变得不那么首要了,分区的初叶点最好从1发轫

(parted) mkpart 
分区名称?  []? my_data1                                                  
文件系统类型?  [ext2]?     #文件系统先不用管,后面会讲到                                               
起始点? 1        #                                                        
结束点? 2048     #默认为M

 4)那样一个分区就创办好了,可以选择print查看

(parted) print                                                            
Model: ATA VMware Virtual I (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name      标志
 1      1049kB  2048MB  2047MB               my_data1

 5)让我们再来新建一个分区,新建分区的起首点就是上一个分区的为止点

(parted) mkpart                                                           
分区名称?  []? my_data2
文件系统类型?  [ext2]?                                                   
起始点? 2048
结束点? 4096                                                             
(parted)                                                                  
(parted) print                                                            
Model: ATA VMware Virtual I (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name      标志
 1      1049kB  2048MB  2047MB               my_data1
 2      2048MB  4096MB  2048MB               my_data2

 6)作为linux的农学思想之一,避免与用户交互,我们也可以利用以下措施来创设新的分区

(parted) mkpart my_data3 4096 6144                                        
(parted)                                                                  
(parted) print                                                            
Model: ATA VMware Virtual I (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name      标志
 1      1049kB  2048MB  2047MB               my_data1
 2      2048MB  4096MB  2048MB               my_data2
 3      4096MB  6144MB  2048MB               my_data3

 7)parted使用quit退出即生效

(parted) quit                                                             
信息: You may need to update /etc/fstab.
[root@localhost ~]#       

上述就是2种相比较常用的分区工具了

专程要留心的是,在已经分区并且已经挂载在根文件系统的目录上的设备,再在那几个装置上创立新的分区(比如在壮大分区上创立逻辑分区),内核可能在成立已毕后不能直接识别。

可以查阅/proc/partitions,确认内核是还是不是早已辨认:

[root@localhost ~]# cat /proc/partitions 
major minor  #blocks  name
   8       16  125829120 sdb
   8       17   20971520 sdb1
   8       18   20971520 sdb2
   8       19   20971520 sdb3
   8       20          1 sdb4
   8       21   20971520 sdb5
   8       32   52428800 sdc
   8       33    1998848 sdc1
   8       34    1999872 sdc2
   8       35    1999872 sdc3
   8        0   20971520 sda
   8        1     512000 sda1
   8        2   20458496 sda2
  11        0    4277248 sr0
 253        0   16261120 dm-0
 253        1    2097152 dm-1
 253        2    2097152 dm-2

 若是没有辨别可以动用以下二种艺术公告内核强制重读磁盘分区表:

partx -a device
kpartx -af device

 假如命令一次无法得逞,请多试三次。

 

 linux下的EXT2文件系统

EXT2是一种比较旧的文件系统了,从Centos7方始文件系统已经伊始使用了XFS,然而那种使用inode为底蕴的文件系统依然要询问的,毕竟后边也油不过生了它的晋级版本,EXT3和EXT4。

前边说过inode记录是文本的权位和质量,inode和block在文件系统创造好将来就曾经分好了的,不过大家想一想,如果一个硬盘有500G甚至更大,inode和block都坐落一起就会突显不是很有理,数量过大,不简单去管理。所有在EXT2文件系统中在格式化的时候将文件系统分为七个区块,称为block
group,每个block group都有和好的block/inode/superblock。

上边大家就来看看一个block group的光景样子:

 图片 12

在文件系统的最前方有一个Boot
Sector,可以安装开机管理程序,那样大家就能将分歧的开机管理程序安装在分其他文件系统以前,而不用覆盖全体磁盘的MBR,那样就能做出多重开机的条件。

 

 block group的内容:

date
block:用来放置文件内容的地点,大小相似为1k、2k、4k,block的尺寸在格式化之后就不可能再变动了,每个block就能存放一个文本的数目。

inode
table:记录了文件的权能,文件的轻重缓急,时间戳,flag或者该公文的的确指向

superblock:block和inode的数目信息,文件系统的年月戳,一个一蹴而就比特,该值为0代表已经被挂载,该值为1则没有被挂载

Filesystem Description:文件系统描述表明,描述了各样block
group的发端和截至的block号码,已经证实了superblock\bitmap\inodemap\data
block分别在哪些一个block号码之间。

block
bitmap:block位图,记录block的使用状态,标明了何等block是空的,大家在剔除的文书的时候,会发现高速,删除文件操作实际就是改变了该公文占用的bitmap的职位为空,block的文件暂时没有去除,这就是我们的数据足以被找回的缘由

inode bitmap:inode位图,与block
bitmap的作用看似,记录的是运用与未使用的inode号码。

 

文件系统的性状

磁盘分区落成之后,还要开展格式化,那个格式化操作就是点名文件系统,文件系统的面目就是对一个存储设备上的元数据和数码就行协会,最终把数据有集体的位于可以一劳永逸积存的设施中。

历史观的说教是一个分区只能够格式化成一种文件系统,但是由于新技巧的爆发,LVM或者RAID,一个分区可以被格式化成多少个文件系统,也得以将七个分区格式格式化成一个文件系统。

数据一般分为实际的多寡(实际的多寡,一首mp5)和元数据(文件的属性和权杖等),它们在文件系统中存放的岗位是不一致的。实际的数目是储存在data
block中,元数据则是储存在innode中,除此之外还有一个superblock。

superblock:记录了文件系统的一体化音讯,包蕴innode/block的总量、使用量和剩余量和文件系统的格式等

inode:记录文件的品质,一个文书占一个inode,同时也记录了文本所在的block号

block:实际记录文件的始末,若文件大小大于block,则占据五个block块

 

 下边就来讲一下inode和block之间的涉及:

 1.索引式文件系统

 若一个文书的inode号是4,此中存放了其block的地点:2,7,13,15,那么操作系统读取数据的时候,就能够根据inode中block的任务三次性将数据读取出来。

 图片 13

2.链式文件系统

 和索引式文件系统分化的是莲式读取文件措施,常见于U盘的FAT格式,那种文件系统没有inode的留存,每个block的数码都记录在前一个block中。

 图片 14

 3.磁盘重组

 磁盘重组的目标就是将写在磁盘中离散的block重新社团一下,将同一个文书的block块集合在一块儿,以便于数据的读取。导致数据离散的来头,一般是由于文件系统使用的时辰过长,分外频繁的数目的操作,比如删除、增添和修改的次数过多。

 

目录的Inode

文件系统会给目录分配至少一个block,inode记录了权力和总体性以及分配到的block号,而block则记录了那一个目录下的文书名与该文件名所占据的inode号码。

上边描述读取一个索引下文件的流程:

举例来说:root读取/tmp/test.txt文件的经过:

1./的inode:通过挂载点音信找到inode号码为128的根目录的inode,取得权限和block号

2./的block:依照block的数码,查看block的情节,找到目录tmp/的公文名和其inode号

3.tmp/的inode:根据inode,获取权力信息和block号

4.tmp/的block:查看相应的block的情节,找到test.txt的inode号

5.test.txt的inode号:根据inode,获取权力音讯和相应的block号

6.test.txt的block:获取文件的实际上内容

 

 文件系统的档次

Linux的文件系统: ext2(无日志功能), ext3, ext4, xfs, reiserfs, btrfs
光盘:iso9660
网络文件系统:nfs, cifs
集群文件系统:gfs2, ocfs2
内核级分布式文件系统:ceph
windows的文件系统:vfat, ntfs
伪文件系统:proc, sysfs, tmpfs, hugepagefs
Unix的文件系统:UFS, FFS, JFS
交换文件系统:swap
用户空间的分布式文件系统:mogilefs, moosefs, glusterfs

 

日志式文件系统成效

数码存放区域:inode table,data block

metadata:中介数据,变化次数频仍,superblock,block bitmap和inode bitmap

新增一个文件的长河:

1.依据目录文件的inode确定用户是不是有权力

2.基于inode位图找到没有选择的inode号,在inode table写入权限等新闻

3.按照block位图找到没有选用的block号,在block中写入实际多少,更新到inode中去

4.更新inode位图和block位图,并更新到superblock中

相似一个完好的新建文件的历程就像上

可是只是出现越发情况,比如断电,可能相会世数量唯有写到了inode
table和block中却从没革新inode位图和block位图,也未尝创新superblock,那就招致中介数据和确实存储数据的情节分化等。

在EXT2中,要使用e2fsck这么些工具,要遍历整个文件系统,!!不敢想象啊!

故此就应运而生了日志式文件系统:

在文件系统中又单独划分一个区块,记录了写入或涂改文件时的音讯

1.当要写入一个文本的时候,就在日志区块记录一下某部文件要写入了

2.写入文件的数额,更新metadata数据

3.完了数据和metadate的换代,在日记记录区块当中已毕对该文件的记录

如此那般,当暴发意外的时候,我们得以从来检查日志记录区块,查看哪些文件有标题,然后做出校验即可

EXT2不协理日志式文件系统,EXT3和EXT4都协助日志式文件系统,并向下包容EXT2

 

 linux下的EXT2文件系统

EXT2是一种比较旧的文件系统了,从Centos7方始文件系统已经开始选用了XFS,可是那种使用inode为底蕴的文件系统仍旧要询问的,毕竟前边也应运而生了它的晋级版本,EXT3和EXT4。

面前说过inode记录是文本的权杖和总体性,inode和block在文件系统创造好将来就曾经分好了的,不过大家想一想,若是一个硬盘有500G甚至更大,inode和block都置身一块儿就会浮现不是很合理,数量过大,不不难去管理。所有在EXT2文件系统中在格式化的时候将文件系统分为三个区块,称为block
group,每个block group都有投机的block/inode/superblock。

上边我们就来探视一个block group的光景样子:

 图片 15

在文件系统的最前头有一个Boot
Sector,能够安装开机管理程序,那样大家就能将分裂的开机管理程序安装在分其余文件系统以前,而不用覆盖全部磁盘的MBR,那样就能做出多重开机的环境。

 

 block group的内容:

date
block:用来放置文件内容的地点,大小相似为1k、2k、4k,block的大大小小在格式化之后就无法再变更了,每个block就能存放一个文书的数量。

inode
table:记录了文件的权杖,文件的大小,时间戳,flag或者该文件的实在指向

superblock:block和inode的数目音讯,文件系统的大运戳,一个卓有成效比特,该值为0代表曾经被挂载,该值为1则并未被挂载

Filesystem Description:文件系统描述表明,描述了种种block
group的开头和竣事的block号码,已经注解了superblock\bitmap\inodemap\data
block分别在哪个一个block号码之间。

block
bitmap:block位图,记录block的选拔状态,标明了怎么block是空的,我们在剔除的文件的时候,会发觉高速,删除文件操作实际就是改变了该文件占用的bitmap的岗位为空,block的公文暂时没有去除,那就是大家的数据可以被找回的原由

inode bitmap:inode位图,与block
bitmap的听从看似,记录的是选择与未使用的inode号码。

 

VFS

VFS(Virtual Filesystem
Switch),linux系统通过VFS的基本功用去读取文件系统。

比如说/是运用的是/dev/sda1,其文件系统是ext2格式的,而/home使用的/dev/sda2,其格式为xfs,若是大家现在要读取/home/Frank,直接cat就行了,大家有指定要用什么文件系统的模块去读取吗?没有,那么些就是VFS的功用,VFS可以管理所有的filesystem,示意图如下:

 图片 16

 

目录的Inode

文件系统会给目录分配至少一个block,inode记录了权力和总体性以及分配到的block号,而block则记录了那个目录下的文件名与该公文名所占用的inode号码。

上面描述读取一个目录下文件的流水线:

举例:root读取/tmp/test.txt文件的进度:

1./的inode:通过挂载点音讯找到inode号码为128的根目录的inode,取得权限和block号

2./的block:按照block的号子,查看block的始末,找到目录tmp/的文本名和其inode号

3.tmp/的inode:依据inode,获取权力音信和block号

4.tmp/的block:查看相应的block的始末,找到test.txt的inode号

5.test.txt的inode号:按照inode,获取权力音信和对应的block号

6.test.txt的block:获取文件的骨子里内容

 

硬链接和符号链接

 硬链接和标志链接都是都是链接文件,用”l”表示

 图片 17

(黑色为标志链接标识l,棕色为引用计数)

 

 硬链接
指向同一个inode的八个公文路径
特性:目录不帮衬硬链接,硬链接不支持跨文件系统,创设硬链接会增添inode引用计数
创制硬链接:

ln   源文件  链接文件

 大家来看一下之类:

[[email protected] ~]# ls -l /etc/ | grep "fstab" 
-rw-r--r--.  1 root root      541 7月  16 04:37 fstab为其创建一个链接

 为其创制一个链接

[[email protected] ~]# ln /etc/fstab /tmp/fstab.link

 引用计数变为了2

[[email protected] ~]# ls -l /etc/ | grep "fstab" 
-rw-r--r--.  2 root root      541 7月  16 04:37 fstab

 再去看一下/tmp下的链接文件

[[email protected] ~]# ls -l /tmp/ | grep "link"
-rw-r--r--. 2 root  root    541 7月  16 04:37 fstab.link

 cat一下内容,因为指向的是inode,所有即便你剔除了源文件,通过标记链接或者读取文件内容:

[[email protected] ~]# cat /tmp/fstab.link 
#
# /etc/fstab
# Created by anaconda on Sun Jul 16 04:37:14 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot                   xfs     defaults        0 0
/dev/mapper/cl-var      /var                    xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

 

标志链接

针对一个文书路径的另一个文书路径

特征:符号链接与公事多个分别是独自的文书,各有协调的inode,对文件创造符号链接不会追加引用计数

         
帮忙对目录创造符号链接,可以跨文件系统,删除原文件,符号链接指定的不二法门就不设有了,此时变为了没用链接:

ln  -s 源文件 链接文件

举例:在当前目录下开创文件,并充分内容:

[[email protected] ~]# touch frank.txt
[[email protected] ~]# echo "hello" > ./frank.txt 
[[email protected] ~]# cat frank.txt 
hello

 创制符号链接:

[[email protected] ~]# ln -s frank.txt  frank.link

 查看符号链接:

 图片 18

 删除原文件后,符号填充色变黑,原文件名闪烁:

 图片 19

 写了那般些文件系统的基础知识,应该可以几乎了然文件系统是何许个东西了,上边大家就从头介绍如何保管和动用文件系统。

 

日志式文件系统功效

多少存放区域:inode table,data block

metadata:中介数据,变化次数频仍,superblock,block bitmap和inode bitmap

新增一个文书的进度:

1.根据目录文件的inode确定用户是不是有权力

2.基于inode位图找到没有运用的inode号,在inode table写入权限等新闻

3.基于block位图找到没有选择的block号,在block中写入实际数据,更新到inode中去

4.翻新inode位图和block位图,并立异到superblock中

相似一个完好无损的新建文件的进度如同上

唯独只是出现格外规景况,比如断电,可能会出现数量唯有写到了inode
table和block中却未曾立异inode位图和block位图,也没有立异superblock,那就造成中介数据和真正存储数据的内容不相同等。

在EXT2中,要使用e2fsck那么些工具,要遍历整个文件系统,!!不敢想象啊!

故而就出现了日志式文件系统:

在文件系统中又单独划分一个区块,记录了写入或修改文件时的新闻

1.当要写入一个文书的时候,就在日志区块记录一下某部文件要写入了

2.写入文件的多寡,更新metadata数据

3.落成数据和metadate的更新,在日记记录区块当中已毕对该文件的笔录

这么,当暴发意外的时候,大家可以直接检查日志记录区块,查看哪些文件有难点,然后做出校验即可

EXT2不辅助日志式文件系统,EXT3和EXT4都扶助日志式文件系统,并向下包容EXT2

 

文件系统的田间管理

文件系统的创办: mkfs 格式1:

mkfs.文件系统格式   device
文件系统格式:
mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs     
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat 

 举例:将/dev/sdb1格式化为ext4格式

[[email protected] ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

 也得以选拔:

mkfs -t 文件系统格式  device

 举例:将/dev/sdb1格式化为ext3格式

[[email protected] ~]# mkfs -t  ext3 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   

 

VFS

VFS(Virtual Filesystem
Switch),linux系统通过VFS的主干职能去读取文件系统。

诸如/是运用的是/dev/sda1,其文件系统是ext2格式的,而/home使用的/dev/sda2,其格式为xfs,倘使大家现在要读取/home/Frank,间接cat就行了,大家有指定要用什么文件系统的模块去读取吗?没有,那么些就是VFS的效益,VFS可以管理所有的filesystem,示意图如下:

 图片 20

 

ext体系系统专用管理工具

 mke2fs

始建一个ext2或ext3或ext4的文件系统,和mkfs命令类似

mke2fs [OPTIONS] device
常用选项:
-t {ext2|ext3|ext4}:指明要创建的文件系统类型
-b {1024|2048|4096}:指明文件系统的块大小;
-L LABEL:指明系统卷标;
-j:创建有日志功能的文件系统ext3;
-i #:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;
-N #:直接指明要给此文件系统创建的inode的数量;
-m #:指定预留的空间,百分比;

 也得以运用-O选项,指定特性,具体指定的各个feature可以动用命令”man 5
ext4″查看

mke2fs -O feature  device

举例:

[[email protected] ~]# mke2fs -t ext4  -L my_data /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=my_data
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

 

e2label 系统卷标的查阅与设定 查看:

[[email protected] ~]# e2label  /dev/sdb1
my_data

 设定:

[[email protected] ~]# e2label /dev/sdb2 mydata2
[[email protected] ~]# 
[[email protected] ~]# e2label /dev/sdb2 
mydata2

 

tune2fs
调整ext2/ext3/ext4的文件系统的某些质量,块大小写创立之后是不可以变更的

tune2fs [OPTIONS]  DEVICE
-l:查看super block的信息
修改文件系统的属性:
-j:修改文件系统
-L LABEL:修改卷标
-m #:调整预留空间百分比
-O [^]FEATURE:开启或关闭某种特性
-o [^]mout_options:开启或关闭某种默认挂载选项,比如 开启acl -o acl  或者关闭  -o  ^acl

 

dumpe2fs 查看设备品质

blkid device
blkid -L LABEL:根据LABEL定位设备
blkid -U UUID:根据唯一表示号定位设备

 举例

[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="my_data" UUID="0557dfda-a2ab-4d75-93be-38f84c6663a1" TYPE="ext4" 

 

硬链接和标记链接

 硬链接和符号链接都是都是链接文件,用”l”表示

 图片 21

(黑色为标志链接标识l,藏紫色为引用计数)

 

 硬链接

本着同一个inode的多少个公文路径

特点:目录不支持硬链接,硬链接不支持跨文件系统,创设硬链接会增添inode引用计数

始建硬链接:

ln   源文件  链接文件

 我们来看一下之类:

[root@localhost ~]# ls -l /etc/ | grep "fstab" 
-rw-r--r--.  1 root root      541 7月  16 04:37 fstab为其创建一个链接

 为其创建一个链接

[root@localhost ~]# ln /etc/fstab /tmp/fstab.link

 引用计数变为了2

[root@localhost ~]# ls -l /etc/ | grep "fstab" 
-rw-r--r--.  2 root root      541 7月  16 04:37 fstab

 再去看一下/tmp下的链接文件

[root@localhost ~]# ls -l /tmp/ | grep "link"
-rw-r--r--. 2 root  root    541 7月  16 04:37 fstab.link

 cat一下内容,因为指向的是inode,所有即便你剔除了源文件,通过标志链接或者读取文件内容:

[root@localhost ~]# cat /tmp/fstab.link 
#
# /etc/fstab
# Created by anaconda on Sun Jul 16 04:37:14 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot                   xfs     defaults        0 0
/dev/mapper/cl-var      /var                    xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

 

标志链接

针对一个文本路径的另一个文件路径

特色:符号链接与公事八个分别是独自的文书,各有温馨的inode,对文件创立符号链接不会追加引用计数

         
接济对目录创设符号链接,可以跨文件系统,删除原文件,符号链接指定的不二法门就不设有了,此时成为了没用链接:

ln  -s 源文件 链接文件

举例来说:在当前目录下成立文件,并累加内容:

[root@localhost ~]# touch frank.txt
[root@localhost ~]# echo "hello" > ./frank.txt 
[root@localhost ~]# cat frank.txt 
hello

 创设符号链接:

[root@localhost ~]# ln -s frank.txt  frank.link

 查看符号链接:

 图片 22

 删除原文件后,符号填充色变黑,原文件名闪烁:

 图片 23

 写了那样些文件系统的基础知识,应该可以大致知道文件系统是何等个东西了,下边大家就起来介绍怎么样管理和采纳文件系统。

 

文件系统检测工具

因经过意外终止或者系统崩溃的时候,可能会导致文件损坏,此时应当检查并修复文件系统,建立离线修复。

  e2fsck 检测ext2\ext3\ext4档次的linux文件系统

e2fsck  [OPTIONS] device
-y:对所有问题自动回答yes
-f:即使文件系统处于clean状态,也要强制检查,clean说明文件系统没有问题,反之为dirty

 

fsck

检查和改动一个linux的文件系统

-t fstype:指名文件系统
-a:无须交互而自动修复所有的错误
-r:交互式修复

 也足以采用以下格式:

[[email protected] ~]# fsck
fsck         fsck.cramfs  fsck.ext3    fsck.fat     fsck.msdos   fsck.xfs     
fsck.btrfs   fsck.ext2    fsck.ext4    fsck.minix   fsck.vfat    
[[email protected] ~]# fsck.ext2  /dev/sdb1

在centos7上,默许使用的文件系统是xfs,centos6默许不得以格式化分区为xfs文件系统,能够安装其文件系统驱动,在centos6装置:

[[email protected] ~]# yum  -y install xfsprogs

 

文件系统的田间管理

文件系统的创导:

mkfs

格式1:

mkfs.文件系统格式   device
文件系统格式:
mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs     
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat 

 举例:将/dev/sdb1格式化为ext4格式

[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

 也得以选择:

mkfs -t 文件系统格式  device

 举例:将/dev/sdb1格式化为ext3格式

[root@localhost ~]# mkfs -t  ext3 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   

 

swap文件系统

linux上的置换分区必须运用独立的文件系统,system-ID必须是82
图片 24

举例:现在要把分区sdb5转换为支撑swap文件系统

[[email protected] ~]# fdisk /dev/sdb 
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
分区号 (1-5,默认 5):5
Hex 代码(输入 L 列出所有代码):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 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT    
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

 再来查看sdb的分区情状

[[email protected] ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:128.8 GB, 128849018880 字节,251658240 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3918c6ef
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   83  Linux
/dev/sdb2        41945088    83888127    20971520   83  Linux
/dev/sdb3        83888128   125831167    20971520   83  Linux
/dev/sdb4       125831168   251658239    62913536    5  Extended
/dev/sdb5       125833216   167776255    20971520   82  Linux swap / Solaris

 注意:windows不能够识别linux的文件系统,要使用U盘在两体系型的配备上copy文件的时候,可以行使wimdows和Linux都能辨识的文件系统:FAT32(vfat)。

~]# mkfs.vfat  device

 

ext种类系统专用管理工具

 mke2fs

创制一个ext2或ext3或ext4的文件系统,和mkfs命令类似

mke2fs [OPTIONS] device
常用选项:
-t {ext2|ext3|ext4}:指明要创建的文件系统类型
-b {1024|2048|4096}:指明文件系统的块大小;
-L LABEL:指明系统卷标;
-j:创建有日志功能的文件系统ext3;
-i #:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;
-N #:直接指明要给此文件系统创建的inode的数量;
-m #:指定预留的空间,百分比;

 也可以行使-O选项,指定特性,具体指定的各个feature可以选拔命令”man 5
ext4″查看

mke2fs -O feature  device

举例:

[root@localhost ~]# mke2fs -t ext4  -L my_data /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=my_data
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

 

e2label

系统卷标的查看与设定

查看:

[root@localhost ~]# e2label  /dev/sdb1
my_data

 设定:

[root@localhost ~]# e2label /dev/sdb2 mydata2
[root@localhost ~]# 
[root@localhost ~]# e2label /dev/sdb2 
mydata2

 

tune2fs

调整ext2/ext3/ext4的文件系统的某些质量,块大小写创建之后是不能够转移的

tune2fs [OPTIONS]  DEVICE
-l:查看super block的信息
修改文件系统的属性:
-j:修改文件系统
-L LABEL:修改卷标
-m #:调整预留空间百分比
-O [^]FEATURE:开启或关闭某种特性
-o [^]mout_options:开启或关闭某种默认挂载选项,比如 开启acl -o acl  或者关闭  -o  ^acl

 

blkid

翻开设备质量

blkid device
blkid -L LABEL:根据LABEL定位设备
blkid -U UUID:根据唯一表示号定位设备

 举例

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="my_data" UUID="0557dfda-a2ab-4d75-93be-38f84c6663a1" TYPE="ext4" 

 

文件系统的选拔

文件系统创立落成之后,想要使用,就亟要求挂载到指定的职责。

根文件系统之外的其他系统想要可以被访问,就亟须挂载在根文件系统上的某一个索引上,而此目录被誉为挂载点。

挂载点:一个文件系统的造访入口,它有以下特点:

1.索引必须完成存在

2.应有选用未被或者不会被其他进度使用的目录

3.挂载点下本来的公文种被隐形

 mount

 挂载文件系统

mount  [-nrw]  [-t vfstype]  [-o options]  device  dir
命令选项:
-r:readonly,只读挂载; 
-w:read and write, 读写挂载; 
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;
-t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;
-L LABEL:挂载时以卷标的方式指明设备;
    mount -L LABEL dir
-U UUID:挂载时以UUID的方式指明设备;
    mount -U UUID dir
-o options:挂载选项
    sync/async:同步/异步操作;
    atime/noatime:文件或目录在被访问时是否更新其访问时间戳;
    diratime/nodiratime:目录在被访问时是否更新其访问时间戳;
    remount:重新挂载; 
    acl:支持使用facl功能;
        # mount -o acl  device dir 
        # tune2fs  -o  acl  device
    ro:只读 
    rw:读写 
    dev/nodev:此设备上是否允许创建设备文件;
    exec/noexec:是否允许运行此设备上的程序文件;
    auto/noauto:
    user/nouser:是否允许普通用户挂载此文件系统;
    suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.

 注意:也得以将挂载后的目录再挂载到另一个目录上,作为其临时造访入口

 举例:将/dev/sdb1挂载到/mnt目录下

[[email protected] ~]# mount /dev/sdb1 /mnt/
[[email protected] ~]# df -l
文件系统               1K-块    已用     可用 已用% 挂载点
/dev/mapper/cl-root 16250880 3542180 12708700   22% /
devtmpfs             1000180       0  1000180    0% /dev
tmpfs                1016076      84  1015992    1% /dev/shm
tmpfs                1016076    9116  1006960    1% /run
tmpfs                1016076       0  1016076    0% /sys/fs/cgroup
/dev/sdb1           20511312   45080 19401272    1% /mnt
/dev/sda1             508580  151316   357264   30% /boot
/dev/mapper/cl-var   2086912  427172  1659740   21% /var
tmpfs                 203216      16   203200    1% /run/user/42
tmpfs                 203216       0   203216    0% /run/user/0

 

 查看当前系统系统有着曾经挂载的设备

 二种办法:

#mount
#cat /etc/mtab
#cat /proc/mounts

 

 卸载文件系统

umount device/dir   #指定设备名和目录都可以

注意:

若是挂载点下有文件被访问,大家鞭长莫及卸载

可以拔取以命令来查看哪些进程占用了挂载点:

lsof  MOUNT_POINT
fuser -v  MOUNT_POINT

 并可以动用如下边发号施令,强制甘休所有正在访问的某挂载点

fuser  -km  MOUNT_POINT

 

 调换分区的启用和剥夺

换成分区不需求挂载。

创办调换分区:

mkswap device  #将指定的分区创建支持swap格式的文件系统,也可以进入fdisk的交互模式下,使用t选项

 启用:

swapon  [OPTION]  [DEVICE]
    -a:定义在/etc/fstab文件中的所有swap设备;

 禁用:

swapoff device

 查看:

[[email protected] mnt]# cat /proc/swaps 
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition    2097148    0    -1
/dev/sdb5                               partition    20971516    0    -2

 

文件系统检测工具

因经过意外终止或者系统崩溃的时候,可能会促成文件损坏,此时理应检查并修复文件系统,建立离线修复。

 

e2fsck

检测ext2\ext3\ext4项目标linux文件系统

e2fsck  [OPTIONS] device
-y:对所有问题自动回答yes
-f:即使文件系统处于clean状态,也要强制检查,clean说明文件系统没有问题,反之为dirty

 

fsck

自我批评和改动一个linux的文件系统

-t fstype:指名文件系统
-a:无须交互而自动修复所有的错误
-r:交互式修复

 也得以应用以下格式:

[root@localhost ~]# fsck
fsck         fsck.cramfs  fsck.ext3    fsck.fat     fsck.msdos   fsck.xfs     
fsck.btrfs   fsck.ext2    fsck.ext4    fsck.minix   fsck.vfat    
[root@localhost ~]# fsck.ext2  /dev/sdb1

在centos7上,默许使用的文件系统是xfs,centos6默认不可以格式化分区为xfs文件系统,可以设置其文件系统驱动,在centos6装置:

[root@localhost ~]# yum  -y install xfsprogs

 

安插文件/etc/fstab

 默许处境下唯有根文件系统可以自动挂载,可将需求活动挂载的设备等新闻按指定的格式写在/etc/fstab文件中:

[[email protected] ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Sun Jul 16 04:37:14 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot                   xfs     defaults        0 0
/dev/mapper/cl-var      /var                    xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

从左到右分为6个字段:
(1)要挂载的设备,可以应用设备文件,卷标和UUID

(2)挂载点,swap类型的装备文件挂载点为swap

(3)文件系统类型

(4)挂载选项:defaults为默许挂载选项,多少个挂载选项之间用逗号隔开

(5)转储频率:0:从不备份,1:每一日备份,2:每隔一天备份

(6)自检次序:0:不自检,1:首先自检,只好是根文件系统,2,次级自检,以此类推

可以选用mount -a:自动挂载在此文件中所帮助的活动挂载设备

举个例子:将系统光盘活动挂载在/mnt目录下,使其开机自动挂载:

[[email protected] ~]# vim /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Sun Jul 16 04:37:14 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot                   xfs     defaults        0 0
/dev/mapper/cl-var      /var                    xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
/dev/sr0                /mnt                    iso9660 defaults        0 0

 重启设备确认挂载成功:

[[email protected] ~]# df
文件系统               1K-块    已用     可用 已用% 挂载点
/dev/mapper/cl-root 16250880 3542224 12708656   22% /
devtmpfs             1000180       0  1000180    0% /dev
tmpfs                1016076      84  1015992    1% /dev/shm
tmpfs                1016076    9116  1006960    1% /run
tmpfs                1016076       0  1016076    0% /sys/fs/cgroup
/dev/sr0             4276440 4276440        0  100% /mnt
/dev/sda1             508580  151316   357264   30% /boot
/dev/mapper/cl-var   2086912  427160  1659752   21% /var
tmpfs                 203216      12   203204    1% /run/user/42
tmpfs                 203216       0   203216    0% /run/user/0

 

swap文件系统

linux上的置换分区必须选拔独立的文件系统,system-ID必须是82

图片 25

比方:现在要把分区sdb5转换为永葆swap文件系统

[root@localhost ~]# fdisk /dev/sdb 
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
分区号 (1-5,默认 5):5
Hex 代码(输入 L 列出所有代码):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 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT    
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

 再来查看sdb的分区情形

[root@localhost ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:128.8 GB, 128849018880 字节,251658240 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3918c6ef
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   83  Linux
/dev/sdb2        41945088    83888127    20971520   83  Linux
/dev/sdb3        83888128   125831167    20971520   83  Linux
/dev/sdb4       125831168   251658239    62913536    5  Extended
/dev/sdb5       125833216   167776255    20971520   82  Linux swap / Solaris

 注意:windows不能识别linux的文件系统,要动用U盘在三种档次的装备上copy文件的时候,可以使用wimdows和Linux都能辨识的文件系统:FAT32(vfat)。

~]# mkfs.vfat  device

 

其他常用命令

 df

 报告文件系统磁盘的使事态

df  [OPTIONS] file
-l:显示本地文件的相关信息
-h:以human_readabel的方式显示
-i:显示inode的使用状态,而不是block

[[email protected] ~]# df -l
文件系统               1K-块    已用     可用 已用% 挂载点
/dev/mapper/cl-root 16250880 3542172 12708708   22% /
devtmpfs             1000180       0  1000180    0% /dev
tmpfs                1016076      84  1015992    1% /dev/shm
tmpfs                1016076    9112  1006964    1% /run
tmpfs                1016076       0  1016076    0% /sys/fs/cgroup
/dev/sda1             508580  151316   357264   30% /boot
/dev/mapper/cl-var   2086912  426924  1659988   21% /var
tmpfs                 203216      12   203204    1% /run/user/42
tmpfs                 203216       0   203216    0% /run/user/0

[[email protected] ~]# df -l /mnt/CentOS_BuildTag    #查看某个文件属于哪个文件系统
文件系统         1K-块    已用  可用 已用% 挂载点
/dev/sr0       4276440 4276440     0  100% /mnt

 

 dd

 转换和拷贝文件,它每便从输入读取的是一个块的分寸(默许512字节)

if=FILE:从FILE读而不是标准输入
of=FILE:写到FILE里去,而不是标准输出
ibs=BYTES:一次读取BYTES个字节
obs=BYTES:一次写BYTES个字节
bs=BYTES:一次性读写BYTES个字节
skip=blocks:在拷贝之前,跳过输出文件的前blocks个块,每块大写为ibs个字节
seek=blocks:在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节
count=blocks:只拷贝输入文件的前 blocks 块(每块的大小为 ibs-byte 字节),而不是全部内容,直到文件末尾。

举例:

1.将地面的/dev/sda整盘备份到/dev/sdb中

dd if=/dev/sda of=/dev/sdb

 2.将/dev/sda整盘保存到/root/my_sda

dd if=/dev/sda of=/root/my_sda

 3.备份MBR

dd if=/dev/sda of=/root/my_mbr count=1 bs=512

 一个有意思的配备文件/dev/zero,是一个输入设备,它可以向外侧不断的吐0,别的的一个设施文件是/dev/null,它像一个无底洞一样,可以吞噬一切数据。

 4.格式化硬盘

dd if=/dev/zero of=/dev/sda bs=512 count=1

 

 du

 查看当前点名的文本或目录占磁盘空间的轻重,会递归展现

du [OPTIONS] file
-a:显示对所有文件的统计,而不只是包含子目录。
-b:输出以字节为单位的大小,替代缺省时1024字节的计数单位。
--block-size=size:输出以块为单位的大小,块的大小为 size 字节。( file- utils-4.0 的新选项)
-h: 为每个数附加一个表示大小单位的字母,象用M表示二进制 的兆字节。
-k:输出以1024字节为计数单位的大小。
-m:输出以兆字节的块为计数单位的大小(就是 1,048,576 字节)。
--max-depth=n:只输出命令行参数的小于等于第 n 层的目录的总计。
详细可以查看man手册

 

参照链接:https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/59.html
      

 

http://www.bkjia.com/Linuxjc/1220069.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/1220069.htmlTechArticle【linux相识相知】磁盘分区及文件系统管理详解,linux相识相知
磁盘,提供持久的数额存储,它不像我们的内存,假如突然断电了,在内存…

文件系统的利用

文件系统创设完成之后,想要使用,就务要求挂载到指定的岗位。

根文件系统之外的任何系统想要可以被访问,就务须挂载在根文件系统上的某一个索引上,而此目录被叫作挂载点。

挂载点:一个文件系统的访问入口,它有以下特点:

1.目录必须兑现存在

2.相应接纳未被或者不会被其余进度使用的目录

3.挂载点下本来的文书会被隐形

 

 mount

 挂载文件系统

mount  [-nrw]  [-t vfstype]  [-o options]  device  dir
命令选项:
-r:readonly,只读挂载; 
-w:read and write, 读写挂载; 
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;
-t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;
-L LABEL:挂载时以卷标的方式指明设备;
    mount -L LABEL dir
-U UUID:挂载时以UUID的方式指明设备;
    mount -U UUID dir
-o options:挂载选项
    sync/async:同步/异步操作;
    atime/noatime:文件或目录在被访问时是否更新其访问时间戳;
    diratime/nodiratime:目录在被访问时是否更新其访问时间戳;
    remount:重新挂载; 
    acl:支持使用facl功能;
        # mount -o acl  device dir 
        # tune2fs  -o  acl  device
    ro:只读 
    rw:读写 
    dev/nodev:此设备上是否允许创建设备文件;
    exec/noexec:是否允许运行此设备上的程序文件;
    auto/noauto:
    user/nouser:是否允许普通用户挂载此文件系统;
    suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;
defaults:Use default options: rw, suid, dev, exec, auto, nouser, async, and relatime.

 注意:也足以将挂载后的目录再挂载到另一个索引上,作为其暂时造访入口

 举例:将/dev/sdb1挂载到/mnt目录下

[root@localhost ~]# mount /dev/sdb1 /mnt/
[root@localhost ~]# df -l
文件系统               1K-块    已用     可用 已用% 挂载点
/dev/mapper/cl-root 16250880 3542180 12708700   22% /
devtmpfs             1000180       0  1000180    0% /dev
tmpfs                1016076      84  1015992    1% /dev/shm
tmpfs                1016076    9116  1006960    1% /run
tmpfs                1016076       0  1016076    0% /sys/fs/cgroup
/dev/sdb1           20511312   45080 19401272    1% /mnt
/dev/sda1             508580  151316   357264   30% /boot
/dev/mapper/cl-var   2086912  427172  1659740   21% /var
tmpfs                 203216      16   203200    1% /run/user/42
tmpfs                 203216       0   203216    0% /run/user/0

 

 查看当前系统系统具备曾经挂载的装置

 三种办法:

#mount
#cat /etc/mtab
#cat /proc/mounts

 

 卸载文件系统

umount device/dir   #指定设备名和目录都可以

注意:

如果挂载点下有文件被访问,我们无法卸载

可以采纳以命令来查看哪些进度占用了挂载点:

lsof  MOUNT_POINT
fuser -v  MOUNT_POINT

 并可以采用如上边发号施令,强制截止所有正在访问的某挂载点

fuser  -km  MOUNT_POINT

 

 互换分区的启用和剥夺

互换分区不需求挂载。

创设沟通分区:

mkswap device  #将指定的分区创建支持swap格式的文件系统,也可以进入fdisk的交互模式下,使用t选项

 启用:

swapon  [OPTION]  [DEVICE]
    -a:定义在/etc/fstab文件中的所有swap设备;

 禁用:

swapoff device

 查看:

[root@localhost mnt]# cat /proc/swaps 
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition    2097148    0    -1
/dev/sdb5                               partition    20971516    0    -2

 

配备文件/etc/fstab

 默许意况下唯有根文件系统可以活动挂载,可将急需活动挂载的装置等新闻按指定的格式写在/etc/fstab文件中:

[root@localhost ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Sun Jul 16 04:37:14 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot                   xfs     defaults        0 0
/dev/mapper/cl-var      /var                    xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

从左到右分为6个字段:
(1)要挂载的配备,能够选拔设备文件,卷标和UUID

(2)挂载点,swap类型的装置文件挂载点为swap

(3)文件系统类型

(4)挂载选项:defaults为默认挂载选项,四个挂载选项之间用逗号隔开

(5)转储频率:0:从不备份,1:天天备份,2:每隔一天备份

(6)自检次序:0:不自检,1:首先自检,只可以是根文件系统,2,次级自检,以此类推

可以选择mount -a:自动挂载在此文件中所协助的机动挂载设备

举个例证:将系统光盘活动挂载在/mnt目录下,使其开机自动挂载:

[root@localhost ~]# vim /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Sun Jul 16 04:37:14 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=ee087898-527c-41b0-85f6-3880e6bf0b73 /boot                   xfs     defaults        0 0
/dev/mapper/cl-var      /var                    xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
/dev/sr0                /mnt                    iso9660 defaults        0 0

 重启设备确认挂载成功:

[root@localhost ~]# df
文件系统               1K-块    已用     可用 已用% 挂载点
/dev/mapper/cl-root 16250880 3542224 12708656   22% /
devtmpfs             1000180       0  1000180    0% /dev
tmpfs                1016076      84  1015992    1% /dev/shm
tmpfs                1016076    9116  1006960    1% /run
tmpfs                1016076       0  1016076    0% /sys/fs/cgroup
/dev/sr0             4276440 4276440        0  100% /mnt
/dev/sda1             508580  151316   357264   30% /boot
/dev/mapper/cl-var   2086912  427160  1659752   21% /var
tmpfs                 203216      12   203204    1% /run/user/42
tmpfs                 203216       0   203216    0% /run/user/0

 

其余常用命令

 df

 报告文件系统磁盘的使事态

df  [OPTIONS] file
-l:显示本地文件的相关信息
-h:以human_readabel的方式显示
-i:显示inode的使用状态,而不是block

[root@localhost ~]# df -l
文件系统               1K-块    已用     可用 已用% 挂载点
/dev/mapper/cl-root 16250880 3542172 12708708   22% /
devtmpfs             1000180       0  1000180    0% /dev
tmpfs                1016076      84  1015992    1% /dev/shm
tmpfs                1016076    9112  1006964    1% /run
tmpfs                1016076       0  1016076    0% /sys/fs/cgroup
/dev/sda1             508580  151316   357264   30% /boot
/dev/mapper/cl-var   2086912  426924  1659988   21% /var
tmpfs                 203216      12   203204    1% /run/user/42
tmpfs                 203216       0   203216    0% /run/user/0

[root@localhost ~]# df -l /mnt/CentOS_BuildTag    #查看某个文件属于哪个文件系统
文件系统         1K-块    已用  可用 已用% 挂载点
/dev/sr0       4276440 4276440     0  100% /mnt

 

 dd

 转换和拷贝文件,它每回从输入读取的是一个块的轻重缓急(默许512字节)

if=FILE:从FILE读而不是标准输入
of=FILE:写到FILE里去,而不是标准输出
ibs=BYTES:一次读取BYTES个字节
obs=BYTES:一次写BYTES个字节
bs=BYTES:一次性读写BYTES个字节
skip=blocks:在拷贝之前,跳过输出文件的前blocks个块,每块大写为ibs个字节
seek=blocks:在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节
count=blocks:只拷贝输入文件的前 blocks 块(每块的大小为 ibs-byte 字节),而不是全部内容,直到文件末尾。

举例:

1.将本地的/dev/sda整盘备份到/dev/sdb中

dd if=/dev/sda of=/dev/sdb

 2.将/dev/sda整盘保存到/root/my_sda

dd if=/dev/sda of=/root/my_sda

 3.备份MBR

dd if=/dev/sda of=/root/my_mbr count=1 bs=512

 一个诙谐的装置文件/dev/zero,是一个输入设备,它可以向外侧不断的吐0,别的的一个装备文件是/dev/null,它像一个无底洞一样,可以吞噬一切数据。

 4.格式化硬盘

dd if=/dev/zero of=/dev/sda bs=512 count=1

 

 du

 查看当前点名的文本或目录占磁盘空间的大大小小,会递归突显

du [OPTIONS] file
-a:显示对所有文件的统计,而不只是包含子目录。
-b:输出以字节为单位的大小,替代缺省时1024字节的计数单位。
--block-size=size:输出以块为单位的大小,块的大小为 size 字节。( file- utils-4.0 的新选项)
-h: 为每个数附加一个表示大小单位的字母,象用M表示二进制 的兆字节。
-k:输出以1024字节为计数单位的大小。
-m:输出以兆字节的块为计数单位的大小(就是 1,048,576 字节)。
--max-depth=n:只输出命令行参数的小于等于第 n 层的目录的总计。
详细可以查看man手册

 

参考链接:https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/59.html
      

 

 

 

 

 

 

 

 

相关文章