linux中fdisk管理分区

1、fdisk是什么?

fdisk进行硬盘分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即MasterBootRecord,MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现。用一个形象的比喻,分区就好比在一张白纸上画一个大方框。而格式化好比在方框里打上格子。安装各种软件就好比在格子里写上字。分区和格式化就相当于为安装软件打基础,实际上它们为电脑在硬盘上存储数据起到标记定位的作用。

2、关于硬盘分区的介绍

硬盘的分区由主分区、扩展分区和逻辑分区组成;
主分区(包括扩展分区)的最大个数是四个;其中扩展分区也算一个主分区;
扩展分区可以继续划分为更多的逻辑分区;
所以主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的;

3、 通过fdisk -l查看机器挂载的硬盘个数,及分区情况

[root@ localhost ~]# fdisk -l

Disk /dev/sda: 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: 0x00042d23

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26         124      786432   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             124        2611    19979264   83  Linux

4、 使用fdisk对硬盘进行分区操作

命令格式:fdisk 设备

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

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition                    # 删除一个分区
   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        # 改变分区类型,id/system值
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit          # 保存分区表,退出
   x   extra functionality (experts only)    # 扩展功能,专家模式

1)列出当前操作磁盘分区情况,p

Command (m for help): p

Disk /dev/sda: 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: 0x00042d23

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26         124      786432   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             124        2611    19979264   83  Linux

2) 删除一个分区,d

Command (m for help): d               # 删除分区
Partition number (1-4): 4             # 指定要删除的分区编号,这里要删除sda4
Command (m for help): p               # 再查看一下硬盘分区情况,看是否删除了?
# 如果不小心删错了,不要紧张,用q不保存退出;千万不要用w(write)

3)增加一个分区,n

Command (m for help): n                 # 增加一个分区
Command action
e extended                              # 扩展分区
p primary partition (1-4)               # 主分区
e                                       # 此处选择扩展分区,e,选择p为主分区
Partition number (1-4): 3               # 编号,此处为sda3
First cylinder (12404-31108, default 12404):   # 开始cylinder值,就是Start值,默认即可
Using default value 12404
Last cylinder or +size or +sizeM or +sizeK (12404-31108, default 31108): +500M   # 分区大小,此处为500M;
# 选默认则分配所有剩余空间
Command (m for help): w                        # 写入,保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks

# 创建扩展分区后,可以新建逻辑分区
Command (m for help): n
Command action
l logical (5 or over)                # l,逻辑分区
p primary partition (1-4)
l
First cylinder (12405-27905, default 12405):
Using default value 12405
Last cylinder or +size or +sizeM or +sizeK (12405-27905, default 27905): +200M

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

4)指定分区类型,t

Command (m for help): t           # 指定分区类型,t
Partition number (1-4): 3         # 要改变那个分区,这里选择sda3
Hex code (type L to list codes): l  # 列出分区类型的id

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1

Hex code (type L to list codes): 7 # 此处选择ntfs类型“7 HPFS/NTFS”
Changed system type of partition 5 to 7 (HPFS/NTFS)

Command (m for help): w           # 写入,保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

5、对分区进行格式化操作

[root@localhost ~]# mkfs.ext3 /dev/sda1    # 格式化成ext3
[root@localhost ~]# mkfs.ext2 /dev/sda1    # 格式化成ext2
[root@localhost ~]# mkfs.vfat /dev/sda1    # 格式化成FAT32 

实验

1、添加了一块20G的硬盘

在这里插入图片描述

2、对新添加的20G的分区,分成一个主分区5G

三个主分区,一个逻辑分区

