[10分钟Linux]-Linux大分区利器parted
[10分钟Linux]-Linux磁盘管理
多数情况下,我们可以使用fdisk进行分区,但是fdisk工具对分区的大小有限制,它只能划分小于2T的硬盘。但是现在的磁盘空间
与其相忘于江湖,不如点击蓝字关注 [10分钟Linux]-Linux磁盘管理 多数情况下,我们可以使用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 如果使用 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 分区的大小。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |