一、parted的命令方式
Parted 命令分为两种模式:命令行模式和交互模式。
1、命令行模式: parted [option]?device [command] ,该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用。如:
# parted /dev/sdb print?–显示磁盘/dev/sdb分区。
2、交互模式:parted [option] device
# parted /dev/sdb????? –进入交互模式,建议使用交互模式,尤其是对parted命令不是很熟悉的情况下。
二、常用的2种分区表:MBR与GPT区别。
MBR:MBR分区表(即主引导记录)大家都很熟悉,是过去我们使用windows时常用的。
所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区
GPT: GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。
突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。
三、parted命令常用功能。
当在命令行输入parted后,进入parted命令的交互模式。输入help会显示帮助信息。下面就简单介绍一下常用的功能
1、Check?简单检查文件系统。建议用其他命令检查文件系统,比如fsck
2、Help?显示帮助信息
3、mklabel?创建分区表, 即是使用msdos(MBR)还是使用gpt,或者是其他方式分区表
4、 mkfs?创建文件系统。该命令不支持ext3 格式,因此建议不使用,最好是用parted分好区,然后退出parted交互模式,用其他命令进行分区,比如:mkfs.ext3
5、mkpart?创建新分区。
格式:mkpart?PART-TYPE??[FS-TYPE]??START??END
PART-TYPE 类型主要有primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos。
fs-type?? 文件系统类型,主要有fs32,NTFS,ext2,ext3等
start?end?分区的起始和结束位置。
6、mkpartfs?建立分区及其文件系统。目前还不支持ext3文件系统,因此不建议使用该功能。最后是分好区后,退出parted,然后用其他命令建立文件系统。
7、print?输出分区信息。该功能有3个选项,
free 显示该盘的所有信息,并显示磁盘剩余空间
number 显示指定的分区的信息
all 显示所有磁盘信息
8、resize?调整指定的分区的大小。目前对ext3格式支持不是很好,所以不建议使用该功能。
9、rescue?恢复不小心删除的分区。如果不小心用parted的rm命令删除了一个分区,那么可以通过rescue功能进行恢复。恢复时需要给出分区的起始和结束的位置。然后parted就会在给定的范围内去寻找,并提示恢复分区。
10、rm?删除分区。命令格式 rm??number 。如:rm 3 就是将编号为3的分区删除
11、select?选择设备。当输入parted命令后直接回车进入交互模式是,如果有多块硬盘,需要用select 选择要操作的硬盘。如:select /dev/sdb
12、set?设置标记。更改指定分区编号的标志。标志通常有如下几种:boot??hidden?? raid???lvm?等。
boot 为引导分区,hidden 为隐藏分区,raid 软raid,lvm 为逻辑分区。
如:set?3??boot??on???设置分区号3 为启动分区
注:以上内容为parted常用的功能,由于该工具目前对ext3支持得不是很好,因此有些功能无法应用,比如move(移动分区)和resize等。
四、parted分区功能事例。
1、用命令模式 为/dev/sdb创建gpt类型文件分区表,并分500G分区。然后为该分区创建ext3文件系统。并将该分区挂载在/test文件夹下。
#??parted??/dev/sdb??mklabel?????—创建分区表
#??parted??/dev/sdb??mkpart??ext3??0??500000????—创建500G分区/dev/sdb1
#?mkfs.ext3??/dev/sdb1??????—-将分区/dev/sdb1格式化成ext3格式文件系统
#?mount??/dev/sdb1?/test?? —将/dev/sdb1 挂载在/test下
如果让系统自动挂载/dev/sdb1 需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:
/dev/sdb1???????????? /test????????????????ext3??? defaults??????? 0 0
2、创建大小为4G的交互分区。由于已经创建了500G的/dev/sdb1 ,因此再创建的分区为/dev/sdb2
# parted?/dev/sdb?mkpart?swap?500000?504000??—创建4G分区/dev/sdb2
# mkswap??/dev/sdb2???—-将/dev/sdb2创建为交换分区
# swapon?/dev/sdb2?? —-激活/dev/sdb2
如果让系统自动挂载/dev/sdb2这个交换分区,需手工编辑/etc/fstab文件。并在文件末尾添加如下内容:
/dev/sdb2???????????? swap????????????????swap??? defaults??????? 0 0
3、恢复被误删除的分区(也可以参考
testdisk命令)。由于parted直接写磁盘,因此一旦不小心删除了某一分区,建议立即用rescue恢复。下面通过事例来理解恢复过程。
# parted?/dev/sdb?mkpart?ext3?504000?514000?—-创建10G分区/dev/sdb3
# mkfs.ext3?/dev/sdb3??—将/dev/sdb3格式化成ext3文件系统。
# parted?/dev/sdb?rm?3?—-删除/dev/sdb3
# parted?/dev/sdb?rescue?504000?514000??? —依照屏幕提示,输入yes即可恢复被误删除分区
有关Linux GPT 分区的一些操作。
# parted /dev/sdb
GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) select /dev/sdb
选择操作磁盘sdb
(parted) mklabel gpt
将MBR磁盘格式化为GPT
(parted) mkpart primary 0 100
划分一个起始位置为0大小为100M的主分区
(parted) mkpart primary 100 200
划分一个起始位置为100M大小为100M的主分区
(parted) mkpart primary 0 -1
划分所有空间到一个分区
(parted) print
打印当前分区
(parted) quit
可能还会用到的一些命令
(parted) mklable msdos
如果要反过来.将GPT磁盘转化为MBR磁盘
在这样分完分区后,还要使用mkfs.ext3来进行格式化
#partprobe
#mkfs.ext3 -F /dev/sdb1
记的哦,因为fdisk是不支持GPT磁盘,所以使用fdisk -l来查看磁盘刚才的分区是没有用的. 挂载之后可以用df-h查看分区使用情况。