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

it2025-02-17  7

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]

转载于:https://www.cnblogs.com/w-wfy/p/8870585.html

最新回复(0)