三、建立分区
1、查看分区
命令: print [devices|free|list,all|NUMBER]
:使用print
命令可以查看分区表信息,包括硬盘参数,硬盘大小,扇区大小,分区表类型和分区信息。
结果如下:
可以看到sdb
硬盘大小是21,5GB,文件系统是msdos
(msdos
文件系统是windows下的文件系统,在parted
命令交互中就是表示MBR分区表)。
分区信息总共七列,分别是:
- Number:分区号。
- Start:分区起始位置,这里不再像
fdisk
用柱面表示,而是使用Byte更加直观。 - End:分区结束位置。
- Size:分区大小。
- Type:分区类型。
- File system:文件系统类型。我不是说
parted
不支持ext4
文件系统吗?注意,我一直都是说parted
不能直接把分区,直接格式化成ext4
文件系统,但是它是可以识别的。 - 标志:Flags,就是分区的标记。
2、修改成GPT分区表
把硬盘由MBR分区表,改成GPT分区表,使用的命令如下:
mklabel,mktable LABEL-TYPE
:创建新的磁盘卷标(分区表)。
(如果要由GPT分区表改成MBR分区表,命令为mklabel msdos
)
修改了分区表,如果这块硬盘已经有分区了,那么原有分区和分区中的数据都会消失,而且需要重启系统才会生效。
我们在查看一下当前硬盘分区表情况
可以看到分区表已经变成GPT分区表,并且之前硬盘的分区信息已经没有了。
注意:在说一下,一定要把
/etc/fstab
文件中和原有分区的内容删除掉(就是修改的硬盘的分区的自动挂载),才能重启动,要不系统启动就一定会报错的。
之后quit
退出parted
命令交互,执行reboot
命令重启计算机。
重启完计算机才能执行之后的操作。(不重启后续操作是无法完成的)
3、建立分区
因为修改过了分区表,所以/dev/sdb
硬盘中的所有数据都消失了,所以我们可以重新对这块硬盘分区了。
执行parted
命令,进入硬盘分区。
执行分区命令,对硬盘进行分区,命令如下:
mkpart PART-TYPE [FS-TYPE] START END
:创建一个分区。
注意:建立分区时,默认文件系统就只能建立成
ext2
了。
查看硬盘的分区情况
已显示刚刚创建好的分区disk1。因为没有格式化,所以File system:文件系统类型
是空着的。
不知道大家注意到了吗?
我们现在的Type
这个字段,也就是分区类型的字段,多了Name
分区名字段。分区类型是标识主分区、扩展分区和逻辑分区的,不过这种标识只在MBR分区表中使用,我们现在已经变成了GPT分区表了,所以就不再有Type类型了。也就说折磨我们很久的主分区、扩展分区和逻辑分区的概念不再用了(其实就是突破一个硬盘只有四个分区的限制)。
4、建立文件系统(格式化)
分区分完了,我们还需要对分区进行格式化。不过我们已经知道如果使用parted
交互命令格式化的话,只能格式化成ext2
文件系统。我们这里是要演示下parted
命令的格式化方法。
parted
交互命令的格式化命令为mkfs
,命令如下:
mkfs NUMBER FS-TYPE
:在分区上建立文件系统。
再查看硬盘的分区情况
退出
上图提示你,如果需要让分区自动挂载,需要手动修改etc/fstab
文件。
如果要把硬盘格式化成ext4
文件系统,需要执行mkfs
命令,重新对硬盘进行格式化。(注意不是parted
交互命令中的mkfs
命令,而是系统命令mkfs
)!
执行[root@localhost ~] # mkfs -t ext4 /dev/sdb1
将sdb1
分区格式化为ext4
文件系统之后,就可以进行分区的挂载了。如下图:
如果你需要开机自动挂载,手动修改etc/fstab
文件即可。
5、调整分区大小
parted
命令还有一大优势,就是可以调整分区的大小(windows中也可以实现,不过需要转换成动态磁盘,要不就需要依赖第三方工具,如硬盘分区魔术师)。起始Linux中LVM和RAID是可以支持分区调整的,不过这两种方法也可以看成是动态磁盘方法。使用parted
命令调整分区大小要更加简单。
注意:
parted
调整已经挂载使用的分区时,是不会影响分区中的数据的,也就是说数据不会丢失。但是一定要先卸载分区,再调整分区大小,否则数据是会出现问题的(有一定几率)。还有要调整大小的分区必须已经建立了文件系统(格式化),否则会报错。
卸载硬盘分区
sdb1
[root@localhost ~] # umount /dev/sdb1
使用
parted
命令调整分区大小,执行resize
命令。
resize NUMBER START END
:修改分区大小。
[root@localhost ~] # parted /dev/sdb(parted 命令不能加分区号)
注意:使用
parted
命令调整分区大小,文件系统必须是ext2
,否则命令执行不了。我们上边把sdb1
分区格式化成ext4
,是不行的。(这个知道就可以了,如果需要调整分区大小,用LVM调整就好。)
6、删除分区
删除分区前提,要先把分区的自动挂载在/etc/fstab
文件删除,然后用umount
卸载掉分区的挂载。在执行parted
命令的删除分区命令。
rm NUMBER
:删除分区。
还有件事要注意,
parted
中所有的操作都是立即生效,没有保存生效的概念。这点和fdisk
交互命令明显不同,所以所做的所有操作大家要倍加小心。
那么到底使用
fdisk
命令进行分区,还是parted
命令进行分区呢?这个完全看个人习惯,我更加习惯fdisk
命令。