Linux下磁盘分区和挂载

一、Linux中分区的相关概念

1、几种主要的硬盘接口类型

  硬盘的接口主要有IDE、SATA、SCSI 、SAS和光纤通道等五种类型。其中IDE和SATA接口硬盘多用于家用产品中,也有部分应用于服务器,SATA是一种新生的硬盘接口类型,已经取代了大部分IDE接口应用。SCSI 、SAS主要应用于服务器上,普通家用设备一般不支持SCSI和SAS接口。SAS也是是一种新生的硬盘接口类型,可以和SATA以及部分SCSI设备无缝结合。光纤通道最初设计也不是为了硬盘设计开发的接口,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中,并且其只应用在高端服务器上价格昂贵。

2、Linux中的分区类型

  Linux的文件系统不同于Windows,Linux中无论有多少个分区,这些分区都会被组织成一个完整的目录树。Linux硬盘的分区主要分为基本分区 / 物理分区(primary partion)和扩展分区(extension partion)两种。基本分区数量不能大于三个,而扩展分区的数最多只能为一个。且基本分区可以马上被挂载使用但不能再分区,扩展分区必须再进行二次分区后才能挂载。扩展分区下的二次分区被称之为逻辑分区,逻辑分区数量限制视磁盘类型而定。

3、Linux中的分区规则

  在Linux中会把设备映射成为一个/dev目录下的系统文件,IDE接口类型的硬盘设备映射的文件名称前缀为“hd”,SCSI、SATA、SAS等接口的硬盘设备映射的文件名称前缀为“sd”(部分虚拟机或者云主机的名称可能是其他的,比如“vd”),后面拼接从“a”开始一直到“z”用来区分不同的硬盘设备。在硬盘名称后面拼接数字形式的分区号用来区分不同的分区,其中主分区(包括扩展分区)的分区号号为1~4,逻辑分区的分区号为从5开始累加的数字。

  比如设备主板上装了4块硬盘,分别为2块IDE接口硬盘,1块SCSI接口硬盘和一块SATA接口硬盘。其中2块IDE接口硬盘的分区策略为2个主分区和2个逻辑分区,SCSI分区策略为3个主分区和3个逻辑分区,SATA分区策略为4个主分区。硬盘文件和分区名称如下:

  硬盘 主分区1  主分区2  主分区3  主分区4  逻辑分区1  逻辑分区2  逻辑分区3 ......  逻辑分区n
IDE1 /dev/hda /dev/hda1(p) /dev/hda2(p) /dev/hda3(e) / /dev/hda5(l) /dev/hda6(l) / ...... /
IDE2 /dev/hdb /dev/hdb1(p) /dev/hdb2(p) /dev/hdb3(e) / /dev/hdb5(l) /dev/hdb6(l) / ...... /
SCSI /dev/sda /dev/sda1(p) /dev/sda2(p) /dev/sda3(p) /dev/sda4(e) /dev/sda5(l) /dev/sda6(l) /dev/sda7(l) ...... /
SATA /dev/sdb /dev/sdb1(p) /dev/sdb2(p) /dev/sdb3(p) /dev/sdb4(p) / / / ...... /

  其中分区名称后面的(p)代表基本分区,(e)代表扩展分区,(l)代表逻辑分区。需要注意的是,如果分区策略中存在逻辑分区,则说明一定会有扩展分区,那么基本分区数则最多只能有3个,扩展分区数最多只能是1个,如果没有扩展分区则可以创建4个基本分区。想要创建逻辑分区,则必须先将唯一的扩展分区创建出来,并且如果删除了扩展分区,那么它下面的所有逻辑分区也会被自动删除。

