web-dev-qa-db-ja.com

/ dev / hda2がプライマリパーティションか拡張パーティションかを知る方法

IDEドライブに4つのプライマリパーティションがすべて存在する場合、次のように番号が付けられます。

  • / dev/hda1
  • / dev/hda2
  • / dev/hda3
  • / dev/hda4

プライマリパーティションが1つあるディスク上のパーティションもあり、唯一の拡張パーティションには次のように番号が付けられます。

  • / dev/hda1(プライマリ)
  • / dev/hda2(拡張)

この命名戦略は混乱を招きます。
名前の付け方:/dev/hda2両方の場合:

  • プライマリパーティション
  • 拡張パーティション

問題を表現する別の方法:プライマリパーティションか拡張パーティションかを区別する方法

6
Abdennour TOUMI

端末からparted /dev/hdaと入力し、結果としてprintと入力します。

Number  Start   End    Size   Type     File system  Flags     
 1      32.3kB  107MB  107MB  primary  ext3         boot, raid
 2      107MB   250GB  250GB  primary               raid 
3
i2day

fdisk -l /dev/hdaまたは同様のツール(sfdisk -l /dev/hdaparted -l、…)の出力を確認します。

パーティションがプライマリであるか拡張であるかは、その番号からはわかりません。従来のPCパーティションスキームでは、1、2、3、または4の番号が付けられた各パーティションをプライマリまたは拡張できます。 (複数の拡張パーティションを持つことは可能ですが、お勧めしません。Linux自体は気にしませんが、一部の管理ツールはそうします。)

ルートアクセスなしで確認するためのほぼ保証された方法があります。/proc/partitionsで各パーティションのサイズを調べることができます。拡張パーティションのサイズは常に単一のブロックとして報告されます。たとえば、次の例では、sda4は拡張パーティションです。

major minor  #blocks  name
…
   8        1     489951 sda1
   8        4          1 sda4

いつでも試すことができますSudo cfdisk /dev/hdaすべてのパーティションを含むテーブルを表示します。また、プライマリパーティションか拡張パーティションかを示します。

0
makos

プライマリパーティションのパスだけが欲しかったので、これを思いつきました。

Sudo fdisk -l 2> /dev/null | awk '$2 ~ /\*/ {print $1}'
  • fdisk -lはパーティションを一覧表示し、
  • 2> /dev/nullエラーメッセージをリダイレクトして、印刷しないようにします。パーティションが物理ディスク上にないというメッセージが何度も表示されました。
  • awkにパイプして出力を処理します:
    • $2は2番目のワード(Boot列の値)を参照し、
    • $2 ~ /^\*$/は、2番目の単語がアスタリスクのみである行のみに一致することを示します。
    • {print $1}は、前の式に一致する行の最初のWordを出力します。これはDevice列です。
0
Nick Bull