fdiskを使う

First Edition 2004.2.5

ハードディスクを使う際にはパーティーションを作成する必要があります。インストールするときにも パーティーションの作成が必要なのですが、自動的にやってくれるオプションもあります。もちろんfdiskも 使えますが、慣れていないとインストールの段階で使うのは難しいと思います。

ハードディスクを使うためには、少なくとも1つのパーティーションを作成しなければいけません。 パーティーションの作成とは、1つの物理ディスクを複数の論理ディスクへ分割することです。 これにより、1つのハードディスクを複数のハードディスクとして使用することが出来ます。 では、なぜ複数のパーティーションへ分割しなければならないのでしょうか?

記憶メディアに格納する情報としては大きく分けて2つ、「プログラム」と「データ」があります。 これらを同じハードディスクの同じパーティーションに格納してもかまわないのですが、 バックアップ、データの消去をする際などには、プログラムとデータが分かれていると都合がよいことが多いのです。 また、プログラムでもオペレーティングシステムプログラムとアプリケーションプログラムがあります。 これらも運用上異なるパーティーションに分割して格納されている方が都合がよいのです。

その他には、万がいちパーティーションへアクセスできなくなった場合、プログラム、データを分割しておけば 被害は最小限ですみます。

ではハードディスクのパーティーションを作成するプログラムであるfdiskを使ってみましょう。

  1. fdiskの基本(対象:2.6)(2004.2.5)
  2. パーティーション情報を表示する(pコマンド)(対象:全て)(2004.2.5)
  3. パーティーションを作成する(nコマンド)(対象:全て)(2004.2.5)
  4. パーティーションにアクティブフラグを設定する(aコマンド)(対象:全て)(2004.2.5)
  5. パーティーションのタイプを設定する(tコマンド)(対象:全て)(2004.2.5)
  6. fdiskを強制終了する(qコマンド)(対象:全て)(2004.2.5)
  7. fdiskを書き込んで終了する(wコマンド)(対象:全て)(2004.2.5)
  8. 基本領域、拡張領域、論理区画を設定する(対象:全て)(2004.2.5)

fdiskの基本

パーティーションを作成するには、fdiskコマンドを使います。
fdiskコマンドはかなり強力なツールであり、さまざまなファイルフォーマットに対応しています。
fdiskを起動するには、ルートになり、デバイスファイルを指定して起動します。
# fdisk /dev/hdb
このディスクのシリンダ数は 4865 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): 
ここで、コマンドを入力することにより、パーティーションの設定をすることができます。
mを入力すると、ヘルプが表示されます。
コマンド (m でヘルプ): 
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)
これらの中で主に使うのは、a,d,n,p,q,t,wです。
fdiskコマンドは、最後にwを押さない限りパーティーションの情報を変更しません。wで書き込みをしない限り、 メモ上での作業になります。もし間違った操作をしたとしても、qコマンドで変更を保存せずに終了すればパーティーションの情報は 変更されませんので、安心していろいろなパターンのパーティーションを試すことができます。
くれぐれもwコマンドを入力するときには注意してください。

パーティーションは、基本領域が4つ、拡張領域が1つ、拡張領域の中に論理区画を複数設定することができます。
ハードディスクのパーティーションは、hdb*という様にhdbの次に数字が付加されます。この数字は以下のようになっています。

基本領域1  hdb1
基本領域2  hdb2
基本領域3  hdb3
 拡張領域 hdb4
  論理区画1hdb5
  論理区画2hdb6

基本領域、拡張領域の番号は1〜4になり、論理区画は5以上の値をとります。なお、拡張領域は、基本領域の1つを消費しますので、 拡張領域が必要ならば、基本領域は3つまでしか設定できません。

