Java教程

parted 命令详解

本文主要是介绍parted 命令详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

分区命令parted详解

一、概述

通常我们用的比较多的分区工具是fdisk命令,但由于fdisk只支持MBR分区,所以无法划分大于2T的分区。而parted工具可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区。

GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4 16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT分区方式没有四个主分区的限制,** 最多可达到128个主分区 **。下面我们看下parted命令的用法。

1.语法结构

parted [选项]… [设备 [命令 [参数]…]…]

二、选项

选项	描述
-h	–help 显示此求助信息
-l	–list 列出所有设别的分区信息
-i	–interactive 在必要时,提示用户
-s	–script 从不提示用户
-v	–version 显示版本

三、操作命令

parted交互命令	说 明
check NUMBER	做一次简单的文件系统检测
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER	复制文件系统到另一个分区
help [COMMAND]	显示所有的命令帮助
mklabel,mktable LABEL-TYPE	创建新的磁盘卷标(分区表)
mkfs NUMBER FS-TYPE	在分区上建立文件系统
mkpart PART-TYPE [FS-TYPE] START END	创建一个分区
mkpartfs PART-TYPE FS-TYPE START END	创建分区,并建立文件系统
move NUMBER START END	移动分区
name NUMBER NAME	给分区命名
print [devices|free|list,all|NUMBER]	显示分区表、活动设备、空闲空间、所有分区
quit	退出
rescue START END	修复丢失的分区
resize NUMBER START END	修改分区大小
rm NUMBER	删除分区
select DEVICE	选择需要编辑的设备
set NUMBER FLAG STATE	改变分区标记
toggle [NUMBER [FLAG]]	切换分区表的状态
unit UNIT	设置默认的单位
Version	显示版本

四、交互操作实例:

1、选择分区硬盘

首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdb: ((parted)表示在parted中输入的命令,其他为自动打印的信息)

[root@my-linux ~]# parted /dev/hdb
GNU Parted 1.8.1
Using /dev/hdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

2、创建分区

选择了/dev/hdb作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息):

(parted) mklabel
New disk label type? gpt    (我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)

3、完成分区操作

创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区 的起止位置

(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? xfs
Start? 0           (可以用百分比表示,比如Start? 0% , End? 50%)
End? 500GB

4、验证分区信息

分好区后可以使用print命令打印分区信息,下面是一个print的样例

(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1

5、删除分区示例

如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果

(parted)rm 1               #rm后面使用分区的号码,就是用print打印出来的Number
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags

7、格式化操作

在交互状态下,完成以后我们可以使用quit命令退出parted并使用系统的mkfs命令对分区进行格式化。

[root@my-linux ~]# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/hdb'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/hdb: 3841.0 GB, 3841022206976 bytes
255 heads, 63 sectors/track, 267349 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 267350 2147482623+ ee EFI GPT
[root@my-linux ~]# mkfs.xfs /dev/hdb1
[root@my-linux ~]# mkfs.xfs /dev/hdb2
[root@my-linux ~]# mkdir /data1 /data2
[root@my-linux ~]# mount /dev/hdb1 /data1
[root@my-linux ~]# mount /dev/hdb2 /data2

8、交互创建分区的完整示示例

按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例

(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? xfs
Start? 0
End? 500GB
(parted) mkpart
Partition name? []? dp2
File system type? [ext2]? xfs
Start? 500GB
End? 3841GB
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1
2 500GB 3841GB 1699GB dp2

五、非交互方式

1、创建分区表

parted /dev/sdl mklabel gpt

2、将硬盘所有容量分给主分区

parted /dev/sdl mkpart primary 0% 100%

3、查询磁盘的已有分区

parted /dev/sdl print

4、查询硬盘分区

fdisk -l
or
lsblk

5、格式化分区

mkfs -t xfs /dev/sdl1

6、查询/dev/sdl1的blkid

blkid /dev/sdl1

7、修改/etc/fstab

vi /etc/fstab

编辑/etc/fstab使开机可知道挂载文件系统。

8、挂载文件系统,查询

mount -a
df -h

六、非交互方式示例

创建gpt分区表

[root@my-linux ~]# parted /dev/sdb mklabel gpt
Information: You may need to update /etc/fstab.

划分3个分区

[root@my-linux ~]# parted /dev/sdb mkpart primary 0% 27%
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb mkpart primary 27% 54%
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb mkpart primary 54% 81%
Information: You may need to update /etc/fstab.

打印分区

[root@my-linux ~]# parted /dev/sdb print
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      2097kB  1037GB  1037GB               primary
 2      1037GB  2074GB  1037GB               primary
 3      2074GB  3111GB  1037GB               primary

删除分区
删除分区的命令是parted /dev/sdb rm 1其中最后的数字 1 表示分区编号。

[root@my-linux ~]# parted /dev/sdb rm 1
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb rm 2
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb rm 3
Information: You may need to update /etc/fstab.

[root@my-linux ~]# parted /dev/sdb print        
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

[root@my-linux ~]# 

七、MBR & GPT

MBR:MBR分区表(即主引导记录)大家都很熟悉。所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区

GPT: GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。突破 MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。

这篇关于parted 命令详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!