在linux中,当我们给系统添加一块新硬盘时,我们是无法使用的,因为他还没有分区和格式化,只有当我们将新硬盘分区并格式化之后,挂载在某个目录下,才能供我们正常使用,接下来我们要学习三种硬盘分区工具,fdisk,gdisk,parted,分别是针对于MBR分区格式GPT分区格式,高级分区工具(可以针对于上面两种进行分区,使用起来也是比较复杂的),关于MBR和GPT请参考硬盘结构基础

fdisk(MBR)

fdisk

-l /dev/sdX 查看硬盘分区信息

-c (centos6) 打开或禁用dos模式

-u  (centos6) 切换显示的单位(扇区/柱面)

-c (centos7) -c=dos -c=nondos

-u  (centos7)  -u=cylinders  -u=sectors

fdisk /dev/sdX  进行分区

m 帮助

n 建立分区

d 删除分区

p 显示分区信息

t 转换分区类型

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

L 查看分区类型

o 重建分区表

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

g 创建GPT格式的分区(centos7)

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

w 退出并保存

[root@CT6 ~]# fdisk -l /dev/sdb                         

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sdb: 536.9 GB,  bytes  -------------------------硬盘大小
heads, sectors/track, cylinders  ------------------------磁头数,每磁道扇区数,柱面数
Units = cylinders of * = bytes  --------------------每柱面大小
Sector size (logical/physical): bytes / bytes  ---------------扇区大小
I/O size (minimum/optimal): bytes / bytes
Disk identifier: 0x00000000  -----------------------------------------未分区磁盘
[root@CT6 ~]# fdisk /dev/sdb   --------------------------磁盘分区

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x52ce01ab.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table will be corrected by w(rite) 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): n   ------------------------------添加一个分区
Command action
e extended
p primary partition (-)
p      ---------------------------------------------添加主分区
Partition number (-): 1  ----------------------------磁盘编号1,即:sdb1
First cylinder (-, default ): -------------------开始位置,不填写,默认就行
Using default value
Last cylinder, +cylinders or +size{K,M,G} (-, default ): +20G -----------填写大小 Command (m for help): p --------------------------------查看刚刚的分区 Disk /dev/sdb: 536.9 GB, bytes
heads, sectors/track, cylinders
Units = cylinders of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk identifier: 0x52ce01ab Device Boot Start End Blocks Id System
/dev/sdb1 + Linux  -----------------创建了一个分区
Command (m for help): l  ------------------查看可用的分区类型

   Empty             NEC DOS           Minix / old Lin bf  Solaris
