linux中磁盘分区fdisk,管理磁盘分区之fdisk详解

linux中磁盘分区fdisk,管理磁盘分区之fdisk详解Mozatr的不定期更新,处于学习阶段的Mozart,愿不断分享,不断进步。此次分享一个重要的管理分区命令:fdisk,我们一一阐述。(一)分区首先我们了解下什么是分区,分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁盘使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。分区的优点:(1)优化I/O性能(2)实现磁盘空间配额限制增加磁盘空间使用效率(3)…

大家好,欢迎来到IT知识分享网。

Mozatr的不定期更新,处于学习阶段的Mozart,愿不断分享,不断进步。

3c8ce6380daa33c267ccb0e2e66a02de.png

此次分享一个重要的管理分区命令:fdisk ,我们一一阐述。

(一)分区

首先我们了解下什么是分区,分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁盘使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。

分区的优点:

(1)优化I/O性能

(2)实现磁盘空间配额限制增加磁盘空间使用效率

(3)提高修复速度

(4)隔离系统和程序

(5)安装多个OS

(6)采用不同文件系统

(7)防止数据丢失

等等

(二)分区机制

其次在Linux系统中有MBR和GPT两中分区机制,其中MBR的使用比较多,但是有限制。GPT是比MBR更新的一个分区机制。

两者的区别:

MBR(Master Boot Record)主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备。

MBR支持32位和64位系统。

MBR支持分区数量有限。

MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间(有第三方解决方法)。

GPT(GUID Partition Table)全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点。

支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。

向后兼容MBR。

必须在支持uEFI的硬件上才能使用(Intel提出,用于取代BIOS)。

必须使用64位系统。

Mac、Linux系统都能支持GPT分区格式。

Windows 7/8 64bit、Windows Server 2008 64bit支持GPT。

总得来说GPT比MBR更先进,但是MBR的兼容性比GPT要好。

(三)fdisk 分区管理命令

重点接踵而至:接下来我们对fdisk命令管理磁盘进行详解:

fdisk是对基于MBR机制分区的管理磁盘命令

(1)fdisk -l [-u -c …] [disk]查看磁盘分区情况

CentOS6版本下:

[root@centos6 ~]# fdisk -l /dev/sda #默认以nondos模式列出磁盘情况

Disk /dev/sda: 214.7 GB, 214748364800 bytes #磁盘总大小

255 heads, 63 sectors/track, 26108 cylinders #磁盘“三围”,heads 磁头数 sectors/track 扇区/每磁道 cylinders 柱面数

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

Disk identifier: 0x0004b712

Device Boot Start End Blocks Id System

/dev/sda1 * 1 131 1048576 83 Linux

Partition 1 does not end on cylinder boundary. #提示分区1没有在柱面边界结束 (nondos模式与dos模式的区别处)

/dev/sda2 131 6658 52428800 83 Linux

/dev/sda3 6658 13185 52428800 83 Linux

/dev/sda4 13185 26109 103808000 5 Extended

/dev/sda5 13186 13447 2097152 82 Linux swap / Solaris

#具体的分区情况,以柱面为分割

[root@centos6 ~]# fdisk -lc /dev/sda #以dos模式列出

………

Device Boot Start End Blocks Id System

/dev/sda1 * 1 131 1048576 83 Linux

/dev/sda2 131 6658 52428800 83 Linux

/dev/sda3 6658 13185 52428800 83 Linux

/dev/sda4 13185 26109 103808000 5 Extended

/dev/sda5 13186 13447 2097152 82 Linux swap / Solaris

[root@centos6 ~]# fdisk -lu /dev/sda #具体分区情况以字节列出

Disk /dev/sda: 214.7 GB, 214748364800 bytes

255 heads, 63 sectors/track, 26108 cylinders, total 419430400 sectors #额外显示柱面总数

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0004b712

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 2099200 106956799 52428800 83 Linux

/dev/sda3 106956800 211814399 52428800 83 Linux

/dev/sda4 211814400 419430399 103808000 5 Extended

/dev/sda5 211818496 216012799 2097152 82 Linux swap / Solaris

CentOS7版本下:

[root@localhost ~]#fdisk -l /dev/sda #默认nondos模式列出磁盘情况,具体内容与CentOS6相似,具体分区情况以字节为分割

…….

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 1953791 975872 83 Linux

/dev/sda2 1953792 99608575 48827392 83 Linux

[root@localhost ~]#fdisk -l -c=dos /dev/sda #以dos模式列出磁盘情况

……

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 1953791 975872 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 1953792 99608575 48827392 83 Linux

……..

[root@localhost ~]#fdisk -l -c=dos -u=cylinder /dev/sda #具体分区情况以柱面为分割列出

Device Boot Start End Blocks Id System

/dev/sda1 * 1 122 975872 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 122 6201 48827392 83 Linux

补充知识:对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd等,

如果还有IDE Raid卡,则依次为:/dev/hde,/dev/hdf,/dev/hdg,/dev/hdh。

对于SCSI硬盘,则设备名依次为/dev/sda,/dev/sdb…等等

(2)fdisk device管理具体分区

(Centos7下)

fdisk device

进入交互模式

常用子命令:

m帮助

n建立新分区

d删除分区

p 预览分区信息

t转换分区类型

a将指定分区设置/取消为活动分区

L/l查看分区类型

o重建分区表

v验证分区表,显示剩余没有被分区划分的扇区数量

g创建GPT格式的分区(不建议使用fdisk创建GPT分区)

q退出不保存

w退出并保存,不保存,所有的修改都不生效

示例:

[root@localhost ~]#fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): p #预览分区信息

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors

Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0xd0fc70a4

Device Boot Start End Blocks Id System

/dev/sdb1 2048 2099199 1048576 83 Linux

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

Partition type:

p primary (1 primary, 0 extended, 3 free) #创建主分区

e extended #创建扩展分区

Select (default p): p

Partition number (2-4, default 2): #默认依次创建

First sector (2099200-104857599, default 2099200): #默认从上一分区结束空间开始

Using default value 2099200

Last sector, +sectors or +size{K,M,G} (2099200-104857599, default 104857599): +1G #默认分取剩余全部空间,可以以扇区或指定大小分取空间

Partition 2 of type Linux and of size 1 GiB is set

Command (m for help): p

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0xd0fc70a4

Device Boot Start End Blocks Id System

/dev/sdb1 2048 2099199 1048576 83 Linux

/dev/sdb2 2099200 4196351 1048576 83 Linux

Command (m for help): w #保存并退出

The partition table has been altered! #显示分区表已经修改

Calling ioctl() to re-read partition table. #显示分区情况已经同步到磁盘,分区完成。

Syncing disks.

fdisk命令使用注意事项:

(1)fdisk命令只有root用户权限才能够运行;

(2)使用fdisk -l可以实时列出所有安装的磁盘及其分区信息;

(3)使用fdisk /dev/sdb可以对目标磁盘进行交互式分区操作;

(4)查看分区实时更新信息:cat /proc/partitions

(5)管理分区之后需要使用partprobe(CentOS7)命令让内核更新分区信息,否则需要重启才能识别新的分区或者参看(6);(CentOS6中partprobe命令存在bug)

(6)通知内核重新读取硬盘分区表(不用重启)(CentOS6/7通用)

新增分区用

partx -a DEVICE

删除分区用

partx -d –nr M-N DEVICE

示例:当对系统所在磁盘进行添加删除分区时,会提示:

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks. #无法同步分区表

此时,可以选择重启电脑或者进行如下操作(CentOS6/7通用):

对于添加分区:

[root@localhost ~]#partx -a /dev/sda #告诉内核当前磁盘分区情况

#同步完成

对于删除分区:

[root@localhost ~]#partx -d –nr n /dev/sda #n:删除的分区号 支持范围更新n-m

fdisk命令到此已全部介绍完毕,以上示例均亲测有效,不足之处请大家多多谅解,同时欢迎大佬指教。

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

PS:博文写到最后,只想说一句话:第一次感觉英语这么有用!!!

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/16030.html

(0)
上一篇 2024-02-12 08:00
下一篇 2024-02-12 14:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信