4、分区的文件系统

  当硬盘分区被创建完成之后,还并不能直接挂载到目录上存储文件,需要选择合适的文件系统进行初始化。常见的分区类型有FAT32、FAT16、NTFS、HP-UX等,而专供Linux使用的主流的一些分区有ext2/3/4、physical volume (LVM) 、softwareRAID、swap、vfat、xfs等。其中:

  1、ext2/3/4:是适合Linux的文件系统类型,由于ext3文件系统多了日志记录功能,因此系统恢复起来更加快速,ext4是ext3的升级,效率更加高,因此建议使用默认类型ext4类型,而不要使用ext2/3;

  2、physical volume (LVM):这是一种弹性调整文件系统大小的机制,即可以让文件系统变大或变小,而不改变原文件数据的内容,功能不错,但性能不佳。

  3、softwareRAID:利用Linux系统的特性,用软件仿真出磁盘阵列功能。

  4、swap:就是内存交换空间。由于swap并不会使用到目录树的挂载,因此用swap就不需要指定挂载点。

  5、vfat:同时被Linux与windows所支持的文件系统类型。如果主机硬盘同事存在windows和linux两种操作系统,为了进行数据交换,可以使用该文件系统。

  6、xfs:也是一个文件系统类型,在centos7中将被作为默认的文件系统类型,替换ext4。

二、开始分区实战

本文主要以CentOS 7发行版的Linux作为实验

1、创建分区

我们使用Fdisk工具来操作分区,Fdisk 是各种 Linux 发行版本中最常用的分区工具,是被定义为 Expert 级别的分区工具。

输入fdisk命令查看到fdisk的使用帮助:

[root@localhost ~]# fdisk 
用法:
 fdisk [选项] <磁盘>    更改分区表
 fdisk [选项] -l <磁盘> 列出分区表
 fdisk -s <分区>        给出分区大小(块数)

选项:
 -b <大小>             扇区大小(5121024、2048或4096)
 -c[=<模式>]           兼容模式:“dos”或“nondos”(默认)
 -h                    打印此帮助文本
 -u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
 -v                    打印程序版本
 -C <数字>             指定柱面数
 -H <数字>             指定磁头数
 -S <数字>             指定每个磁道的扇区数

通过fdisk的用使用帮助中,我们可以知道 fdisk -l 命令为查看已有的分区列表信息:

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:161.1 GB, 161061273600 字节,314572800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0003537e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux

磁盘 /dev/mapper/cl-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/cl-swap:8455 MB, 8455716864 字节,16515072 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/cl-home:44.1 GB, 44149243904 字节,86228992 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

可以看出已经有一块硬盘/dev/sda大小为161.1G,并且该硬盘下有一个分区/dev/sda1,但是/dev/sda1并没有占用所有空间,所以可以在创建一个分区/dev/sda2

输入fdisk /dev/sda命令,对/dev/sda硬盘的分区表进行操作:

[root@localhost ~]# fdisk /dev/sda 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):

我们输入m选项可以查看到帮助信息:

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag 切换可引导标志
   b   edit bsd disklabel 编辑BSD磁盘标签
   c   toggle the dos compatibility flag 切换DOS兼容性标志
   d   delete a partition 删除分区
   g   create a new empty GPT partition table 创建一个新的空GPT分区表
   G   create an IRIX (SGI) partition table 创建一个ILIX(SGI)分区表
   l   list known partition types 列出已知分区类型
   m   print this menu 打印此菜单
   n   add a new partition 添加新分区
   o   create a new empty DOS partition table 创建一个新的空DOS分区表
   p   print the partition table 打印分区表
   q   quit without saving changes 不保存更改退出
   s   create a new empty Sun disklabel 创建一个新的空太阳标签
   t   change a partition's system id 更改分区的系统ID
   u   change display/entry units 更改显示/输入单元
   v   verify the partition table 验证分区表
   w   write table to disk and exit 将表写入磁盘并退出
   x   extra functionality (experts only) 额外功能(仅专家)

命令(输入 m 获取帮助):

从上面的帮助信息中,可以得知一些选项的用途。

那么首先输入n选项来开始创建分区:

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 

可以看到交互界面打印的信息,提示需要选择一个分区类型,p:为基本分区(默认);e:为扩展分区;

再次我们选择p,创建一个主分区:

Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p 分区号 (
2-4,默认 2):

交互界面提示需要选择一个分区号,范围为2-4。由于已经存在了一个基本分区,所以只可选择2、3、4(默认2,顺序累加);

再次我们输入2:

Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (2099200-314572799,默认为 2099200):

可以看到交互界面提示序号选择其实扇区,默认为剩余未被分配的最小扇区,推荐选择默认(直接点击会车);

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (2099200-314572799,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-314572799,默认为 314572799):

