webee / xpart

auto disk partitioning.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

script tool that auto partition.

[xpart]
<环境>
bash>=4.2
fdisk>=2.20.1
parted>=2.3
其它环境不能保证可正常运行
应该大部分环境可以运行
<说明>
只有root用户可以运行
mbr大小:2048s/1MiB
默认显示单位:MiB
默认寻找方向:由低到高

命令行选项:
	-d|--device:指定要操作的块设备
-动作:
	-I|--info:得到设备分区表信息
	-e|--empty:新建空白msdos分区表,所有已有分区将丢失
	-n|--new:新建分区
	-r|--remove:移除一个分区,-rn,n为分区号
-参数选项
	-D|-direction:优先地址方向,h:high/l:low,默认从低到高
	-t|-type:指定新建分区类型,p:primary,e:extended,l:logical
		单位:s:sector,k:KiB,m:MiB,g:GiB,t:TiB,p:PiB,忽略大小写
	-S|--start:指定新建分区起始位置,NNNx,x为单位
	-E|--end:指定新建分区结束位置,NNNx,x为单位
	-s|--size:指定新建分区大小,NNNx,x为单位
	-F|--format:指定新建分区格式化时的文件系统类型,vfat/fat16/fat32/ntfs/ext2/ext3/ext4/swap/...
	-f|--force:当指定的参数有误时,强制按调整参数执行/或者执行危险操作时
	-v|--verbose:操作结束后,输出操作细节(新建分区的信息)
	-x|--donot_execute:假执行,预查效果(将建分区的信息)
-其它选项
	-u|--unit,指定输出显示的单位,s/k/m/g/t/p
    -h|--help, 输出帮助信息
    -V|--version,显示版本


[新建分区的策略]
<分区类型确定>
1.当指定了类型时按类型来操作,不能满足则报错
错误:
    1.p,e:主分区已经有4个
    2.l:没有扩展分区
4.没有指定类型:
只指定了start.end时:
    优先主分区,其次有扩展分区则建逻辑分区,否则无法新建
按size分区时:
    在大小都满足时优先主分区,否则选择大的区间的.

<分区位置确定>
1.先满足大小,再满足位置
2.两种方式,指定大小size,或者start.end
3.只指定了size,则根据方向来确定最满足区间
4.指定了start.end,size,则根据情况3算
5.指定了start,size,则先按start.start+size算,不成功(位置变化了,或者大小变了),再按情况3算
6.指定了end,size,则先按end-size.end算,不成功,同5
7.只指定了start.end,则找到最满足,最接近的区间(不考虑大小)
8.只指定start,则找从start开始寻找最接近区间
9.只指定end,则从0开始寻找到最接近区间
10.什么都没指定,则按方向寻找第一个区间

[使用举例]
1.获得分区信息:
./xpart.sh /dev/sdb -I -ug
以gib为单位显示sdb的分区信息

2.新建分区表
./xpart.sh /dev/sdb -e -f
强制新建分区表,没有-f则需要确认

3.新建分区
1)./xpart.sh /dev/sdb -n -s10g -fv -Dh -Fext3
新建一个10g的分区,由于-s10g不能明确一个分区,将由程序自动判断
如果没有-f选项,则将输出判断调整结果,而不会执行。
-v选项使程序输出执行结果。
-Dh使程序优先选择高地址分区
-Fext3指定格式化成ext3文件系统
2)./xpart.sh /dev/sdb -n -S120m -s50m -fx
从120m的位置开始,新建一个50m的分区
-f强制执行调整结果
-x则指明假执行,只显示调整结果,并正确返回
3)./xpart.sh /dev/sdb -n -E10g -s5g -fv -ug
以10g为结尾,新建一个5g的分区
-ug指明用gib为单位显示输出
4)./xpart.sh /dev/sdb -n -te -s12g -fv -ug
新建一个12g的扩展分区

-f的说明:
只有分区指定完全正确,才不需要-f强制执行
即指定了-S,-E,同时没有指定-s(否则按size分区),并且-S,-E正好可以分一个区。

4.删除分区
./xpart.sh /dev/sdb -r2
删除第二个分区

About

auto disk partitioning.


Languages

Language:Shell 100.0%