例として、すでにパーティーションが切られているハードディスクの情報を示します。ここで注目すべき点は、 拡張領域は論理区画のすべてを含んでいるということです。始点と終点のブロック数を見ると良くわかると思います。 論理区画は拡張領域の中にしか作成できません。
ディスク /dev/hdc: ヘッド 255, セクタ 63, シリンダ 4866
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdc1   *         1       637   5116671    b  Win95 FAT32
/dev/hdc2           638      4866  33969442+   5  拡張領域
/dev/hdc5           638      1000   2915766    b  Win95 FAT32
/dev/hdc6          1001      2000   8032468+   b  Win95 FAT32
/dev/hdc7          2001      3000   8032468+  83  Linux
/dev/hdc8          3001      3023    184716   82  Linux スワップ
/dev/hdc9          3024      4866  14803866    c  Win95 FAT32 (LBA)
それでは、実際のコマンドの使いかたを簡単に示します。

パーティーション情報を表示する(pコマンド)

コマンド (m でヘルプ): p

ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム

パーティーションを作成する(nコマンド)

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p←p(基本領域)を指定する
領域番号 (1-4): 1←領域はまだ無いので、1を指定する
最初 シリンダ (1-4865, 初期値 1): ←初期値で良ければそのままリターンを押す
初期値 1 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-4865, 初期値 4865): 
←初期値で良ければそのままリターンを押す
初期値 4865 を使います

コマンド (m でヘルプ): p←もう一度パーティーション情報を表示してみる

ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdb1   *         1      4865  39078081   83  Linux

パーティーションにアクティブフラグを設定する(aコマンド)

コマンド (m でヘルプ): a←a(アクティブコマンド)を指定する
領域番号 (1-4): 1←領域番号を指定する

コマンド (m でヘルプ): p←もう一度パーティーション情報を表示してみる

ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdb1   *         1      4865  39078081   83  Linux

パーティーションのタイプを設定する(tコマンド)

