开发者

How to make parted always show the same unit

I use 开发者_开发百科parted in a script. For that reason I need parted to always use the same unit. Otherwise I am not able to do reasonable calculations.

In this example parted mixes KB and GB:

pcsyn-038 user # parted -l
Model: ATA ST9250315AS (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  21,5GB  21,5GB  primary  ext4
 3      21,5GB  248GB   226GB   primary  ext4
 2      248GB   250GB   2147MB  primary  linux-swap(v1)

This does not have any effect on the output:

parted /dev/sda unit MB


According to parted(1), unit can be one of:

  • s sectors
  • B bytes,
  • kB, MB, GB, TB,
  • % percentage of device size,
  • cyl cylinders,
  • chs cylinders, heads, sectors, or
  • compact megabytes for input, and a human-friendly form for output.

e.g:

$ for hdd in /dev/sd? ; do 
      parted -m $hdd unit MB print; done  |\
  column -s: -t
BYT;
/dev/sda  500108MB  scsi      512       512       msdos  ATA WDC WD5002ABYS-0;
2         0.03MB    60003MB   60003MB   reiserfs  ;
3         60003MB   60250MB   247MB     ;
4         60250MB   499858MB  439608MB  ;
5         60250MB   75253MB   15003MB   ext3      ;
6         75253MB   200253MB  125000MB  ext3      ;
7         200253MB  499858MB  299606MB  ;
1         499858MB  500105MB  247MB     ext2      boot;
BYT;
/dev/sdb  500108MB  scsi      512       512       msdos  ATA ST3500418AS;
2         0.03MB    60003MB   60003MB   reiserfs  ;
3         60003MB   60250MB   247MB     ext3      ;
4         60250MB   499858MB  439608MB  ;
5         60250MB   75253MB   15003MB   ;
6         75253MB   200253MB  125000MB  ;
7         200253MB  499858MB  299606MB  ;
1         499858MB  500105MB  247MB     ext2      boot;


I think you should not use the -l argument of parted but the print subcommand:

parted /dev/sda unit MB print

When I do it this way I get all sizes in MB.


The fdisk utility has a much more consistent and precise output. It uses /proc/partitions to determine what partitions are used. parted is a more an end-user utility as it's easier to use.

Note: generally each block-device defines it's own blocksize. Get more information on the number of blocks per device by specifing each device.

What do you want to calculate? If you need some measurement of free disk space, it's better to use du.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