[root@ localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3
[root@ localhost ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   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)

Command (m for help):

具体的创建分区步骤如下:

Command (m for help): p       # 打印分区表
Command (m for help): n       # 新建一个分区
Partition type:
   p   primary (2 primary, 0 extended, 2 free)    p:主分区
   e   extended                         e:扩展分区
Select (default p):           # 直接默认回车
Using default response p
Partition number (1,4, default 1):   # 直接默认回车
First sector (1230848-41943039, default 1230848):   # 直接默认 回车
Using default value 1230848
Last sector, +sectors or +size{K,M,G} (1230848-41943039, default 41943039):  +5G  # 输入分区大小
Partition 3 of type Linux and of size 1 GiB is set
Command (m for help): w     # 保存退出

查看是否成功:

[root@ localhost ~]# ll /dev/sd*                 # 查看分区是否成功
brw-rw----. 1 root disk 8,  0 2月  26 13:53 /dev/sda
brw-rw----. 1 root disk 8,  1 2月  26 13:53 /dev/sda1
brw-rw----. 1 root disk 8,  2 2月  26 13:53 /dev/sda2
brw-rw----. 1 root disk 8, 16 2月  26 14:02 /dev/sdb
brw-rw----. 1 root disk 8, 17 2月  26 14:02 /dev/sdb1
# 如果查看完,没有,我们需要获取新的分区列表
[root@ localhost ~]# partprobe /dev/sdb

格式化:
centos7 : 文件系统:XFS
centos6: 文件系统: ext4

centos7
[root@ localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, 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
[root@ localhost ~]# mkdir /sdb1
[root@ localhost ~]# mount  /dev/sdb1  /sdb1

查看是否已经负载

[root@ localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
/dev/mapper/centos-root   17G  4.7G   13G   28% /
/dev/sda1               1014M  219M  796M   22% /boot
/dev/sdb1                5.0G   33M  5.0G    1% /sdb1

问题: 如果出现以下报错的原因是什么?

[root@ localhost ~]# umount /sdb1
umount: /sdb1:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)

问题原因: 占用的当前目录
解决方案:
1) 退出当前即可

开机自动挂载方案:

[root@ localhost ~]# vim /etc/fstab
/dev/sdb1 /sdb1 xfs defaults 0 0

/dev/sdb1 /sdb1 xfs defaults 0 0
# 要挂载的分区设备 挂载点 文件系统类型 挂载选项 是否备份 是否检测

测试:

方法1:使用umount挂载

1)卸载/sdb1

[root@ localhost ~]# umount /sdb1

2)自动挂载

[root@ localhost ~]# mount -a    # 自动挂载
[root@ localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
/dev/sda1               1014M  219M  796M   22% /boo
/dev/sdb1                5.0G   33M  5.0G    1% /sdb1
# 如果不用mount -a 直接重启一样可以自动挂载,所以叫开机自动挂载

方法2: 使用UUID挂载
1) 如何查看UUID

[root@ localhost ~]# blkid
/dev/mapper/centos-root: UUID="c3745653-7c33-4fb4-beff-49358c2a4ebc" TYPE="xfs" 
/dev/sda2: UUID="uqpnLB-sEbq-7IoX-k9bw-Lr9C-nnPS-ZPQQmc" TYPE="LVM2_member" 
/dev/sda1: UUID="b5ac64e4-6d13-4bd7-b0dc-380931e688a9" TYPE="xfs" 
/dev/sdb1: UUID="015b0dae-1e2c-46db-89e7-6b660ae36175" TYPE="xfs" 
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-swap: UUID="dd9fc6d6-1beb-4eac-8189-e73c841d58a4" TYPE="swap"

2)挂载方式

[root@ localhost ~]# echo "UUID=015b0dae-1e2c-46db-89e7-6b660ae36175  /sb1 xfs defaults  0 0 " >> /etc/fstab


# 第四列:
关于/etc/fstab文件里,第四列文件系统参数
Async /sync : 设置是否为同步方式运行,默认async
auto/noauto : 当执行mount -a的时候,此文件被主动挂载,默认auto
rw/ro : 是否以只读 或者读写方式挂载
exec/noexec: 限制此文件系统是否能够进行执行操作
defaults : 同时具有以上参数的默认参数设置功能,默认参数设置samba nfs

# 第五列: 是否进行备份, 通常只有0或者1
0: 代表不要做备份
1 : 代表每天进行备份
2: 代表不定期的进行操作
发布了41 篇原创文章 · 获赞 35 · 访问量 3631

猜你喜欢

转载自blog.csdn.net/chen_jimo_c/article/details/104522091