Linux分区工具
fdisk, cfdisk, sfdisk
fdisk是一个基于菜单的分区表管理工具,可以查看分区信息,进行大多数分区操作,比如最常用的新建删除,man page上提示这个程序有一些bug,尽量不要使用。cfdisk功能和fdisk相似,用户界面基于curses库,相对fdisk的菜单命令式比较友好,推荐使用。sfdisk则是的非交互版本,一切操作都在命令行参数中给出,比较适合在脚本中使用,但是man page里面也说了,for hackers only,不推荐新手尝试(本文章不做具体解释)。
]# cfdisk /dev/sdb
操作/dev/sdb的分区表,注意参数应该是一个磁盘,而不是一个分区
如果省略磁盘参数,则默认是/dev/sdb。进去后是一个非常直观的界面,列出了所有分区的信息,底部是可对当前选择项进行的操作,新建或删除分区都非常简单。cfdisk还可以选择分区的类型,不过在这里给出没有非常具体的文件系统,而且选择以后似乎也不会实际格式化分区建立文件系统,只是更改一下分区头部的信息,所以建议只用cfdisk进行分区操作,分好区后用mkfs格式化。
parted
parted是所有磁盘工具中最强大的一个,提供的是与fdisk相似的基于菜单命令的界面,能识别mbr和guid分区表,提供新建删除修复分区对齐检查以及改变分区和磁盘配置的功能。用法和上面相似
# parted /dev/sdb
其中新建分区的操作比较精细,需要提供起始扇区和终止扇区,如果输错的话很可能破坏现有的扇区,所以不建议在这里新建分区。我觉得parted真正强大之处在于它可以在磁盘分区表损坏的时候正常工作,并提供新建分区表的功能,而cfdisk和cgdisk在分区表损坏的时候无法正常工作。mktable菜单命令可以擦除所有磁盘分区数据并新建分区表,输入msdos来新建传统的mbr分区表,或者输入gpt新建guid分区表。
gparted(图形界面)
gparted是parted的图形界面版本,提供了与parted同样强大的功能,但易用性上要好得多。在这里可以完成parted,cfdisk,mkfs能完成的几乎所有操作,并且在界面的上半部分有一个磁盘分区布局的图,可以非常清楚的显示分区大小及相对位置,下半部分是分区的列表,可以分别对每个分区进行丰富的操作。用法也很简单
# gparted /dev/sdb
可能gparted唯一的缺点就是需要图形界面,而在某些情况下是没有图形界面可用的,并且在一定程度上图形界面是不符合黑客的审美的
gdisk, cgdisk, sgdisk
这三个命令与*fdisk系列命令相对应,区别是*fdisk只能识别传统的mbr分区表,而*gdisk这三个命令只能识别新的guid分区表。guid分区表是一种为替代传统的mbr分区表而发明的新的磁盘分区机制,克服了很多mbr的历史局限性。但是由于固件支持以及软件兼容性的原因,guid分区表在实际安装使用中会出现很多几乎是不可克服问题。比如,你应该要把整块硬盘格式化,才能在磁盘上建立guid分区表;然后,你的windows也必须用uefi方式而非传统的bios方式启动,这又涉及到固件硬件的支持问题等等……
cfdisk使用方法如下:
1.新增一块2G的硬盘,lsblk查看磁盘信息,可以看到sdb磁盘大小为2G
2 . 使用cfdisk来对设备sdb来进行分区操作。
输入以上命令后,屏幕出现以下界面:
光标默认在“新建”上,按下回车键。按照以下步骤(每一步都需要键入回车键确认):
主分区(逻辑分区)->大小(MB,此处需要输入新建分区的大小,输完之后按回车键)->类型(根据实际需求进行选择)->写入(回车键之后输入“是”)。
以上步骤操作完成之后如下图所示:
3 . 根据实际情况格式化挂载使用或者进行LVM操作即可
fdisk使用方法如下:
]#lsblk
]#fdisk /dev/sdc
]#lsblk
fdisk分区方式最后需要w保存退出,不然操作无效,分区不会写入到磁盘
parted使用方法如下:
]#lsblk
]#parted /dev/sdd
或者]#parted进入parted分区工具后(parted) select /dev/sdd,后面不走相同
制作分区的方法可以使用help mkpart命令
(parted help mkpart)
(parted) mkpart primary 0 2047MB
(parted) quit (退出parted)
当你退出parted,修改会自动保存,谨慎操作,确保正确无误。
当添加新的存储设备时,请确保在开始更改其分区表之前确定正确的磁盘。
如果错误地更改了包含计算机操作系统的磁盘分区,会使您的系统无法启动