コマンド (m でヘルプ): t←t(パーティーションのタイプコマンド)を指定する
領域番号 (1-6): 5←領域番号を指定する
16進数コード (L コマンドでコードリスト表示): l←パーティーションのタイプ一覧を表示する

 0  空              1c  隠し Win95 FAT3 65  Novell Netware  bb  隠し Boot Wizar
 1  FAT12           1e  隠し Win95 FAT1 70  DiskSecure Mult c1  DRDOS/sec (FAT-
 2  XENIX root      24  NEC DOS         75  PC/IX           c4  DRDOS/sec (FAT-
 3  XENIX usr       39  Plan 9          80  古い Minix      c6  DRDOS/sec (FAT-
 4  FAT16 <32M      3c  PartitionMagic  81  Minix / 古い Li c7  Syrinx         
 5  拡張領域        40  Venix 80286     82  Linux スワップ  da  非 FS データ   
 6  FAT16           41  PPC PReP Boot   83  Linux           db  CP/M / CTOS / .
 7  HPFS/NTFS       42  SFS             84  OS/2 隠し C: ド de  Dell ユーティリ
 8  AIX             4d  QNX4.x          85  Linux 拡張領域  df  BootIt         
 9  AIX ブート可能  4e  QNX4.x 2nd part 86  NTFS ボリューム e1  DOS access     
 a  OS/2 ブートマネ 4f  QNX4.x 3rd part 87  NTFS ボリューム e3  DOS R/O        
 b  Win95 FAT32     50  OnTrack DM      8e  Linux LVM       e4  SpeedStor      
 c  Win95 FAT32 (LB 51  OnTrack DM6 Aux 93  Amoeba          eb  BeOS fs        
 e  Win95 FAT16 (LB 52  CP/M            94  Amoeba BBT      ee  EFI GPT        
 f  Win95 拡張領域  53  OnTrack DM6 Aux 9f  BSD/OS          ef  EFI (FAT-12/16/
10  OPUS            54  OnTrackDM6      a0  IBM Thinkpad ハ f0  Linux/PA-RISC  
11  隠し FAT12      55  EZ-Drive        a5  FreeBSD         f1  SpeedStor      
12  Compaq 診断     56  Golden Bow      a6  OpenBSD         f4  SpeedStor      
14  隠し FAT16 <32M 5c  Priam Edisk     a7  NeXTSTEP        f2  DOS セカンダリ 
16  隠し FAT16      61  SpeedStor       a9  NetBSD          fd  Linux raid 自動
17  隠し HPFS/NTFS  63  GNU HURD または b7  BSDI fs         fe  LANstep        
18  AST SmartSleep  64  Novell Netware  b8  BSDI スワップ   ff  BBT            
1b  隠し Win95 FAT3
16進数コード (L コマンドでコードリスト表示): 82←パーティーションタイプを指定する

fdiskを強制終了する(qコマンド)

コマンド (m でヘルプ): q←q(強制終了コマンド)を指定する

# 

fdiskを書き込んで終了する(wコマンド)

コマンド (m でヘルプ): w←w(書き込み終了コマンド)を指定する
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
# 

基本領域、拡張領域、論理区画を設定する

コマンド (m でヘルプ): p←まずパーティーション情報を表示する

ディスク /dev/hdd: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム

コマンド (m でヘルプ): n←新しい区画を作成する
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p←基本領域を指定する
領域番号 (1-4): 1
最初 シリンダ (1-4865, 初期値 1): 
初期値 1 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-4865, 初期値 4865): 100

コマンド (m でヘルプ): p←パーティーション情報を表示してみる

ディスク /dev/hdb: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdb1             1       100    803218+  83  Linux


コマンド (m でヘルプ): n←新しい区画を作成する
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
e←拡張領域を指定する
領域番号 (1-4): 2
最初 シリンダ (101-4865, 初期値 101): 
初期値 101 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (101-4865, 初期値 4865): 
初期値 4865 を使います

コマンド (m でヘルプ): p←パーティーション情報を表示してみる

ディスク /dev/hdd: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdd1             1       100    803218+  83  Linux
/dev/hdd2           101      4865  38274862+   5  拡張領域


コマンド (m でヘルプ): n←新しい区画を作成する
コマンドアクション
   l   論理 (5 以上)
   p   基本領域 (1-4)
l←論理区画を作成する
最初 シリンダ (101-4865, 初期値 101): 
初期値 101 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (101-4865, 初期値 4865): 500

コマンド (m でヘルプ): p←パーティーション情報を表示してみる

ディスク /dev/hdd: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdd1             1       100    803218+  83  Linux
/dev/hdd2           101      4865  38274862+   5  拡張領域
/dev/hdd5           101       500   3212968+  83  Linux

コマンド (m でヘルプ): n←新しい区画を作成する
コマンドアクション
   l   論理 (5 以上)
   p   基本領域 (1-4)
l←もうひとつ論理区画を作成する
最初 シリンダ (501-4865, 初期値 501): 
初期値 501 を使います
終点 シリンダ または +サイズ または +サイズM または +サイズK (501-4865, 初期値 4865): 
初期値 4865 を使います

コマンド (m でヘルプ): p←パーティーション情報を表示してみる

ディスク /dev/hdd: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdd1             1       100    803218+  83  Linux
/dev/hdd2           101      4865  38274862+   5  拡張領域
/dev/hdd5           101       500   3212968+  83  Linux
/dev/hdd6           501      4865  35061831   83  Linux

コマンド (m でヘルプ): t←パーティーションタイプを変更する
領域番号 (1-6): 5←領域番号を指定する
16進数コード (L コマンドでコードリスト表示): 82
領域のシステムタイプを 5 から 82 (Linux スワップ) に変更しました

コマンド (m でヘルプ): p←最終的なパーティーション情報を表示してみる

ディスク /dev/hdd: ヘッド 255, セクタ 63, シリンダ 4865
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdd1             1       100    803218+  83  Linux
/dev/hdd2           101      4865  38274862+   5  拡張領域
/dev/hdd5           101       500   3212968+  82  Linux スワップ
/dev/hdd6           501      4865  35061831   83  Linux

コマンド (m でヘルプ): w←パーティーションの編集が大和ったら書き込み終了コマンドを指定する
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
# 


[HOME]
since 2001.4.22