我只是以一种更简单的方式做到了这一点:
# sfdisk -d /dev/sdb > sdb.bkp
为了安全起见
# cp sdb.bkp sdb.new
现在编辑sdb.new,仅更改行顺序和分区号,如我的情况:
从
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start= 1026048, size=975747120, Id=83
/dev/sdb2 : start= 2048, size= 204800, Id=83
/dev/sdb3 : start= 206848, size= 819200, Id= b
/dev/sdb4 : start= 0, size= 0, Id= 0
至
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start= 2048, size= 204800, Id=83
/dev/sdb2 : start= 206848, size= 819200, Id= b
/dev/sdb3 : start= 1026048, size=975747120, Id=83
/dev/sdb4 : start= 0, size= 0, Id= 0
然后把它扔回磁盘分区表?
# sfdisk /dev/sdb < sdb.new
在我缩小并右移唯一的分区(sdb1)以使用磁盘在磁盘的开头添加两个较小的分区之后,我的编号顺序受到了干扰gparted
。
如果最后一个命令不起作用,例如我的情况,请将其更改为:
# sfdisk --no-reread -f /dev/sdb < sdb.new