parted命令详解
帮助选项:
-h, --help 显示此求助信息 -l, --list 列出所有设别的分区信息 -i, --interactive 在必要时,提示用户 -s, --script 从不提示用户 -v, --version 显示版本
cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区 help [COMMAND] #打印通用求助信息,或关于 COMMAND 的信息 mklabel 标签类型 #创建新的磁盘标签 (分区表) mkfs MINOR 文件系统类型 #在 MINOR 创建类型为“文件系统类型”的文件系统 mkpart 分区类型 [文件系统类型] 起始点 终止点 #创建一个分区 mkpartfs 分区类型 文件系统类型 起始点 终止点 #创建一个带有文件系统的分区 move MINOR 起始点 终止点 #移动编号为 MINOR 的分区 name MINOR 名称 #将编号为 MINOR 的分区命名为“名称” print [MINOR] #打印分区表,或者分区 quit #退出程序 rescue 起始点 终止点 #挽救临近“起始点”、“终止点”的遗失的分区 resize MINOR 起始点 终止点 #改变位于编号为 MINOR 的分区中文件系统的大小 rm MINOR #删除编号为 MINOR 的分区 select 设备 #选择要编辑的设备 set MINOR 标志 状态 #改变编号为 MINOR 的分区的标志
首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdd: ((parted)表示在parted中输入的命令,其他为自动打印的信息)
[root@10.10.90.97 ~]# parted /dev/hdd GNU Parted 1.8.1 Using /dev/hdd Welcome to GNU Parted! Type 'help' to view a list of commands.
选择了/dev/hdd作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息):
(parted) mklabel New disk label type? gpt (我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)
创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区 的起止位置
(parted) mkpart Partition name? []? dp1 File system type? [ext2]? ext3 Start? 0 (可以用百分比表示,比如Start? 0% , End? 50%) End? 500GB
分好区后可以使用print命令打印分区信息,下面是一个print的样例
(parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdd: 2199GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 500GB 500GB dp1
如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果
(parted)rm 1 #rm后面使用分区的号码,就是用print打印出来的Number (parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdd: 2199GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags
按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例
(parted) mkpart Partition name? []? dp1 File system type? [ext2]? ext3 Start? 0 End? 500GB (parted) mkpart Partition name? []? dp2 File system type? [ext2]? ext3 Start? 500GB End? 2199GB (parted) print Model: VBOX HARDDISK (ide) Disk /dev/hdd: 2199GB 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 2199GB 1699GB dp2
完成以后我们可以使用quit命令退出parted并使用系统的mkfs命令对分区进行格式化了。
[root@10.10.90.97 ~]# fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/hdd'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/hdd: 2199.0 GB, 2199022206976 bytes 255 heads, 63 sectors/track, 267349 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdd1 1 267350 2147482623+ ee EFI GPT [root@10.10.90.97 ~]# mkfs.ext3 /dev/hdd1 [root@10.10.90.97 ~]# mkfs.ext3 /dev/hdd2 [root@10.10.90.97 ~]# mkdir /dp1 /dp2 [root@10.10.90.97 ~]# mount /dev/hdd1 /dp1 [root@10.10.90.97 ~]# mount /dev/hdd2 /dp2
本文转载自:http://www.linuxprobe.com/linux-command-parted/
GPT概述
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。 传统的主启动记录 (MBR) 磁盘分区支持最大卷为 2.2 TB (terabytes) ,每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器)。 与MBR 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节 (exabytes,1EB=10^6TB) 的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。
与 MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一 个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分 区的磁盘。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。
在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。跟现代的MBR一样,GPT也使用逻辑区块地址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA 0,GPT头存储于LBA 1,接下来才是分区表本身。64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA 34是硬盘上第一个分区的开始。为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。与主启动记录 (MBR) 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达18 千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区ID(GUID)。
GPT结构
GPT的结构见下图
传统MBR (LBA 0)
在GPT分区表的最开头,处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。在支持从GPT启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个MBR中,只有一个标识为0xEE的分区,以此来表示这块硬盘使用GPT分区表。不能识别GPT硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外,能够识别GPT分区表的操作系统会检查保护MBR中的分区表,如果分区类型不是0xEE或者MBR分区表中有多个项,也会拒绝对硬盘进行操作。
在使用MBR/GPT混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。如Boot Camp就是使用这种方式启动Windows。
分区表头 (LBA 1)
分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用64位Windows Server 2003的机器上,最多可以创建128个分区,即分区表中保留了128个项,其中每个都是128字节。(EFI标准要求分区表最小要有16,384字节,即128个分区项的大小)
分区表头还记录了这块硬盘的GUID,记录了分区表头本身的位置和大小(位置总是在LBA 1)以及备份分区表头和分区表的位置和大小(在硬盘的最后)。它还储存着它本身和分区表的CRC32校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改。
分区表头的格式如下
起始字节 | 长度 | 内容 |
0 | 8字节 | 签名("EFI PART", 45 46 49 20 50 41 52 54) |
8 | 4字节 | 修订(在1.0版中,值是 00 00 01 00) |
12 | 4字节 | 分区表头的大小(单位是字节,通常是92字节,即 5C 00 00 00) |
16 | 4字节 | 分区表头(第0-91字节)的CRC32 校验,在计算时,把这个字段作为0处理,需要计算出分区串行的CRC32校验后再计算本字段 |
20 | 4字节 | 保留,必须是 0 |
24 | 8字节 | 当前LBA(这个分区表头的位置) |
32 | 8字节 | 备份LBA(另一个分区表头的位置) |
40 | 8字节 | 第一个可用于分区的LBA(主分区表的最后一个LBA + 1) |
48 | 8字节 | 最后一个可用于分区的LBA(备份分区表的第一个LBA − 1) |
56 | 16字节 | 硬盘GUID(在类UNIX 系统中也叫UUID) |
72 | 8字节 | 分区表项的起始LBA(在主分区表中是2) |
80 | 4字节 | 分区表项的数量 |
84 | 4字节 | 一个分区表项的大小(通常是128) |
88 | 4字节 | 分区串行的CRC32校验 |
92 | * | 保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节) |
主分区表和备份分区表的头分别位于硬盘的第二个扇区(LBA 1)以及硬盘的最后一个扇区。备份分区表头中的信息是关于备份分区表的。
分区表项 (LBA 2–33)
GPT分区表使用简单而直接的方式表示分区。一个分区表项的前16字节是分区类型GUID。例如,EFI系统分区的GUID类型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下来的16字节是该分区唯一的GUID(这个GUID指的是该分区本身,而之前的GUID指的是该分区的类型)。再接下来是分区起始和末尾的64位LBA编号,以及分区的名字和属性。
GPT分区表项的格式如下
起始字节 | 长度 | 内容 |
0 | 16字节 | 分区类型GUID |
16 | 16字节 | 分区GUID |
32 | 8字节 | 起始LBA(小端序 ) |
40 | 8字节 | 末尾LBA |
48 | 8字节 | 属性标签(如:60 表示“只读”) |
56 | 72字节 | 分区名(可以包括36个UTF-16(小端序)字符) |
parted概述
上文介绍了GPT,由于常见的fdisk不支持GPT(在硬盘容量大于2Tb的时候无法使用fdisk进行分区的管理),故在IA64平台上管理磁盘时parted还是相当实用的,GNU Parted 具有丰富的功能,它除了能够进行分区的添加、删除等常见操作外,还可以进行移动分区、创建文件系统、调整文件系统大小、复制文件系统等操作。它可以处理最常见的分区格式,包括:ext2,ext3,fat16,fat32,NTFS,ReiserFS,JFS,XFS,UFS,HFS,以及Linux交换分区。
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 |
parted使用实例
# parted /dev/sdd
GNU Parted 1.8.1
Using /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: OPNFILER VIRTUAL-DISK (scsi)
Disk /dev/sdd: 27.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
(parted) print #查看分区信息
Model: OPNFILER VIRTUAL-DISK (scsi)
Disk /dev/sdd: 27.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 16.4kB 4001MB 4001MB primary
4 4001MB 4703MB 701MB extended
5 4001MB 4102MB 101MB logical
6 4102MB 4203MB 101MB logical
7 4203MB 4303MB 101MB logical
8 4303MB 4404MB 101MB logical
9 4404MB 4416MB 11.5MB logical
10 4416MB 4437MB 21.0MB logical
11 4437MB 4468MB 31.4MB logical
12 4468MB 4509MB 40.9MB logical ext3
(parted) mkpart #创建新的分区
Partition type? primary/logical? l
File system type? [ext2]? ext3
Start? 4509MB
End? -1s # 表示硬盘最后一个扇区,就是硬盘的最末尾处
Warning: You requested a partition from 4509MB to 27.1GB.
The closest location we can manage is 4516MB to 4697MB. Is this still acceptable to you?
Yes/No? y
(parted) print
Model: OPNFILER VIRTUAL-DISK (scsi)
Disk /dev/sdd: 27.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 16.4kB 4001MB 4001MB primary
4 4001MB 4703MB 701MB extended
5 4001MB 4102MB 101MB logical
6 4102MB 4203MB 101MB logical
7 4203MB 4303MB 101MB logical
8 4303MB 4404MB 101MB logical
9 4404MB 4416MB 11.5MB logical
10 4416MB 4437MB 21.0MB logical
11 4437MB 4468MB 31.4MB logical
12 4468MB 4509MB 40.9MB logical ext3
13 4516MB 4697MB 181MB logical
(parted) unit s #设置单位为扇区
(parted) print
Model: OPNFILER VIRTUAL-DISK (scsi)
Disk /dev/sdd: 52953087s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32s 7815167s 7815136s primary
4 7815168s 9185279s 1370112s extended
5 7815200s 8011775s 196576s logical
6 8011808s 8208383s 196576s logical
7 8208416s 8404991s 196576s logical
8 8405024s 8601599s 196576s logical
9 8601632s 8624127s 22496s logical
10 8624160s 8665087s 40928s logical
11 8665120s 8726527s 61408s logical
12 8726560s 8806399s 79840s logical ext3
13 8819748s 9173114s 353367s logical
(parted) rm 13 #删除分区13
(parted) p
Model: OPNFILER VIRTUAL-DISK (scsi)
Disk /dev/sdd: 52953087s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32s 7815167s 7815136s primary
4 7815168s 9185279s 1370112s extended
5 7815200s 8011775s 196576s logical
6 8011808s 8208383s 196576s logical
7 8208416s 8404991s 196576s logical
8 8405024s 8601599s 196576s logical
9 8601632s 8624127s 22496s logical
10 8624160s 8665087s 40928s logical
11 8665120s 8726527s 61408s logical
12 8726560s 8806399s 79840s logical ext3
(parted) set 12 lvm on #将分区12的lvm标志打开,这里仅打开标志,并未实际创建lv
(parted) p
Model: OPNFILER VIRTUAL-DISK (scsi)
Disk /dev/sdd: 52953087s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32s 7815167s 7815136s primary
4 7815168s 9185279s 1370112s extended
5 7815200s 8011775s 196576s logical
6 8011808s 8208383s 196576s logical
7 8208416s 8404991s 196576s logical
8 8405024s 8601599s 196576s logical
9 8601632s 8624127s 22496s logical
10 8624160s 8665087s 40928s logical
11 8665120s 8726527s 61408s logical
12 8726560s 8806399s 79840s logical ext3 lvm
(parted) q #退出交换模式
Information: Don't forget to update /etc/fstab, if necessary.
一次坏盘经历
Enclosure ID
8
Slot Number
11
/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[8:11] WB RA Direct -a0
/opt/MegaRAID/MegaCli/MegaCli64 -DiscardPreservedCache -L10 -a0
/opt/MegaRAID/MegaCli/MegaCli64 -PDRbld -ShowProg -PhysDrv [8:11] -a0
做单盘raid0
[root@datanode036.zz.xx.com ares]# /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[8:11] WB RA Direct -a0
Adapter 0: Configure Adapter Failed
FW error description:
The current operation is not allowed because the controller has data in cache for offline or missing virtual disks.
Exit Code: 0x54
[root@datanode036.zz.xx.com ares]# /opt/MegaRAID/MegaCli/MegaCli64 -GetPreservedCacheList -a0
Adapter #0
Virtual Drive(Target ID 10): Missing.
Exit Code: 0x00
[root@datanode036.zz.xx.com ares]# /opt/MegaRAID/MegaCli/MegaCli64 -DiscardPreservedCache -L10 -a0
Adapter #0
Virtual Drive(Target ID 10): Preserved Cache Data Cleared.
Exit Code: 0x00
[root@datanode036.zz.xx.com ares]# /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[8:11] WB RA Direct -a0
Adapter 0: Created VD 10
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
[root@datanode036.zz.xx.com ares]# /opt/MegaRAID/MegaCli/MegaCli64 -PDRbld -ShowProg -PhysDrv [8:11] -a0
Device(Encl-8 Slot-11) is not in rebuild process
Exit Code: 0x00
[root@datanode036.zz.xx.com ares]#
将原来的卸载,如何目录被占用无法卸载,使用如下命令
分区
[root@datanode036.zz.xx.com ares]# parted /dev/sdk GNU Parted 3.1 Using /dev/sdk Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel New disk label type? gpt (parted) mkpart Partition name? []? ext4 File system type? [ext2]? ^C Error: Expecting a file system type. (parted) mklabel New disk label type? gpt Warning: The existing disk label on /dev/sdk will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? yes (parted) mkpart Partition name? []? File system type? [ext2]? ext4 Start? 1049kb End? End? 7451GB (parted) print Model: AVAGO MR9361-8i (scsi) Disk /dev/sdk: 8001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 7451GB 7451GB (parted) q Information: You may need to update /etc/fstab. [root@datanode036.zz.xx.com ares]#
mout -a以及mount没有挂载上磁盘
执行systemctl daemon-reload,然后重新挂载,就可以了
[root@datanode0x6.zz.xx.com ares]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdf 8:80 0 7.3T 0 disk └─sdf1 8:81 0 7.3T 0 part /hadoop/05 sdd 8:48 0 7.3T 0 disk └─sdd1 8:49 0 7.3T 0 part /hadoop/03 sdm 8:192 0 7.3T 0 disk └─sdm1 8:193 0 7.3T 0 part /hadoop/12 sdb 8:16 0 7.3T 0 disk └─sdb1 8:17 0 7.3T 0 part /hadoop/01 sdk 8:160 0 7.3T 0 disk └─sdk1 8:161 0 6.8T 0 part sdi 8:128 0 7.3T 0 disk └─sdi1 8:129 0 7.3T 0 part /hadoop/08 sdg 8:96 0 7.3T 0 disk └─sdg1 8:97 0 7.3T 0 part /hadoop/06 sde 8:64 0 7.3T 0 disk └─sde1 8:65 0 7.3T 0 part /hadoop/04 sdc 8:32 0 7.3T 0 disk └─sdc1 8:33 0 7.3T 0 part /hadoop/02 sdl 8:176 0 7.3T 0 disk └─sdl1 8:177 0 7.3T 0 part /hadoop/11 sda 8:0 0 558.4G 0 disk ├─sda2 8:2 0 1G 0 part /boot ├─sda3 8:3 0 557.4G 0 part / └─sda1 8:1 0 1M 0 part sdj 8:144 0 7.3T 0 disk └─sdj1 8:145 0 7.3T 0 part /hadoop/09 sdh 8:112 0 7.3T 0 disk └─sdh1 8:113 0 7.3T 0 part /hadoop/07 [root@datanode0x6.zz.xx.com ares]# mkfs.ext4 /dev/sdk1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=64 blocks, Stripe width=64 blocks 227389440 inodes, 1819091456 blocks 90954572 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=3967811584 55515 block groups 32768 blocks per group, 32768 fragments per group 4096 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done [root@datanode0x6.zz.xx.com ares]# blkid /dev/sdk1 /dev/sdk1: UUID="1b15d292-3785-4332-8e5d-524c984e340a" TYPE="ext4" PARTUUID="4e24e5cc-53bf-4da3-96dc-95b73bf67574" [root@datanode0x6.zz.xx.com ares]# vim /etc/fstab [root@datanode0x6.zz.xx.com ares]# grep 524c984e340a /etc/fstab UUID=1b15d292-3785-4332-8e5d-524c984e340a /hadoop/10 ext4 defaults,noatime 1 2 [root@datanode0x6.zz.xx.com ares]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 94G 0 94G 0% /dev tmpfs 94G 12K 94G 1% /dev/shm tmpfs 94G 4.1G 90G 5% /run tmpfs 94G 0 94G 0% /sys/fs/cgroup /dev/sda3 549G 15G 506G 3% / /dev/sda2 976M 173M 737M 19% /boot cm_processes 94G 300M 94G 1% /run/cloudera-scm-agent/process /dev/sdb1 7.3T 3.5T 3.4T 52% /hadoop/01 /dev/sdc1 7.3T 3.5T 3.5T 51% /hadoop/02 /dev/sdd1 7.3T 3.5T 3.4T 51% /hadoop/03 /dev/sde1 7.3T 3.5T 3.5T 51% /hadoop/04 /dev/sdf1 7.3T 3.5T 3.4T 51% /hadoop/05 /dev/sdg1 7.3T 3.5T 3.4T 51% /hadoop/06 /dev/sdh1 7.3T 3.5T 3.4T 51% /hadoop/07 /dev/sdi1 7.3T 3.5T 3.4T 51% /hadoop/08 /dev/sdj1 7.3T 3.5T 3.4T 51% /hadoop/09 /dev/sdl1 7.3T 3.5T 3.5T 51% /hadoop/11 /dev/sdm1 7.3T 3.5T 3.4T 51% /hadoop/12 tmpfs 19G 0 19G 0% /run/user/3001 [root@datanode0x6.zz.xx.com ares]# [root@datanode0x6.zz.xx.com ares]# mount -a [root@datanode0x6.zz.xx.com ares]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 94G 0 94G 0% /dev tmpfs 94G 12K 94G 1% /dev/shm tmpfs 94G 4.1G 90G 5% /run tmpfs 94G 0 94G 0% /sys/fs/cgroup /dev/sda3 549G 15G 506G 3% / /dev/sda2 976M 173M 737M 19% /boot cm_processes 94G 300M 94G 1% /run/cloudera-scm-agent/process /dev/sdb1 7.3T 3.5T 3.4T 52% /hadoop/01 /dev/sdc1 7.3T 3.5T 3.5T 51% /hadoop/02 /dev/sdd1 7.3T 3.5T 3.4T 51% /hadoop/03 /dev/sde1 7.3T 3.5T 3.5T 51% /hadoop/04 /dev/sdf1 7.3T 3.5T 3.4T 51% /hadoop/05 /dev/sdg1 7.3T 3.5T 3.4T 51% /hadoop/06 /dev/sdh1 7.3T 3.5T 3.4T 51% /hadoop/07 /dev/sdi1 7.3T 3.5T 3.4T 51% /hadoop/08 /dev/sdj1 7.3T 3.5T 3.4T 51% /hadoop/09 /dev/sdl1 7.3T 3.5T 3.5T 51% /hadoop/11 /dev/sdm1 7.3T 3.5T 3.4T 51% /hadoop/12 tmpfs 19G 0 19G 0% /run/user/3001 [root@datanode0x6.zz.xx.com ares]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 94G 0 94G 0% /dev tmpfs 94G 12K 94G 1% /dev/shm tmpfs 94G 4.1G 90G 5% /run tmpfs 94G 0 94G 0% /sys/fs/cgroup /dev/sda3 549G 15G 506G 3% / /dev/sda2 976M 173M 737M 19% /boot cm_processes 94G 300M 94G 1% /run/cloudera-scm-agent/process /dev/sdb1 7.3T 3.5T 3.4T 52% /hadoop/01 /dev/sdc1 7.3T 3.5T 3.5T 51% /hadoop/02 /dev/sdd1 7.3T 3.5T 3.4T 51% /hadoop/03 /dev/sde1 7.3T 3.5T 3.5T 51% /hadoop/04 /dev/sdf1 7.3T 3.5T 3.4T 51% /hadoop/05 /dev/sdg1 7.3T 3.5T 3.4T 51% /hadoop/06 /dev/sdh1 7.3T 3.5T 3.4T 51% /hadoop/07 /dev/sdi1 7.3T 3.5T 3.4T 51% /hadoop/08 /dev/sdj1 7.3T 3.5T 3.4T 51% /hadoop/09 /dev/sdl1 7.3T 3.5T 3.5T 51% /hadoop/11 /dev/sdm1 7.3T 3.5T 3.4T 51% /hadoop/12 tmpfs 19G 0 19G 0% /run/user/3001 [root@datanode0x6.zz.xx.com ares]# root@datanode0x6.zz.xx.com ares]# mount -t ext4 /dev/sdk1 /hadoop/10 [root@datanode0x6.zz.xx.com ares]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 94G 0 94G 0% /dev tmpfs 94G 12K 94G 1% /dev/shm tmpfs 94G 4.1G 90G 5% /run tmpfs 94G 0 94G 0% /sys/fs/cgroup /dev/sda3 549G 15G 506G 3% / /dev/sda2 976M 173M 737M 19% /boot cm_processes 94G 300M 94G 1% /run/cloudera-scm-agent/process /dev/sdb1 7.3T 3.5T 3.4T 52% /hadoop/01 /dev/sdc1 7.3T 3.5T 3.5T 51% /hadoop/02 /dev/sdd1 7.3T 3.5T 3.4T 51% /hadoop/03 /dev/sde1 7.3T 3.5T 3.5T 51% /hadoop/04 /dev/sdf1 7.3T 3.5T 3.4T 51% /hadoop/05 /dev/sdg1 7.3T 3.5T 3.4T 51% /hadoop/06 /dev/sdh1 7.3T 3.5T 3.4T 51% /hadoop/07 /dev/sdi1 7.3T 3.5T 3.4T 51% /hadoop/08 /dev/sdj1 7.3T 3.5T 3.4T 51% /hadoop/09 /dev/sdl1 7.3T 3.5T 3.5T 51% /hadoop/11 /dev/sdm1 7.3T 3.5T 3.4T 51% /hadoop/12 tmpfs 19G 0 19G 0% /run/user/3001 [root@datanode0x6.zz.xx.com ares]# systemctl demaon-reload Unknown operation 'demaon-reload'. [root@datanode0x6.zz.xx.com ares]# systemctl deamon-reload Unknown operation 'deamon-reload'. [root@datanode0x6.zz.xx.com ares]# systemctl --help | grep reload --no-reload Don't reload daemon after en-/dis-abling unit files reload NAME... Reload one or more units reload-or-restart NAME... Reload one or more units if possible, reload-or-try-restart NAME... Reload one or more units if possible, daemon-reload Reload systemd manager configuration [root@datanode0x6.zz.xx.com ares]# systemctl daemon-reload [root@datanode0x6.zz.xx.com ares]# [root@datanode0x6.zz.xx.com ares]# [root@datanode0x6.zz.xx.com ares]# [root@datanode0x6.zz.xx.com ares]# mount -a [root@datanode0x6.zz.xx.com ares]# df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 94G 0 94G 0% /dev tmpfs tmpfs 94G 12K 94G 1% /dev/shm tmpfs tmpfs 94G 4.1G 90G 5% /run tmpfs tmpfs 94G 0 94G 0% /sys/fs/cgroup /dev/sda3 ext4 549G 15G 506G 3% / /dev/sda2 ext4 976M 173M 737M 19% /boot cm_processes tmpfs 94G 300M 94G 1% /run/cloudera-scm-agent/process /dev/sdb1 ext4 7.3T 3.5T 3.4T 52% /hadoop/01 /dev/sdc1 ext4 7.3T 3.5T 3.5T 51% /hadoop/02 /dev/sdd1 ext4 7.3T 3.5T 3.4T 51% /hadoop/03 /dev/sde1 ext4 7.3T 3.5T 3.5T 51% /hadoop/04 /dev/sdf1 ext4 7.3T 3.5T 3.4T 51% /hadoop/05 /dev/sdg1 ext4 7.3T 3.5T 3.4T 51% /hadoop/06 /dev/sdh1 ext4 7.3T 3.5T 3.4T 51% /hadoop/07 /dev/sdi1 ext4 7.3T 3.5T 3.4T 51% /hadoop/08 /dev/sdj1 ext4 7.3T 3.5T 3.4T 51% /hadoop/09 /dev/sdl1 ext4 7.3T 3.5T 3.5T 51% /hadoop/11 /dev/sdm1 ext4 7.3T 3.5T 3.4T 51% /hadoop/12 tmpfs tmpfs 19G 0 19G 0% /run/user/3001 /dev/sdk1 ext4 6.8T 89M 6.4T 1% /hadoop/10 [root@datanode0x6.zz.xx.com ares]# ls /hadoop/10 lost+found [root@datanode0x6.zz.xx.com ares]#
parted分区案例
1、parted分区,这里以/dev/sdc举例。
parted /dev/sdc ##进入parted命令 (parted) mklabel ##磁盘label类型 New disk label type ? gpt (parted) mkpart ##创建分区 Partition name? []? ##默认 File system type ? [ext2]? xfs ##文件系统类型,这里以xfs举例,根据实际需求配置。 Start? 1049kB End? 8001GB |
2、创建文件系统,这里以/dev/sdc1举例。
mkfs.xfs /dev/sdc1 |
3、获取新分区的uuid。
blkid /dev/sdc1 ##获取uuid |
4、在/etc/fstab中更新分区的uuid。
5、挂载分区。
mount -a # 当磁盘无法挂载时,可以执行systemctl daemon-reload |
6、进入新挂载的目录,进行读写操作测试。测试通过后,通知业务部门启动服务。
parted单盘分单个分区脚本
脚本:
# cat fenqu.sh #!/bin/bash #Used to fomat 6 disks .mcw PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH disk_to_parted="$1" if [ $# == 0 ];then echo "no disk to parted,example /dev/sdb" exit else echo "/n/n****** ${disk_to_parted} __was Fdisked! Waiting For 3 Second*****/n/n" fi /sbin/parted ${disk_to_parted} <<ESXU mklabel gpt mkpart primary 0 -1 ignore quit ESXU sleep 3s /sbin/mkfs.ext4 ${disk_to_parted}1 if [ "$?" = "0" ];then echo "/n/n*****${disk_to_parted}1 _________________was Formated, Waiting For 1 Second****/n/n" fi /sbin/blkid ${disk_to_parted}1 sleep 1s
单个磁盘可以重复进行分区,重复分区之后uuid改变了。脚本是做一个分区,所有空间都分配到这个分区上面
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdf 8:80 0 7.3T 0 disk sdd 8:48 0 7.3T 0 disk sdb 8:16 0 3.5T 0 disk sdi 8:128 0 7.3T 0 disk sdg 8:96 0 7.3T 0 disk sde 8:64 0 7.3T 0 disk sdc 8:32 0 7.3T 0 disk sda 8:0 0 558.9G 0 disk ├─sda2 8:2 0 1G 0 part /boot ├─sda3 8:3 0 557.9G 0 part / └─sda1 8:1 0 1M 0 part sdj 8:144 0 7.3T 0 disk sdh 8:112 0 7.3T 0 disk # sh fenqu.sh /dev/sdb /n/n****** /dev/sdb __was Fdisked! Waiting For 3 Second*****/n/n GNU Parted 3.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) mkpart primary 0 -1 Warning: The resulting partition is not properly aligned for best performance. (parted) ignore align-check TYPE N check partition N for TYPE(min|opt) alignment help [COMMAND] print general help, or help on COMMAND mklabel,mktable LABEL-TYPE create a new disklabel (partition table) mkpart PART-TYPE [FS-TYPE] START END make a partition 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 resizepart NUMBER END resize partition NUMBER rm NUMBER delete partition NUMBER select DEVICE choose the device to edit disk_set FLAG STATE change the FLAG on selected device disk_toggle [FLAG] toggle the state of FLAG on selected device 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) quit Information: You may need to update /etc/fstab. mke2fs 1.42.9 (28-Dec-2013) /dev/sdb1 alignment is offset by 244736 bytes. This may result in very poor performance, (re)-partitioning suggested. Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=64 blocks, Stripe width=64 blocks 234422272 inodes, 937675551 blocks 46883777 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=3087007744 28616 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done /n/n*****/dev/sdb1 _________________was Formated, Waiting For 1 Second****/n/n /dev/sdb1: UUID="152bdacb-9029-4133-94fe-ddfe3ccb182f" TYPE="ext4" PARTLABEL="primary" PARTUUID="f09dd331-42e2-4c2f-8836-9a15e4c1e7bf" # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdf 8:80 0 7.3T 0 disk sdd 8:48 0 7.3T 0 disk sdb 8:16 0 3.5T 0 disk └─sdb1 8:17 0 3.5T 0 part sdi 8:128 0 7.3T 0 disk sdg 8:96 0 7.3T 0 disk sde 8:64 0 7.3T 0 disk sdc 8:32 0 7.3T 0 disk sda 8:0 0 558.9G 0 disk ├─sda2 8:2 0 1G 0 part /boot ├─sda3 8:3 0 557.9G 0 part / └─sda1 8:1 0 1M 0 part sdj 8:144 0 7.3T 0 disk sdh 8:112 0 7.3T 0 disk # lsblk|grep -v sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdf 8:80 0 7.3T 0 disk sdd 8:48 0 7.3T 0 disk sdb 8:16 0 3.5T 0 disk └─sdb1 8:17 0 3.5T 0 part sdi 8:128 0 7.3T 0 disk sdg 8:96 0 7.3T 0 disk sde 8:64 0 7.3T 0 disk sdc 8:32 0 7.3T 0 disk sdj 8:144 0 7.3T 0 disk sdh 8:112 0 7.3T 0 disk #
@@
批量执行脚本,除了系统盘sda外的都做分区,因为这里有9块盘,用8块,1块是小容量磁盘的不用,也就是这里把sdb给过滤,然后替换生成下面/etc/fstab配置,然后moun -a进行挂载
for i in `lsblk|grep -v sda|awk '{print $1}'|sed '1d'`;do sh fenqu.sh /dev/${i} ;done
blkid|grep -v sda|grep -v sdb|awk '{print $2}'|awk -F '"' '{print $2}'
UUID=984c7ab4-5248-452c-91ef-905ea695dfdc /hadoop/01 ext4 defaults 0 0
UUID=f78f096b-3a22-45a4-9a31-145ccac2cc2b /hadoop/02 ext4 defaults 0 0
UUID=f8633ce0-dc03-4677-9a45-4f0cf52a68b1 /hadoop/03 ext4 defaults 0 0
UUID=64ad86c5-4c92-4a40-a71b-d6e6182ceab6 /hadoop/04 ext4 defaults 0 0
UUID=9301a3c6-318a-4313-bdc2-a6d216d04d5c /hadoop/05 ext4 defaults 0 0
UUID=7ba0bf32-2199-4f1e-a66d-bed6046a8bbc /hadoop/06 ext4 defaults 0 0
UUID=9c393d6b-d103-4777-8ced-9f80014a01de /hadoop/07 ext4 defaults 0 0
UUID=39e86303-bbf7-400c-8d8d-daf16117ddc7 /hadoop/08 ext4 defaults 0 0
参考至:http://blog.sina.com.cn/s/blog_6ca646a00100z0uq.html
http://goward.jimdo.com/2010/07/19/linux-parted%E5%88%86%E5%8C%BA%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E8%AF%A6%E8%A7%A3/
http://zh.wikipedia.org/wiki/GUID%E7%A3%81%E7%A2%9F%E5%88%86%E5%89%B2%E8%A1%A8
http://baike.baidu.com/view/493745.htm
本文原创,转载请注明出处、作者