Linux磁盘概念及其管理工具fdisk

[日期:2016-08-27] 来源:Linux社区  作者:chawan [字体:  ]
 

引言:冯诺依曼体系中的数据存储器就是我们常说的磁盘或硬盘,它是计算机不可缺少的一个组件,下面来看看Linux中磁盘的基础概念及管理工具fdisk

实验环境CentOS7.2

磁盘概念

按磁盘属性分类有机械硬盘跟固态硬盘

(1)机械硬盘:内部真空

磁盘:正反面含有磁性物质的盘片,由一个马达固定所有磁盘转动,固定角速度

每个盘片正反面各有一个磁头,所有磁头固定在一个机械臂上

平均寻道时间:5400rpm, 7200rpm, 10000rpm, 15000rpm转速

track(磁道):每个盘片上出厂格式化

sector(扇区):512bytes单位

cylinder(柱面):不同盘面上同一编号的磁道组合在一起,分区划分按照柱面实现

越靠近较外部分区的柱面组成的分区,越快。Windows上c盘在最外面

(2)固态硬盘

类似与多个并行U盘,工作模式上模拟机械硬盘的机制。

电器设备,速度个人笔记本是原来的3到5倍,读400个iops(io per second)、写200iops


在正式介绍Linux设备文件前需先了解一个概念:MBR

MBR(Master Boot Record):主引导分区,为一个编号为0的512字节的扇区

446bytes:bootloader,引导加载器程序,主引导记录,引导启动操作系统的程序;

64bytes:分区表,每16bytes标识一个分区,一共只能有4个分区

2bytes:表示MBA是否有效;55AA为有效;

注意:

1) 主分区最多四个,扩展分区只能一个

2) 扩展分区不能单独使用,要继续分成逻辑分区,逻辑分区可以由多个

3) 一个分区就是一个独立的文件系统

4) 主分区和扩展分区的标识:1-4;逻辑分区:5+

其在Linux中的创建新磁盘分区会涉及主分区与扩展分区内容


/dev

不管是机械硬盘还是固态硬盘对于Linux看来它都是属于/dev/下的文件

设备文件名

1)磁盘:IDE: /dev/hd[a-z]

SCSI, SATA, USB, SAS: /dev/sd[a-z]

2)分区:/dev/sda#:      /dev/sda1, ...

注意:CentOS 6和7统统将硬盘设备文件标识为/dev/sd[a-z]#

/dev设备文件介绍

1)设备文件:关联至设备的驱动程序;设备的访问入口;

2)设备号:

major:主设备号,区分设备类型;用于标明设备所需要的驱动程序;

minor:次设备号,区分同种类型下的不同的设备;是特定设备的访问入口;

比如/dev/sd# :sd为主设备号,#为次设备号。

引用设备的方式:设备文件名,卷标,UUID


磁盘管理工具fdisk

fdisk

创建查看分区

(1)查看磁盘的分区信息:

命令使用格式:fdisk -l [-u] [device...]:列出指定磁盘设备上的分区情况;

(2)管理分区

命令使用格式:fdisk /dev/sd# :创建,删除,保存磁盘分区配置。

fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘;直到使用w命令保存至磁盘上;

以下命令选项为m中的常用选项:

n:创建新分区        d:删除已有分区

t:修改分区类型      l:查看所有已经ID

w:保存并退出        q:不保存并退出

 m:查看帮助信息      p:显示现有分区信息

命令演示

1、对已使用的磁盘设备,创建新分区,若没有可用空间则自动退出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 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)
命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
No free sectors available
命令(输入 m 获取帮助):

2、对新添加的磁盘创建新分区。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xd391e822 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00036006
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd391e822
 设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux

3、创建扩展分区,及删除已存在分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):
起始 扇区 (2099200-10485759,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-10485759,默认为 10485759):+1G
分区 2 已设置为 Extended 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd391e822
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
扩展分区创建完毕,下面在扩展分区上创建逻辑分区,大家可以看到其标号从5开始
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (2101248-4196351,默认为 2101248):
将使用默认值 2101248
Last 扇区, +扇区 or +size{K,M,G} (2101248-4196351,默认为 4196351):+100M
分区 5 已设置为 Linux 类型,大小设为 100 MiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd391e822
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
/dev/sdb5         2101248     2306047      102400   83  Linux

保存退出后,将逻辑分区删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l
...
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
/dev/sdb5         2101248     2306047      102400   83  Linux
...
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):d
分区号 (1,2,5,默认 5):5
分区 5 已删除
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd391e822
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l
...
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
...

注意在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别

通知内核强制重读磁盘分区表:

查看:cat  /proc/partitions

CentOS 5:partprobe [device]

CentOS 6,7:partx, kpartx

partx -a [device]

kpartx -af [device]

Linux磁盘概念及其管理工具fdisk的更多相关文章

  1. 【one day one linux】linux下的软件包管理工具

    Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...

  2. linux磁盘存储管理基本命令和工具

    1 磁盘在linux表示方法 (1) IDE硬盘:hd[a~z]x,主设备号+次设备号+磁盘分区编号/hd(0-n,y) (2)SCSI硬盘:sd[a~z]x/hd(0-n,y) 注:主设备号可以唯一 ...

  3. Linux 磁盘原理与管理 (分区 挂载)

    目前硬盘与主机系统的联系主要有几种传输介面规格: IDE介面:         IDE介面插槽所使用的排线较宽,每条排线上面可以接两个IDE装置,由於可以接两个装置,那为了判别两个装置的主/从架构, ...

  4. linux的RPM软件包管理工具

    RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...

  5. Linux系统——Ansible批量管理工具

    批量管理工具: (1)ansible 操作简单(适用于500台以下服务器) (2)saltstack 比较复杂(一般适用于1000-4w台服务器) (3)puppet超级复杂 systemctl(统一 ...

  6. Linux常用命令-软件包管理工具-rpm

    命令简介 rpm(RPM Package Manager)是一个强大的命令行驱动的软件包管理工具,用来安装.卸载.校验.查询和更新 Linux 系统上的软件包. 语法格式 rpm [OPTION... ...

  7. Linux Kafka集群管理工具kafka-manager的安装使用

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

  8. Linux磁盘及文件系统管理 2---- 使用fdisk进行磁盘管理

    1 FDISK分区工具 1 fsidk是来自IBM的分区工具,支持绝大多数的操作系统,几乎所有的Linux都装有fdisk 2 fdisk是一个支持MBR的分区工具,如果要使用GPT的话我们无法使用f ...

  9. Linux下安装MySQL管理工具MySQL Administrator和MySQL Query Browser(转载)

    文章来源:http://blog.csdn.net/sunrier/article/details/7572299 Linux下MySQL Administrator和MySQL Query Brow ...

随机推荐

  1. Solidworks实例学习

    1. 扫描绘制 2. 拉伸切除1 3. 拉伸切除2 4. 旋转切除1 5. 旋转切除2 6. 基准面构建 7. 扫描薄壁 8. 放样1 9. 放样2 10. 放样3  

  2. [JSOI2004]平衡点/[BZOJ3680]吊打XXX

    [JSOI2004]平衡点/[BZOJ3680]吊打XXX 题目大意: 有\(n(n\le10000)\)个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.假设绳子 ...

  3. android:ViewHolder模式

    ViewHolder holder = null; if(convertView == null){ convertView = mInflater.inflate(R.layout.xxx null ...

  4. 【POJ 3694】 Network(割边<桥>+LCA)

    [POJ 3694] Network(割边+LCA) Network Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7971 ...

  5. Machine、Swarm、Compose、SocketPlane这些Docker生态圈软件各解决了哪些问题?

    Machine:解决的是操作系统异构安装Docker困难的问题,没有Machine的时候,CentOS是一种,Ubuntu又是一种,AWS又是一种.有了Machine,所有的系统都是一样的安装方式. ...

  6. WPF腾讯视频通话开发

    一.IntPtr.HandleC#中的IntPtr类型称为“平台特定的整数类型”,它们用于本机资源,如窗口句柄. 1.WPF窗口句柄IntPtr wnip = new System.Windows.I ...

  7. 原创:vsphere概念深入系列三:vSphere命令行管理

    假设无法近距离接触物理主机,只能远程命令行管理,. 以下命令行可以起到点作用. 首先需要安装vSphere CLI工具. 启动后界面: 1.查看datastore内容 所有命令行工具都可以加上-ser ...

  8. Flume采集Nginx日志到HDFS

    下载apache-flume-1.7.0-bin.tar.gz,用 tar -zxvf 解压,在/etc/profile文件中增加设置: export FLUME_HOME=/opt/apache-f ...

  9. CucumberPeople 1.3.2 发布

    CucumberPeople 网站: http://alterhu.github.io/CucumberPeople/ This eclipse plugin based on RubyMine ,a ...

  10. PHP 通过带SSL的SMTP 发送邮件的处理

    客户端与SMTP服务器的通讯, 是通过固定的命令以及返回编号完成的. 发送Email, 需要经过的步骤有创建socket (区分带ssl, 还是不带ssl)执行命令, 并检查返回值是否与预期一致, 不 ...