加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

[10分钟Linux]-Linux大分区利器parted

发布时间:2022-11-19 11:30:57 所属栏目:Linux 来源:
导读:  多数情况下,我们可以使用fdisk进行分区,但是fdisk工具对分区的大小有限制,它只能划分小于2T的硬盘。但是现在的磁盘空间很多都已经是远远大于2T了,甚至达到2.5T和3T,那要怎么办?可以通过Parted实现对GPT磁盘
  多数情况下,我们可以使用fdisk进行分区,但是fdisk工具对分区的大小有限制,它只能划分小于2T的硬盘。但是现在的磁盘空间很多都已经是远远大于2T了,甚至达到2.5T和3T,那要怎么办?可以通过Parted实现对GPT磁盘进行分区操作。
 
  1.什么是GPT
 
  MBR是众所周知的磁盘分区表方案,就是将分区信息保存到磁盘的第一个扇区(MBR扇区)中的64个字节中,每个分区项占用16个字节,这16个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)等内容。由于MBR扇区只有64个字节用于分区表,所以只能记录4个分区的信息。这就是硬盘主分区数目不能超过4个的原因。后来为了支持更多的分区,引入了扩展分区及逻辑分区的概念。但每个分区项仍用16个字节存储。
 
  另外最关键的是MBR分区方案无法支持超过2TB容量的磁盘。因为这一方案用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。磁盘容量超过2TB以后,分区的起始位置也就无法表示了。在硬盘容量突飞猛进的今天,2TB的限制将很快被突破。由此可见,MBR分区方案已经无法满足需要了。
 
  关于GPT
 
  GUID分区表(简称GPT。使用GUID分区表的磁盘称为GPT磁盘)是源自EFI标准的一种较新的磁盘分区表结构的标准。与传统使用的主引导记录(MBR)分区方案相比,GPT提供了更加灵活的磁盘分区机制。它具有如下优点:
 
  1.支持2TB以上的大硬盘。
 
  2.每个磁盘的分区个数几乎没有限制。为什么说“几乎”呢?是因为Windows系统最多只允许划分128个分区。不过也完全够用了。
 
  3.分区大小几乎没有限制。又是一个“几乎”。因为它用64位的整数表示扇区号。夸张一点说,一个64位整数能代表的分区大小已经是个“天文数字”了,若干年内你都无法见到这样大小的硬盘,更不用说分区了。
 
  4.分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,可以通过另一份恢复。
 
  5.每个分区可以有一个名称(不同于卷标)。
 
  2.分区管理:parted
 
  Parted 具有丰富的功能,它除了能够进行分区的添加、删除等常见操作外,还可以进行移动分区、创建文件系统、调整文件系统大小、复制文件系统等操作。接下来着重介绍分区的添加、删除等常见操作。
 
  parted 同时还支持 fdisk 所不支持的 GUID分区表(GUID Partition Table), 这在IA64平台上管理磁盘时非常有用。
 
  必须安装了 parted 软件包才能使用 parted 工具。如果你的系统没有安装,请使用rpm或者是yum先安装。
 
  parted的语法
 
  parted 有两种运行模式:命令行模式和交互模式。
 
  parted 与 fdisk 的交互模式不同,在 parted 的交互模式下执行命令,一旦按回车键确认,命令就马上执行,对磁盘的更改就立刻生效。
 
  parted 命令的常用格式是:
 
  (1)# parted [选项]
 
  (2)# parted [选项] []
 
  格式(1)用于进入parted 的交互模式,在该模式下输入 parted 的子命令对指定的硬盘进行分区等操
 
  作。quit 命令用于退出交互模式。
 
  格式(2)直接在命令行方式下对指定的硬盘进行分区等操作。
 
  其中常用的选项为:
 
  -h, ––help — 显示求助信息
 
  -i, ––interactive — 在必要时提示用户
 
  -l, ––list — 显示所有磁盘设备的分区表
 
  -s, ––script — 从不提示用户
 
  -v, ––version — 显示版本
 
  无论哪种模式,在parted中都可以使用若干子命令,见下表。
 
  命令
 
  说明
 
  help [COMMAND]
 
  打印命令的帮助信息,或指定命令的帮助信息。
 
  print [free|NUMBER|all]
 
  显示分区表, 指定编号的分区, 或所有设备的分区表。
 
  mkpart PART-TYPE [FSTYPE]
 
  START END
 
  创建新分区。PART-TYPE 是以下类型之一:primary(主分区)、extended(扩展分区)、logical(逻辑分区)。START 和 END 是新分区开始和结束的具体位置。
 
  rm NUMBER
 
  删除指定编号 NUMBER 的分区。
 
  set NUMBER FLAG STATE
 
  对指定编号 NUMBER 的分区设置分区标记 FLAG。对于 PC 常用的 msdos 分区表来说,分区标记 FLAG 可有如下取值:”boot”(引导), “hidden”(隐藏), “raid”(软RAID磁盘阵), “lvm”(逻辑卷), “lba” (LBA,Logic Block Addressing模式)。 状态STATE 的取值是:on 或 off 。
 
  unit UNIT
 
  设置默认输出时表示磁盘大小的单位为 UNIT,UNIT 的常用取值可以为:‘MB’、‘GB’、‘%’(占整个磁盘设备的百分之多少)、‘compact’(人类易读方式,类似于 df 命令中 -h 参数的作用)、‘s’(扇区)、‘cyl’ (柱面)、‘chs’ (柱面cylinders:磁头 heads:扇区 sectors 的地址) 。
 
  mkfs NUMBER FS-TYPE
 
  对指定编号 NUMBER 的分区创建指定类型 FS-TYPE 的文件系统。
 
  mkpartfs PART-TYPE FSTYPE
 
  START END
 
  创建新分区同时创建文件系统。FS-TYPE 是以下类型之一:ext2、fat16、fat32、linuxswap、NTFS、reiserfs、ufs 等。
 
  cp [FROM-DEVICE]
 
  FROM-NUMBER TONUMBER
 
  将分区 FROM-NUMBER 上的文件系统完整地复制到分区TO-NUMBER 中,作为可选项还可以指定一个来源硬盘的设备名称 FROM-DEVICE,若省略则在当前设备上进行复制。
 
  move NUMBER START END
 
  将指定编号 NUMBER 的分区移动到从 START 开始 END 结束的位置上。注意:(1)只能将分区移动到空闲空间中。(2)虽然分区被移动了,但它的分区编号是不会改变的。
 
  resize NUMBER START END
 
  对指定编号 NUMBER 的分区调整大小。分区的开始位置和结束位置由 START 和 END 决定。
 
  check NUMBER
 
  检查指定编号 NUMBER 分区中的文件系统是否有什么错误。
 
  rescue START END
 
  恢复靠近位置 START 和 END 之间的分区。
 
  mklabel,mktable LABELTYPE
 
  创建一个新的 LABEL-TYPE 类型的空磁盘分区表,对于PC而言 msdos 是常用的 LABELTYPE。若是用 GUID 分区表,LABEL-TYPE 应该为 gpt。
 
  quit
 
  退出分区程序
 
  name NUMBER NAME
 
  为指定编号 NUMBER 的分区命名为 NAME。
 
  select DEVICE
 
  选择另一个设备来配置
 
  查看分区:print
 
  在使用parted /dev/sda 命令进行分区提示符后,可以使用print 命令来查看当前磁盘的分区情况:
 
  # parted
 
  GNU Parted 2.1
 
  Using /dev/sda
 
  Welcome to GNU Parted! Type 'help' to view a
 
  list of commands.
 
  (parted) print
 
  Model: VMware, VMware Virtual S (scsi)
 
  Disk /dev/sda: 344GB ①
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: msdos②
 
  Number Start End Size Type File system Flags③
 
  1 1049kB 525MB 524MB primary ext4 boot
 
  2 525MB 344GB 343GB primary lvm
 
  (parted)
 
  ①显示了磁盘的大小
 
  ②显示了磁盘标签类型
 
  ③ 显示了分区表。在分区表中,Number标签是分区号码。例如,次要号码为1 的分区和 /dev/sda1 相对。Start(开始)和 End(结束)值以MB 为单位。Type(类型)是 primary、extended、logical 中的一个。Filesystem(文件系统)是文件系统的类型,它可以是 ext2、ext3、FAT、hfs、jfs、linux-swap、ntfs、reiserfs、hp-ufs、sun-ufs 或 xfs 之一。Flags(标志)列列出了分区被设置的标志。可用的标志有:boot、root、swap、hidden、raid、lvm 或 lba。
 
  选择设备:select
 
  在parted 命令提示符中,如果想对另一块磁盘进行操作,首先使用 select 命令,再紧跟设备名,如 /dev/sdb。然后,你便可以查看或配置它的分区表:
 
  (parted) select /dev/sdb
 
  Using /dev/sdb
 
  (parted) print
 
  Model: VMware, VMware Virtual S (scsi)
 
  Disk /dev/sdb: 3299GB
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: msdos
 
  Number Start End Size Type File system Flags
 
  交互式创建分区:mkpart
 
  当你查看分区资料时,fdisk会先显示下面的信息,这些是该磁盘的基本信息:
 
  (parted) mkpart ①
 
  Partition type? primary/extended? p②
 
  File system type? [ext2]?③
 
  Start? 0 ④
 
  End? 1024 ⑤
 
  Warning: The resulting partition is not properly aligned for best performance.
 
  Ignore/Cancel? i
 
  (parted) print ⑥
 
  Model: VMware, VMware Virtual S (scsi)
 
  Disk /dev/sdb: 3299GB
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: msdos
 
  Number Start End Size Type File system Flags
 
  1 512B 1024MB 1024MB primary
 
  ① 创建分区
 
  ② 输入 p 表示创建主分区
 
  ③ 文件系统类型选择默认的 ext2,直接回车
 
  ④ 输入 0 表示从磁盘开始处创建
 
  ⑤ 输入1024代表1个G。
 
  ⑥ 显示当前分区表。
 
  非交互式创建分区
 
  例如,要在某个硬盘驱动器上从 1024 MB 到 2048 MB 间创建一个文件系统为 ext2 的主分区,键入以下命令:
 
  (parted) mkpart primary ext3 1024 2048
 
  (parted) print
 
  Model: VMware, VMware Virtual S (scsi)
 
  Disk /dev/sdb: 3299GB
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: msdos
 
  Number Start End Size Type File system Flags
 
  1 512B 1024MB 1024MB primary
 
  2 1024MB 2048MB 1023MB primary
 
  win7 分区工具 合并分区_linux分区工具_linux 图形分区工具
 
  如果使用 mkpartfs 命令,分区创建后文件系统也会被创建。然而linux分区工具,parted 不支持创建 ext3 文件系统。因此,如果想创建一个 ext3 文件系统,请使用 mkpart,然后使用稍后会说明的 mkfs 命令来创建文件系统。mkpartfs 可以在 linux-swap文件系统类型上使用。
 
  只要一按[Enter]键,改变就会发生,因此在执行前请检查一下命令。
 
  创建了分区后,使用 print 命令来确认所建分区在分区表中,并具备正确的分区类型、文件系统类型和大小。 你还需要记住新分区的次要号码,这样你才可以给它注以标签。你应该查看/proc/partitions 文件的输出来确定内核能够识别这个新分区。
 
  删除分区
 
  如果要删除分区,在parted 命令提示,使用rm 命令即可,后面跟上要删除的分区号(次要设备号):
 
  (parted) rm 2
 
  (parted) rm 1
 
  (parted) print
 
  Model: VMware, VMware Virtual S (scsi)
 
  Disk /dev/sdb: 3299GB
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: msdos
 
  Number Start End Size Type File system Flags
 
  上面的rm 2就是删除sdb的第二个分区。
 
  使用parted创建GPT分区
 
  (parted) mklabel①
 
  New disk label type? gpt
 
  Warning: The existing disk label on /dev/sdb
 
  will be destroyed and all data on this disk will
 
  be lost. Do you want to continue?
 
  Yes/No? yes
 
  (parted) p ②
 
  Model: VMware, VMware Virtual S (scsi)
 
  Disk /dev/sdb: 3299GB
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: gpt
 
  Number Start End Size File system Name Flags
 
  (parted) mkpart
 
  Partition name? []? gpt3t③
 
  File system type? [ext2]?④
 
  Start? 0 ⑤
 
  End? -1s ⑥
 
  Warning: You requested a partition from 0.00B to
 
  3299GB.
 
  The closest location we can manage is 17.4kB to
 
  3299GB.
 
  Is this still acceptable to you?
 
  Yes/No? yes
 
  Warning: The resulting partition is not properly
 
  aligned for best performance.
 
  Ignore/Cancel? i
 
  (parted) print ⑦
 
  Model: VMware, VMware Virtual S (scsi)
 
  Disk /dev/sdb: 3299GB
 
  Sector size (logical/physical): 512B/512B
 
  Partition Table: gpt
 
  Number Start End Size File system Name Flags
 
  1 17.4kB 3299GB 3299GB gpt3t
 
  ① 创建磁盘标签。
 
  ② 查看分区状态。
 
  ③指定分区名称
 
  ④指定分区类型
 
  ⑤指定开始位置
 
  ⑥指定结束位置
 
  ⑦显示分区信息
 
  重新划分分区大小
 
  parted 工具可以不必重新分区而该变分区的大小,但是新分区要比旧分区大,而且只支持ext2 文件系统的分区:
 
  (parted) p
 
  Disk geometry for /dev/sda: 0.000-10000.000 megabytes
 
  Disk label type: msdos
 
  Minor Start End Type Filesystem Flags
 
  1 0.031 6997.060 primary ext3 boot
 
  2 6997.061 8024.655 primary linux-swap
 
  3 8024.656 8801.235 primary ext2
 
  (parted) resize 3 8000 9500
 
  上面的例子就是修改/dev/sda3 分区的大小。
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!