交互界面提示,要输入需要分配的截止扇区,默认为未被分配的最小扇区,此处推荐默认(直接点击会车):

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (2099200-314572799,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-314572799,默认为 314572799):
将使用默认值 314572799
分区 2 已设置为 Linux 类型,大小设为 149 GiB

命令(输入 m 获取帮助):

可以看到又回到了最初的交互界面,这表示分区表已经设置成功,输入选项q表示要放弃本次分区表的修改并退出,w选项表示保存本次分区表的修改并退出,此处选择w表示将分区信息写入到磁盘,此次分区完成;

回到最初操作分区表的地方,选择d选项,删除分区的功能:

命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):

交互界面提示输入要删除的分区的分区号,此处选择2:

命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):2
分区 2 已删除

命令(输入 m 获取帮助):

交互界面提示本次分区表操作成功,输入选项w,表示将分区信息写入到磁盘,此次删除分区完成;

回到最初选择分区类型的地方,选择e,创建扩展分区:

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):

交互界面提示要输入扩展分区的分区号,可选范围为2-4,此处选择2:

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (2099200-314572799,默认为 2099200):

交互界面提示输入要分配给扩展分区的起始扇区,此处选择默认:

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (2099200-314572799,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-314572799,默认为 314572799):

交互界面提示输入要分配给扩展分区的截止扇区,此处选择默认:

Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (2099200-314572799,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-314572799,默认为 314572799):
将使用默认值 314572799
分区 2 已设置为 Extended 类型,大小设为 149 GiB

命令(输入 m 获取帮助):

 交互界面提示本次对分区表的操作已完成,输入w选项,保存本次对分区表的操作;当再次创建分区的时候,交互界面就会将扩展分区的选项e替换成为逻辑分区的选项l:

Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): 

之后再要创建逻辑分区和之前创建分区的步骤一直,最后再执行partprobe命令,让kernel重新读取分区信息,分区完成;

至此CentOS中的分区操作已完成;

2、格式化分区

我们使用mkds进行分区格式化操作:

[root@localhost ~]# mkfs
用法:
 mkfs [选项] [-t <类型>] [文件系统选项] <设备> [<大小>]

选项:
 -t, --type=<类型>  文件系统类型;
     fs-options     实际文件系统构建程序的参数
     <设备>         要使用设备的路径
     <大小>         要使用设备上的块数
 -V, --verbose      解释正在进行的操作;
                      多次指定 -V 将导致空运行(dry-run)
 -V, --version      显示版本信息并退出
                      将 -V 作为 --version 选项时必须是惟一选项
 -h, --help         显示此帮助并退出

更多信息请参阅 mkfs(8)。

交互界面显示为mkfs的使用帮助;

使用mkfs -t xfs /dev/sda2 进行格式化分区:

[root@localnat201 ~]# mkfs -t xfs /dev/sda2 
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=624936 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2499744, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

注:格式化成xfs时,若提示分区已存在文件系统,则需要在分区前面加上-f选项强行覆盖;

若要查看所有分区的文件格式则如下:

[root@localnat201 ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  标志
 1      1049kB  1075MB  1074MB  primary  xfs          启动
 2      1075MB  32.2GB  31.1GB  primary               lvm


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/cl-swap: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End     Size    File system     标志
 1      0.00B  2147MB  2147MB  linux-swap(v1)


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/cl-root: 29.0GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End     Size    File system  标志
 1      0.00B  29.0GB  29.0GB  xfs

至此格式化分区完成;

3、挂载分区

在系统重创建一个用户挂载分区的目录

[root@localhost ~]# mkdir /data

将分区挂载到目录上:

mount /dev/sda2 /data/

设置开机自动挂载分区到挂载点,编辑 vim /etc/fstab :

#
# /etc/fstab
# Created by anaconda on Sun Jun 25 07:16:25 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
#
UUID=eb697457-a097-4263-8bbf-a75aa632d27c /                       ext4    defaults        1 1

/dev/sda2                               /data                   xfs    defaults        0 0

如果想要卸载挂载点:

[root@localnat201 ~]# umount /dev/sda2

至此挂载分区已完成;

猜你喜欢

转载自www.cnblogs.com/lbole/p/8904298.html