Linux学习-38-硬盘分区命令fdisk介绍
创始人
2024-01-28 16:59:06
0

10.4 硬盘分区命令fdisk介绍

  • 在安装操作系统的过程中已经对系统硬盘进行了分区,对于新添加了一块硬盘,需要使用 Linux 中的分区命令 fdisk 和 parted进行分区也叫分割硬盘。其中 fdisk 命令较为常用,但不支持大于 2TB 的分区;如果需要支持大于 2TB 的分区,则需要使用 parted 命令,当然 parted 命令也能分配较小的分区。使用 fdisk 命令进行分区格式。

在搭建在虚拟机上的linux挂载时,首先要增加硬盘,然后格式化硬盘,在硬盘上创建分区,创建目录,然后才是挂载。

  • 语法:
#列出系统分区
[root@CncLucZK ~]# fdisk [-l] 装置名称		#-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

注意,千万不要在当前的硬盘上尝试使用 fdisk,这会完整删除整个系统,一定要再找一块硬盘,或者使用虚拟机。

举个例子:列出整个系统内所有分区信息

[root@CncLucZK ~]# fdisk -l
#查询本机可以识别的硬盘和分区
Disk /dev/sda:32.2 GB, 32212254720 bytes
#硬盘文件名和硬盘大小
255 heads, 63 sectors/track, 3916 cylinders
#共255个磁头、63个扇区和3916个柱面
Units = cylinders of 16065 *512 = 8225280 bytes				#柱面大小 = 磁头数 * 扇区 * 单个扇区大小
Sector size (logical/physical): 512 bytes/512 bytes
#每个扇区的大小
I/O size (minimum/optimal): 512 bytes/512 bytes
Disk identifier: 0x0009e098
Device 		Boot 		Start 	End 	Blocks 	ld 	System
/dev/sda1	 * 			1 		26 		204800 	83 	Linux
/dev/sda2 	  		 	26	   281	    2048000 82 Linux swap / Solaris
/dev/sda3 				281 	3917 	29203456 83 Linux
#设备文件名启动分区 起始柱面 终止柱面容量 ID 系统Disk /dev/sdb: 21.5 GB, 21474836480 bytes #第二个硬盘被识别,列出这个硬盘的大小,但是没有可分区。
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes/512 bytes Disk identifier: 0x00000000

磁盘顺序读取时是从一个磁头换到另一个磁头(磁头不用移动位置),而不是由一个磁柱换到另一个磁柱。

  • 使用 “fdisk -l” 查看分区信息,能够看到我们添加的两块硬盘(/dev/sda 和 /dev/sdb)的信息。我们解释一下这些信息,其上半部分态是硬盘的整体状态,/dev/sda 硬盘的总大小是 32.2 GB,共有 3916 个柱面,每个柱面由 255 个磁头读/写数据,每个磁头管理 63 个扇区。每个柱面的大小是 8225280 Bytes,每个扇区的大小是 512 Bytes。
  • 信息的下半部分是分区的信息,共 7 列,含义如下:
    • Device:分区的设备文件名。
    • Boot:是否为启动引导分区,在这里 /dev/sda1 为启动引导分区。
    • Start:起始柱面,代表分区从哪里开始。
    • End:终止柱面,代表分区到哪里结束。
    • Blocks:分区的大小,单位是 KB。
    • id:分区内文件系统的 ID。在 fdisk 命令中,可以 使用 “i” 查看。
    • System:分区内安装的系统是什么。
  • 以硬盘 /dev/vda为例来做练习,命令如下:

注意这里的分区命令是 “fdisk /dev/vda”,这是因为硬盘并没有分区,使用 fdisk 命令的目的就是建立分区。

#找出系统中的根目录所在磁盘,并查阅该硬盘内的相关信息
[root@CncLucZK ~]# df -l /		
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       51539404 8847432  40494728  18% /[root@localhost ~]# fdisk /dev/sda			#不要加上数字,加数字的已经分区完毕
#给/dev/sda分区
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.The old ext4 signature will be removed by a write command.Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x2786972b.Command (m for help): m
#交互界面的等待输入指令的位置,输入 m 得到帮助
Command action
#可用指令
Help:
#在 fdisk 交互界面中输入 m 可以得到帮助,帮助里列出了 fdisk 可以识别的交互命令:DOS (MBR)a   toggle a bootable flag					#设置可引导标记b   edit nested BSD disklabel				#编辑 bsd 磁盘标签c   toggle the dos compatibility flag		#设置 DOS 操作系统兼容标记Genericd   delete a partition						#删除一个分区F   list free unpartitioned spacel   list known partition types				#显示已知的文件系统类型。82 为 Linux swap 分区,83 为 Linux 分区n   add a new partition						#新建分区p   print the partition table				#显示分区列表t   change a partition type					#改变一个分区的系统 IDv   verify the partition table				#验证分区表i   print information about a partitionMiscm   print this menu							#显示帮助菜单u   change display/entry units				#改变显示记录单位x   extra functionality (experts only)		#附加功能(仅专家)ScriptI   load disk layout from sfdisk script fileO   dump disk layout to sfdisk script file	Save & Exitw   write table to disk and exit				#保存退出q   quit without saving changes				#不保存退出Create a new labelg   create a new empty GPT partition table						#建立空白 GPT 分区表G   create a new empty SGI (IRIX) partition table				#建立空白 SGI(IRIX) 分区表o   create a new empty DOS partition table						#建立空白 DOS 分区表s   create a new empty Sun partition table						#新建空白 SUN 磁盘标签
  • 使用 p 可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态。
Command (m for help): p  #显示分区列表,目前磁盘的状态Disk /dev/sdb: 41.1 GB, 41174138880 bytes        <==这个磁盘的文件名与容量
255 heads, 63 sectors/track, 5005 cylinders      <==磁头、扇区与磁柱大小
Units = cylinders of 16065 * 512 = 8225280 bytes <==每个磁柱的大小Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        1288    10241437+  83  Linux
/dev/sda3            1289        1925     5116702+  83  Linux
/dev/sda4            1926        5005    24740100    5  Extended
/dev/sda5            1926        2052     1020096   82  Linux swap / Solaris
# 装置文件名 启动区否 开始磁柱    结束磁柱  1K大小容量 磁盘分区槽内的系统Command (m for help): q				#q不储存离开,w保存离开,需要慎重操作
  • 从fdisk -l命令检测到的还未创建分区的硬盘sdb创建和删除主分区、扩展分区和逻辑分区
[root@localhost ~]# fdisk /dev/sdb			#给/dev/sdb分区
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.The old ext4 signature will be removed by a write command.Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x2786972b.Command (m for help): nCommand actione   extended                //扩展分区p   primary partition (1-4)  //主分区pSelected partition 4#有扩展分区和主分区,逻辑分区在扩展分区中建立。注意到括号中的1-4,最多只能建四个主分区(包括扩展分区)。先建一个主分区:Command (m for help): n				#输入n,新建一个分区;Command actione  extendedp  primary partition (1-4)p #建主分区							  #再输入p,分区类型为主分区(如果想添加扩展分区,就按e);创建一个分区,如果默认敲回车的话他就会创建一个主分区 , 主分区就是使用默认的 MBR-Main Boot Record(主引导记录) 来创建四个主分区 .Partition number (1-4): 1 			#然后输入1,选择分区号(这里注意一下,加上扩展分区,主分区只能有四个,所以只能选择1-4,一般按顺序输入分区号);默认回车就是设置为 1 , 我们也可以设置为 2 或 3 或 4.First cylinder (1-2610, default 1): #提示输入起始扇区,直接回车默认从第一个柱面开始划分或2048开始Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G #输入第一个分区的大小,这里是加了2G,输入+2G(不要忘记+号);此时就是来设置它的结束扇区 , 如果此时直接回车的话就是将这整块硬盘作为一个分区了 ;还有一种方法就是对扇区进行一个计算 , 一个扇区是占 512字节 , 那个1个G的话就需要自己来算1个G有多少个扇区(512字节) 。
#加空间大小,这里有很多种选择:+后面单位可以接M,G,K(记得要大写)表示划分你所加的空间,也可以是柱面数。不管怎样都不能超过该磁盘剩余的空间否则无效。#分区大小选择好后,会包含一个签名,询问是否要移除该签名,如果不移除的话,此时的分区格式就是ntfs,这里我们需要ntfs格式的分区,所以不移除,输入N;Command (m for help): p 			#分好后查看分区信息,刚所做的所有一目了然。Disk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xfaa2aa49Device Boot      Start        End      Blocks  Id  System/dev/sdb1              1        262    2104483+  83  Linux同上所述建立扩展分区:Command (m for help): nCommand actione  extendedp  primary partition (1-4)e #建立扩展分区Partition number (1-4): 4First cylinder (263-2610, default 263):Using default value 263Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610): +4GCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xfaa2aa49Device Boot      Start        End      Blocks  Id  System/dev/sdb1              1        262    2104483+  83  Linux/dev/sdb4            263        785    4200997+  5  Extended扩展分区建好我们就可以在扩展分区建立逻辑分区了Command (m for help): nCommand actionl  logical (5 or over)p  primary partition (1-4)l #建逻辑分区First cylinder (263-785, default 263):Using default value 263Last cylinder, +cylinders or +size{K,M,G} (263-785, default 785): +2GCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xfaa2aa49Device Boot      Start        End      Blocks  Id  System/dev/sdb1              1        262    2104483+  83  Linux/dev/sdb4            263        785    4200997+  5  Extended/dev/sdb5            263        524    2104483+  83  Linux上面显示已经建好一个主分区,一个逻辑分区,但是这些现在还没有生效我们需要保存退出。Command (m for help): w #保存退出The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
  • 内核重新读取新的分区表 , 让Linux内核对sdb硬盘重新读取了一下分区表 .立即生效
[root@CncLucZK ~]# partprobe /dev/sdb
  • 若在虚拟机上面无法立即生效,重启机器。
shutdown -r now
reboot

参考文献:
linux用fdisk创建分区,在Linux下用fdisk创建分区
Linux fdisk命令详解:给硬盘分区

下一篇:Linux学习-39-创建分区parted命令用法

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...