FAT12 Plan Linux swap / So c1 DRDOS/sec (FAT-
XENIX root 3c PartitionMagic Linux c4 DRDOS/sec (FAT-
XENIX usr Venix OS/ hidden C: c6 DRDOS/sec (FAT-
FAT16 <32M PPC PReP Boot Linux extended c7 Syrinx
Extended SFS NTFS volume set da Non-FS data
FAT16 4d QNX4.x NTFS volume set db CP/M / CTOS / .
HPFS/NTFS 4e QNX4.x 2nd part Linux plaintext de Dell Utility
AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
AIX bootable OnTrack DM Amoeba e1 DOS access
a OS/ Boot Manag OnTrack DM6 Aux Amoeba BBT e3 DOS R/O
b W95 FAT32 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
OPUS Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
Compaq diagnost SpeedStor a9 NetBSD f4 SpeedStor
Hidden FAT16 < GNU HURD or Sys ab Darwin boot f2 DOS secondary
Hidden FAT16 Novell Netware af HFS / HFS+ fb VMware VMFS
Hidden HPFS/NTF Novell Netware b7 BSDI fs fc VMware VMKCORE
AST SmartSleep DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1 Command (m for help):
Command (m for help): w  -----------------------保存并退出
The partition table has been altered! Calling ioctl() to re-read partition table.
Syncing disks.

gdisk(GPT)

gdisk

-l /dev/sdX 查看分区信息

gdisk

(?|m) 帮助

n 建立分区

d 删除分区

c 更改分区名字

    I 显示分区的详细信息

p 显示分区信息

t转换分区类型

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

l 查看分区类型

o 重建分区表

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

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

w 退出并保存

gdisk时用来创建GPT分区的,我们可以看到,gdisk和fdisk的开头是有些不同的。

[root@CT6 ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8. Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: present Found valid GPT with corrupt MBR; using GPT and will write new
protective MBR on save. Command (? for help):

一个GPT分区

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y Command (? for help): p
Disk /dev/sdb: sectors, 500.0 GiB ----------------磁盘大小,显示扇区数
Logical sector size: bytes  ---------------------------扇区大小
Disk identifier (GUID): E072194E-C4DA-449B-9CF9-E5171235E6D3
Partition table holds up to entries
First usable sector is , last usable sector is 1048575966 -------------------第一个有用的扇区在34,最后一个有用的扇区在104857966
Partitions will be aligned on -sector boundaries
Total free space is sectors (500.0 GiB) Number Start (sector) End (sector) Size Code Name Command (? for help):

更改磁盘的类型

Command (? for help): t  ------------------------------------------更改磁盘类型
Using
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = ): 8e00
Changed type of partition to 'Linux LVM'  -------------------------更改为"Linux LVM" Command (? for help): p
Disk /dev/sdb: sectors, 500.0 GiB
Logical sector size: bytes
Disk identifier (GUID): E072194E-C4DA-449B-9CF9-E5171235E6D3
Partition table holds up to entries
First usable sector is , last usable sector is
Partitions will be aligned on -sector boundaries
Total free space is sectors (400.0 GiB) Number Start (sector) End (sector) Size Code Name
100.0 GiB 8E00 Linux LVM ------------------------ 改过了 Command (? for help):

当我们查看磁盘的时候,我们首先要看磁盘是那种分区格式的,如果是MBR分区格式,我们最好使用fdisk –l,要是为GPT分区格式的硬盘,我们就使用gdisk –l来查看。因为fdisk查看GPT格式的磁盘最大能看到2T,再多的磁盘分区就无法查看,还会出错。

parted(高级分区工具)

parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小。作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型,但是,它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。

parted

-h 显示帮助信息

-l 显示磁盘信息

-s 脚本模式,不提示用户

-v 显示版本号

[root@CT6 ~]# parted -h
Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
Apply COMMANDs with PARAMETERS to DEVICE. If no COMMAND(s) are given, run in
interactive mode. OPTIONs:
-h, --help displays this help message
-l, --list lists partition layout on all block devices
-m, --machine displays machine parseable output
-s, --script never prompts for user intervention
-v, --version displays the version
-a, --align=[none|cyl|min|opt] alignment for new partitions COMMANDs:
align-check TYPE N check partition N for TYPE(min|opt)
alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
  ... ...
[root@CT6 ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos Number Start End Size Type File system Flags
1049kB 1075MB 1074MB primary ext4 boot
1075MB .8GB .7GB primary ext4
.8GB 108GB .7GB primary ext4
108GB 215GB 106GB extended
108GB 113GB 4295MB logical linux-swap(v1)
113GB 134GB .5GB logical

parted /dev/sdX 分区

mklabel label_type 设置分区格式(MBR,GPT)

mkpart part-type [fs-type] start end(单位Mb)设置分区

print 查看分区信息

help [command] 查看命令[command]如何使用

rm num 删除一个分区

set num flag status 设置flag(boot,root,swap)状态(on,off)

quit 退出

开始分区

[root@CT6 ~]# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

查看帮助

(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
help [COMMAND] print general help, or help on COMMAND  --------------------查看命令如何使用
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)  ------------------设置磁盘类型
mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER
mkpart PART-TYPE [FS-TYPE] START END make a partition  -------------------------------------------磁盘分区
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
move NUMBER START END move partition NUMBER
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, --------------查看分区
free space, all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resize NUMBER START END resize partition NUMBER and its file system
rm NUMBER delete partition NUMBER  -----------------------------------删除分区
select DEVICE choose the device to edit
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright
information of GNU Parted
(parted)
(parted) help mklabel
mklabel,mktable LABEL-TYPE create a new disklabel (partition table) LABEL-TYPE is one of: aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop --------------可以设置的类型
(parted)
(parted) mklabel gpt  ------------------------------设置GPT分区
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 537GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt Number Start End Size File system Name Flags (parted)
(parted) help mkpart           ----------------------------------查看分区命令如何用
mkpart PART-TYPE [FS-TYPE] START END make a partition PART-TYPE is one of: primary, logical, extended
FS-TYPE is one of: ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp,
linux-swap(v1), linux-swap(v0), ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1,
asfs, amufs5, amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5,
affs4, affs3, affs2, affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)
START and END are disk locations, such as 4GB or 10%. Negative values count from
the end of the disk. For example, -1s specifies exactly the last sector. 'mkpart' makes a partition without creating a new file system on the partition.
FS-TYPE may be specified to set an appropriate partition ID.
(parted) mkpart primary 200G   -------------------------------------------------设置分区
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? ignore
(parted) print -----------------------------------------------------查看分区
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 537GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt Number Start End Size File system Name Flags
.4kB 200GB 200GB primary    -------------------------------分区大小 (parted) quit
Information: You may need to update /etc/fstab.

这个命令是一个实时生效的命令,当我们分完一个区后,不用结束就可以直接生效,不像fdisk和gdisk那样需要退出后才保存生效。

lsblk

列出块设备

lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等

如:

lsblk /dev/sdb

[root@CT6 ~]# lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda : 200G disk
├─sda1 : 1G part /boot
├─sda2 : 50G part /
├─sda3 : 50G part /app
├─sda4 : 1K part
├─sda5 : 4G part [SWAP]
└─sda6 : 20G part

查看内核是否已经识别新的分区:

cat
/proc/partations

[root@CT6 ~]# cat /proc/partitions
major minor #blocks name sda
sda1
sda2
sda3
sda4
sda5
sda6
sdb
sdb1

我们在原硬盘未使用的空间进行分区后,在物理设备上已经完成了,使用fdisk -l可以查看到,但是内存信息中并没有新的分区信息,此时我们需要手动更新分区表,在centOS6中使用partx,在5 或者7中可以使用partprobe(这个在6中有BUG)

partx -a /dev/sda 更新内存中的磁盘分区表信息

partx -d --nr 6 /dev/sda 删除掉在内存中的已经删除的第六块分区的信息

刚开始我们就五个分区,无论是内存中的信息,还是物理硬盘

[root@CT6 ~]# lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda : 200G disk
├─sda1 : 1G part /boot
├─sda2 : 50G part /
├─sda3 : 50G part /app
├─sda4 : 1K part
└─sda5 : 4G part [SWAP]
[root@CT6 ~]# fdisk -l /dev/sda | grep "^/dev/sda*"
/dev/sda1 * Linux
/dev/sda2 Linux
/dev/sda3 Linux
/dev/sda4 Extended
/dev/sda5 Linux swap / Solaris

接下来,我们创建一个分区

Command (m for help): n
First cylinder (-, default ):
Last cylinder, +cylinders or +size{K,M,G} (-, default ): +10G Command (m for help): p Disk /dev/sda: 214.7 GB, bytes
heads, sectors/track, cylinders
Units = cylinders of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk identifier: 0x0007a903 Device Boot Start End Blocks Id System
/dev/sda1 * Linux
/dev/sda2 Linux
/dev/sda3 Linux
/dev/sda4 Extended
/dev/sda5 Linux swap / Solaris
/dev/sda6 + Linux Command (m for help): w
The partition table has been altered! Calling ioctl() to re-read partition table. 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.

我们在分完区以后,如上,显示的红色字体,我们刚刚分好的区并没有被读入内存当中,也就是说我们fdisk可以读到,但是lsblk却无法读到

[root@CT6 ~]# fdisk -l /dev/sda | grep "^/dev/sda.*"
/dev/sda1 * Linux
/dev/sda2 Linux
/dev/sda3 Linux
/dev/sda4 Extended
/dev/sda5 Linux swap / Solaris
/dev/sda6 14000 15305 10490444+ 83 Linux
[root@CT6 ~]# lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda : 200G disk
├─sda1 : 1G part /boot
├─sda2 : 50G part /
├─sda3 : 50G part /app
├─sda4 : 1K part
└─sda5 : 4G part [SWAP]

接下来我们更新一下分区信息

[root@CT6 ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition
BLKPG: Device or resource busy
error adding partition
BLKPG: Device or resource busy
error adding partition
BLKPG: Device or resource busy
error adding partition
BLKPG: Device or resource busy
error adding partition
[root@CT6 ~]# lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda : 200G disk
├─sda1 : 1G part /boot
├─sda2 : 50G part /
├─sda3 : 50G part /app
├─sda4 : 1K part
├─sda5 : 4G part [SWAP]
└─sda6 8:6 0 10G 0 part

分区工具fdisk,gdisk,parted的更多相关文章

  1. linux下(fdisk,gdisk,parted)三种分区工具比较

    1 2种分区结构简介 MBR分区 硬盘主引导记录MBR由4个部分组成 主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序. 出错信息数据区,偏移地址0089H- ...

  2. linux分区工具fdisk的使用

    fdisk是linux下的一块分区工具,使用简单方便,由于是对系统进行修改,需要root权限. 常用参数如下: fdisk  -l : 列出所有的硬盘信息 直接传入设备名称可进入对该硬盘分区.例如,f ...

  3. 另一个分区工具GNU的parted[转自vbird]

    利用 GNU 的 parted 进行分割行为 虽然你可以使用 fdisk 很快速的将你的分割槽切割妥当,不过 fdisk 却无法支持到高于 2TB 以上的分割槽! 此时就得需要 parted 来处理了 ...

  4. (转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍

    场景:最近在学习Linux的基础知识,不可避免的设计到Linux的磁盘分区,以前做过总结,但是那种总结就是复制别人的文章,总结完就不想看第二遍,所以很容易就遗忘了!清楚明白的理解分区后,我就可以在自己 ...

  5. Linux 入门记录:七、fdisk 分区工具

    一.fdisk分区工具 fdisk 是来自 IBM 的老牌分区工具,支持绝大多数操作系统,几乎所有的 Linux 发行版都装有 fdisk,包括在 Linux 的 resuce 模式下依然能够使用. ...

  6. fdisk 和 parted 分区工具

    fdisk 和 parted: fdisk 是用来对 Linux 下的 MBR 分区进行操作的一款分区工具, 由于 MBR 的设计缺陷导致 MBR 不能处理大于 2TB 的硬盘, 并且主分区个数不能超 ...

  7. linux 大容量磁盘分区工具parted

    1. Msdos和Gpt的区别 fdisk  :只能分msdos分区parted :可以分msdos和gpt分区 2. MSDOS特点最大支持2TB卷大小.每个磁盘最多只能有4个主分区(或3个主分区, ...

  8. parted分区工具用法

    parted分区工具用法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 随着生产环境中数据量的增大,我们对硬盘的容量也有很大的需求,当硬盘的容量大于2T(工业上的最大磁盘2.2TB ...

  9. 分区工具parted的详解及常用分区使用方法【转】

    来源:http://blog.51cto.com/zhangmingqian/1068779 分区工具parted的详解及常用分区使用方法 一.         parted的用途及说明 概括使用说明 ...

随机推荐

  1. 实现Echarts折线图的虚实转换

    需求:医院的体温单,在统计体温时,对于正常情况下统计的体温数据,需要显示实线:对于进行物理降温后统计的体温数据,需要显示虚线. 现有的体温单是运用 Echarts 折线图,统一用实线显示.因此在这基础 ...

  2. 【Java学习笔记之二十四】对Java多态性的一点理解

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  3. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  4. Ecplise插件安装方法

    eclipse3.5以前: 安装Eclipse插件无非两种方式: 1.直接copy插件到features/plugins目录 2.在links目录下创建链接文件 eclipse3.5及以后版本: 1. ...

  5. Basic Skill

    Get current script path script=$() Check for root user ] ; then echo "current user is not root ...

  6. Mybatis 插入数据并返回刚刚插入的数据id

    1.在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名,而不是表格的字段名. 2.Mybat ...

  7. SpringMVC的@RequestParam的解释

    自SpringMVC4.2之后,RequestParam内部有4个参数: 1.String name 2.String value 3.boolean required 4.String defaul ...

  8. Tomcat启动:Container StandardContext[] has not been started

    Container StandardContext[] has not been started\root.xml 初始化失败,检查数据源配置

  9. jenkins到底如何拉取代码 如何部署的

    tips:jenkins通过配置,将之前编译.打包.上传.部署到Tomcat中的过程交由jenkins,jenkins通过指定的代码地址url,将代码拉取到其jenkins的安装位置,进行编译.打包和 ...

  10. (转载)Java变量作用域详解

    转载自http://www.cnblogs.com/AlanLee/p/6627949.html 大多数程序设计语言都提供了"作用域"(Scope)的概念. 对于在作用域里定义的名 ...