fdiskを使う First Edition 2004.2.5 ハードディスクを使う際にはパーティーションを作成する必要があります。インストールするときにも パーティーションの作成が必要なのですが、自動的にやってくれるオプションもあります。もちろんfdiskも 使えますが、慣れていないとインストールの段階で使うのは難しいと思います。 ハードディスクを使うためには、少なくとも1つのパーティーションを作成しなければいけません。 パーティーションの作成とは、1つの物理ディスクを複数の論理ディスクへ分割することです。 これにより、1つのハードディスクを複数のハードディスクとして使用することが出来ます。 では、なぜ複数のパーティーションへ分割しなければならないのでしょうか? 記憶メディアに格納する情報としては大きく分けて2つ、「プログラム」と「データ」があります。 これらを同じハードディスクの同じパーティーションに格納してもかまわないのですが、 バックアップ、データの消去をする際などには、プログラムとデータが分かれていると都合がよいことが多いのです。 また、プログラムでもオペレーティングシステムプログラムとアプリケーションプログラムがあります。 これらも運用上異なるパーティーションに分割して格納されている方が都合がよいのです。 その他には、万がいちパーティーションへアクセスできなくなった場合、プログラム、データを分割しておけば 被害は最小限ですみます。 ではハードディスクのパーティーションを作成するプログラムであるfdiskを使ってみましょう。
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〜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 |