
第1回 パーティション分割/非分割のセオリー
今回のお題は、パーティションです。WindowsとLinuxではパーティションに対する考え方もちょっと違います。私自身、初めてSlackwareをインストールするときにずいぶん悩んだものです。
関野史朗
2001/7/4
PC/AT互換機におけるパーティション
|
Windowsでは、原則として分割されたパーティションには独立したドライブ名が割り当てられます(図1)。これはHDDが普及し始めたころのMS-DOS Ver.3.xに由来すると思われます。当時、PC/AT互換機用のMS-DOS Ver.3.xはファイルシステムの制限で32Mbytesまでしか扱えませんでした。そこでHDDを複数の区画に分けて、各区画を32Mbytes以下とすることですべての領域を使おう、というのがパーティションの始まりではないかと想像しています。さらにさかのぼれば、ドライブ名という発想はインテルの8080という8bits CPU用OSであるCP/Mにまでたどれるでしょう。それ以前にはマイコン用のメジャーなOSは存在しませんでした。
![]() |
| 図1 DOS/Windowsのパーティション管理方法。各パーティションは「ドライブ」と呼ばれ、各ドライブは独立したディレクトリツリー構造を持つ。また、パーティション形式(基本、論理ドライブなど)によりドライブレターが変動する |
余談ながら、同じMS-DOS Ver.3.xでもPC-9800シリーズ用では32Mbytesの制限を受けた記憶がありません。改良したのか、そもそもPC/ATとPC-9800シリーズのアーキテクチャ上の違いだったのかは判然としませんが……。また、PC-9800シリーズ用のMS-DOSではformat.exeが領域管理とフォーマットの両方を行っていました。対してPC/AT互換機用ではfdisk.exeで領域を操作し、format.exeでフォーマットを行うようになっていました。PC-9800シリーズからPC/AT互換機に乗り換えた当初はこれが分からず、苦労したものです。
また、原則としてPC/AT互換機では1つのHDDに確保できるパーティションは4つまでです。これには回避策があって、拡張パーティションを使えばさらに増やせます(編注)。
| 編注:基本パーティション+拡張パーティションの合計が4を超えることはできない(例:基本3つ+拡張1つ)。つまり、基本パーティションがすでに4つある場合、拡張パーティションの作成は不可能となる。これは、MBR(マスターブートレコード)内にあるパーティションテーブルに4つ分のエントリしか用意されていないため。拡張パーティション内に作れる「論理ドライブ」はこの制約を受けない。 |
Linuxにおけるパーティション
|
Linuxのファイル名空間は1つです。つまり、HDDはすべて「/」(ルート)から順にたどっていけます。ハードウェア的には完全に独立したHDDであっても、これは変わりません(図2)。というよりも、Linuxの先輩であるUNIXが開発されたころはそれほど容量の大きなHDDがなく、複数のHDDを1つにまとめざるを得なかったということでしょう。
ちょっと実例を挙げてみましょう。話を簡単にするため、4GbytesのHDDを2Gbytesの基本パーティションと2Gbytesの拡張パーティションに分けているとします。Windowsでは基本パーティションがCドライブ、拡張パーティションがDドライブとなり、それぞれが独立したディレクトリ構造を持ちます。
対してLinuxでは、もう少し融通が利きます。とりあえず、基本パーティションを/ファイルシステムとして使うことにしましょう。あとは、
$ mount /dev/hda5 /home |
![]() |
| 図2 UNIX/Linuxのパーティション管理方法。各パーティションは、物理的に異なるドライブであっても/ディレクトリ下にディレクトリとしてマウントされ、単一のディレクトリツリーを構成する |
とすることで、拡張パーティションを/home以下に割り当てられます。こうすると、2つのパーティションは見かけ上1つのディレクトリ構造になるわけです。実際には、/ファイルシステムにいくら空きがあっても、/homeファイルシステムがいっぱいになるとそれ以上/home以下にはファイルを追加できなくなるのですが。
実は、MS-DOSにもかつてこれと同じ働きをするjoinコマンドが用意されていました。が、MS-DOS Ver.5のころにはなくなっています。これは優劣の問題ではなく、文化的なバックグラウンドが違っていたためでしょう。
逆に、/dev/hda5を/ファイルシステムにして、/homeに/dev/hda1を割り当てることもできます。実際にはいちいち手でコマンドを打ち込むのではなく、/etc/fstabの記述に従ってファイルシステムがマウントされます。HDDを増設した場合も、/etc/fstabの記述を変更することでファイルシステムに追加します。
なお、Linuxでは最初に見つかったIDE HDDから順にhda、hdb、hdcと名前を付けていきます。パーティションを表すときは、その後に数字を付けます。hda1は最初の基本パーティションで、hda2は2番目の基本パーティションです。拡張パーティションは5から始まります。Windowsのfdisk.exeに慣れていると複数の基本パーティションを作れるのが不思議に思えますが、Linuxのfdiskでは可能なのです(編注)。
| 編注:Windowsで基本パーティションが1つしか作れないのはfdisk.exeの仕様の問題で、OSレベルでは複数の基本パーティションを扱うことができる。Partition Magicなどのツールを使えば、Windows環境でも複数の基本パーティションを作成可能。 |
さて、現在のLinuxで標準的に使われているext2というファイルシステムでは、理論的に4Tbytesのパーティションまで扱えます。これだけを見れば、当分の間1台のHDDを1つのパーティションで使えそうです。ただし、現実問題としては4Gbytes、8Gbytes、34Gbytesあたりにさまざまな規格上の制約があります。IDEやBIOSの規格を決めたときには、まさかこれほど大容量のHDDが使えるようになるとは予想していなかったためです。
実際、私が使っていたマザーボードでは、10GbytesのHDDを認識しないどころか、ブートシーケンスがそこで止まってしまうというありさまでした。ただこれはBIOSの問題だったようです。ブート用に小さなHDDを用意して、10Gbytes HDDの認識をスキップすることで無事使えました。こうした制限に関しては、http://www.linux.or.jp/JF/JFdocs/Large-Disk-HOWTO.htmlに解説されています。
一般的に、新しいマザーボードほど制約が少なくなっています。しかし、中にはHDDの全容量を認識できないまでもマシン自体の起動が可能で、しかしながら巨大なパーティションからはOSをブートできない、という場合もあり得ます。こうしたときは、カーネルを収めるための領域を100Mbytesくらい確保する必要があるかもしれません。いったんブートしてカーネルがHDDの容量を正しく認識すれば、BIOSがどうであろうと関係ないので、カーネルを収めたパーティション以外は自由に配置できます。
| コラム BIOS |
| BIOSはBasic Input Output Subsystemの頭文字で、これまたCP/Mが採用して一般化したものです。いまでいうデバイスドライバのようなもので、機種依存部分をここに集めておき、移植の際にはここを書き換えるだけですむようにするのが目的でした。 |
PC/AT互換機のBIOSはシングルタスクのMS-DOSを前提とした設計で、マルチユーザー/マルチタスクのOSでは使えないのです。BIOSを使うのはブート時だけで、カーネルが動き出した時点ではまったく使わなくなり、BIOSの制限は問題にならなくなります。これはWindowsでも同様で、カーネルをメモリに読み込んで制御を移すカーネルローダさえBIOSで読み込めれば何とかなります。
|
1/2
|
| Index | |
| Windowsユーザーに教えるLinuxの常識 | |
| PC/AT互換機におけるパーティション | |
| Linuxにおけるパーティション | |
| 分割するべきか非分割か、それが問題だ | |
| 悩ましいスワップ領域確保 | |
| 注意が必要なパーティション操作 | |
| 連載 Windowsユーザーに教える Linuxの常識 |
| Linux Squareフォーラム Linux/システム学習関連記事 |
| 連載:Windowsユーザーに教えるLinuxの常識(全12回) Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授! |
|
| 連載:LFSで作って学ぶLinuxの仕組み(全4回) 管理者(root)は、何をしなければならないのか? 管理に際して検討すべきことは? 管理のための技術とは? など、駆け出し管理者のための考え方や方法論を検討する |
|
| 連載:Linux管理者への道(全8回) 「Linux From Scratch」というシンプルなLinuxをインストール&環境構築する作業を通して、LinuxがOSとして機能するための仕組みや設定を見直そう |
|
| Linux Squareフォーラム全記事インデックス |
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成・2 (2010/3/11)
IPパケットのディスティネーションアドレスを書き換える「DNAT」を使って、透過型プロキシを構築します - 一歩進んだ監視のカスタマイズ (2010/3/3)
スクリプトの実行結果などを取得できるユーザーパラメータを用いて、自分のニーズにぴったり合った監視を実現 - OSSライセンス順守の第一歩 (2010/2/18)
企業として、OSSライセンス違反を犯さないためには、どのような手順が必要か、いくつかアドバイスします - 無視できないフラグメンテーション問題への解答は? (2010/2/10)
今回は、メモリコンパクション、そしてメモリバリアを発行するシステムコールという2つのパッチについて深く紹介します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |








