パーティション情報を表示する partinfo

partinfoはMBRや各拡張パーティションにあるパーティションテーブルの情報を表示するためのコマンドである。パーティションテーブルの構造を勉強する目的で作ってみたシェルスクリプトである。デバイス・ファイルやイメージファイルを指定したり、他のコマンドからの標準入力としてのMBR情報を解析して表示する。

[root@linux ~]# partinfo -p 3 hdd-2.img
Partition 3
        Boot Flag       = [00]
        Start Hd/Sc/Cy  = [00/01/010] 0/1/16
        Partition Type  = [05] "DOS 3.3+ Extended Partition"
        End Hd/Sc/Cy    = [7c/3e/01f] 124/62/31
        Start LBA       = [0001e460] 124,000 sector (63,488,000 bytes offset)
        Number of LBA   = [0001e460] 124,000 sectors (63,488,000 bytes)
[root@linux ~]#

とか、

[root@linux ~]# dd if=hdd-2.img bs=512 skip=124000 count=1 | partinfo -p 1
Partition 1
        Boot Flag       = [00]
        Start Hd/Sc/Cy  = [01/01/010] 1/1/16
        Partition Type  = [83] "Linux native partition"
        End Hd/Sc/Cy    = [7c/3e/017] 124/62/23
        Start LBA       = [0000003e] 62 sector (31,744 bytes offset)
        Number of LBA   = [0000f1f2] 61,938 sectors (31,712,256 bytes)
[root@linux ~]#

という風に使う。(2つ目の例は、拡張パーティションパーティションテーブルを参照しているところ。)パーティションを指定する"-p"がなければ全ての基本パーティション(4つ)を表示する。シェルスクリプトなので、特に説明は要らないかと思う。(hexdumpの出力を色々と設定できる、という機能を使っている。)

インストールの方法

以下のプログラム(program list of "partinfo")をコピー&ペーストして、/usr/local/bin/partlistというファイルに保存して、実行権を与えておく。

[root@fedora-8 ~]# cat > /usr/local/bin/partlist
【ブログからコピーしたプログラムをペーストする。最後に Ctrl-D を入力して終了。】
[root@fedora-8 ~]# chmod +x /usr/local/bin/partlist

あとは、実行するだけ。
なお、partlistの引数の処理に "shargs" という別のプログラムを利用している。partlistを利用する場合にはshargsも必要になる。ただ、shargsも同様にシェルスクリプトとして書かれているので、上記と同じ要領で簡単にインストールできる。(shargsについては「シェルスクリプトの引数を処理するためのシェルスクリプト」を参照。プログラムは「program list of "shargs" without line-number」からコピーしてくる。)shargsを /usr/local/bin に置いてあるという前提で partlistは作っているので、もし異なる場所に設置しているのであれば partlistの中の ". /usr/local/bin/shargs"の部分を適宜変える。