您现在的位置是:首页 > 文章详情

Linux下的磁盘分区

日期:2018-04-22点击:528

一、硬盘接口类型

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

二、硬盘和分区

Linux中主要有两种分区类型,分别为MBR(Master Boot Record)和GPT(GUID Partition Table),是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,这样操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在MBR和GPT之间做出选择。

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

1、MBR分区
MBR的意思是“主引导记录”,它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘。MBR格式的磁盘分区主要分为基本分区(primary partion)和扩展分区(extension partion)两种物理分区(主分区)和扩展分区下的逻辑分区。物理分区总数不能大于4个,其中最多只能有一个扩展分区。且基本分区可以马上被挂载使用但不能再分区,扩展分区必须再进行二次分区后才能挂载。扩展分区下的二次分区被称之为逻辑分区,逻辑分区数量限制视磁盘类型而定。

MBR的主分区号为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个基本分区。想要创建逻辑分区,则必须先将唯一的扩展分区创建出来,并且如果删除了扩展分区,那么它下面的所有逻辑分区也会被自动删除。

2、GPT分区

GPT意为GUID分区表,驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID)。支持的最大磁盘可达18EB,它没有物理分区和逻辑分区之分,每个硬盘做多可以有128个分区,具有更强的健壮性与更大的兼容性。并且逐步取代MBR分区方式。

 

 

 

三、文件系统

当硬盘分区被创建完成之后,还并不能直接挂载到目录上存储文件,需要选择合适的文件系统进行格式化。常见的分区类型有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。

四、使用FDISK操作分区

本文主要以CentOS 7发行版的Linux作为实验,我们使用Fdisk工具来操作分区,Fdisk 是各种 Linux 发行版本中最常用的分区工具,但是其只能创建MBR分区,如果你的硬盘不大于2TB则可以考虑使用fdisk来创建MBR分区。

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

复制代码
[root@localhost ~]# fdisk 用法: fdisk [选项] <磁盘> 更改分区表 fdisk [选项] -l <磁盘> 列出分区表 fdisk -s <分区> 给出分区大小(块数) 选项: -b <大小> 扇区大小(512、1024、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中的分区操作已完成;

五、使用parted操作分区

parted是一个可以分区并进行分区调整的工具,他可以创建,破坏,移动,复制,调整ext2 linux-swap fat fat32 reiserfs类型的分区,可以创建,调整,移动Macintosh的HFS分区,检测jfs,ntfs,ufs,xfs分区。既可以创建MBR分区,又可以用来创建GPT分区,如果你的硬盘大于2TB则必须要使用parted来创建GPT格式的分区。

可以使用 parted -h 命令查看使用说明

复制代码
[root@localnat201 ~]# parted -h Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...] Apply COMMANDs with PARAMETERS to DEVICE. If no COMMAND(s) are given, run in interactive mode. 选项: -h, --help 显示此求助信息 -l, --list lists partition layout on all block devices -m, --machine displays machine parseable output -s, --script 从不提示用户 -v, --version 显示版本 -a, --align=[none|cyl|min|opt] alignment for new partitions 命令: 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 Report bugs to bug-parted@gnu.org
复制代码

 

 

 

六、格式化分区

这里我是用的是CentOS 7系统,推荐和默认的收拾xfs格式的文件系统。

我们使用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选项强行覆盖,例如: mkfs -t xfs -f /dev/sda2 ;

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

复制代码
[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
复制代码

至此格式化分区完成;

七、挂载分区

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

[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

至此挂载分区已完成;

原文链接:https://www.centoschina.cn/course/config-centos/10336.html
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章