0

Linux partition かんがえかた 聞かれたのでかいといた

パーティションとは?
「パーティション」とはLinuxやWindowsなどに関係なく一般的な仕組みの一つで、PCの記憶媒体、HDDやSSDその他メモリスティックなどにもうけることが出来る「しきり」のことだ。

パーティションという言葉だと分りにくいかもしれないが、一般的なWindowsの場合CドライブやDドライブなどというあれだ。

ドライブを割り振ってDドライブやその他ドライブとして管理することが多い。もう一台違う記憶媒体を認識させているかのように扱うことができる。

ドライブ

Linuxではドライブレターという概念はなく、パーティションを区切った場合、任意の場所にマウントして使用することになる。

ドライブは順にsda、sdb、sdc…といった具合に末尾のアルファベットが変化するのが一般的だ。そのドライブのなかのパーティションはsda1、sda2、sda3…sdaとして番号が割あてられることになる。

Windowsに慣れた方は戸惑うかもしれないが、デバイスがアルファベット順に認識されパーティションに番号が振られ、それをマウントするのだと言うことを押さえておけばいい。

気をつけなければならないのはパーティション設定は、インストールやセットアップ段階で設定された後は基本的に変更できない。厳密には出来ないわけではないが、推奨されないので、計画性をもってパーティションを設定しなければならない。

なぜパーティションをしきるのか?
実際のところ、一々しきりを作成しなくてもシステム自体は稼動できる。絶対パーティションを設けなければならないという訳ではないのだ。

しかしパーティションを利用することで管理上利便性が向上する。

システム領域とデータ領域の分離 
一般的な事例としてシステム領域とデータ領域を分離するというのがあげられる。

明確にシステムとデータを分けることにより、システムリカバリ時に、システム領域だけを初期化しデータを保持、または引き継ぎをすることができる。

Linuxの場合は「/」を「/home」を分けて、それを実現することが多い。後ほどご紹介していくが、「/home」はユーザごとのデータ保存領域だ。

またユーザが自分でインストールしたアプリケーションなどは「/usr」に保存されることが多い。こちらもある程度大容量な記憶媒体を使用しているなら分けることを検討してもよいだろう。

「/var」を分離するというのも有用だろう。ここには多くのログファイルが設置される。管理上ここを分離すると、ログファイルでシステム領域が食いつぶされシステムが停止するということがなくなる。しかし一般的にそれをしいられるのは余程大規模なサーバか、もしくは余程貧弱なリソースの上でLinuxが稼動している場合だろう。

swap領域を作る
また、重要なのが「swap」パーティションだ。

このパーティションはメインメモリが不足しているときにメインメモリのかわりとして使用できる領域のことだ。

これは高価なメインメモリを安価な記憶媒体で補うと同時に、メインメモリ以上の容量を確保するため、比較的に昔からある仕組みだ。とても便利だし、設定しない理由はない。

やたらと大きくしてもパフォーマンスは発揮されないので注意しよう。

基本パーティションと拡張パーティション、論理パーティション
パーティションの種類
古典的な「BIOS」(Basic Input Output System)と「MBR」(Master Boot Record)によるパーティション管理の場合、基本的に原始的なシンプルなパーティションは基本パーティションといい、4つまで作成可能だ。

しかし、実際にはもっと細かくパーティションをしきる必要がある場合がある。その場合拡張パーティションという特殊領域を確保しそのなかに論理パーティションというものを使いパーティションを細かく分割することになる。

MBRの管理方法の場合基本パーティション4つもしくは、基本パーティション3つと拡張パーティションの枠組み内の論理パーティションをしきることになる。

実際個人ユースの場合、基本パーティション4つ以内でも収まることが多いが、厳格な管理がしたい場合、拡張パーティションを一つ設け、その中で細かく分けるのが正しい選択だ。

分割の限界
LinuxではSATA接続の記憶媒体の場合15パーティションが限界である。基本3つと拡張パーティション内の論理パーティション12となる。また管理出来る限界は2TBまでとなっている。

対して昨今普及したUEFI(Unified Extensible Firmware Interface)+GPT(GUID Partition Table)の管理の場合、一般的に128個の基本パーティションを設定できる。

論理パーティションや拡張パーティションといったものを考えなくてもよい。また管理できる最大容量も8ZBと拡張されている。古いディストリビューションの場合BIOS+MBR、新しいディストリビューションの場合UEFI+GPTとなるのが一般的だろう。最近のマザーボードはUEFIを搭載している場合が殆どだがレガシーモードで稼動させることによりBIOS+MBRと同じ挙動を設定できる。

Linuxディレクトリ構造
Linuxの界隈は変化が激しいため、時代とともにこのディレクトリ配置は多少変わってくる可能性があるが、現状は以下のようになっている。

/
一番上のディレクトリここから樹木構造にディレクトリがつらなる。

/bin
現状 /usr/binへのシンボリックリンク(ショートカット)になっている。/usr/binには実行可能なバイナリつまりコマンドが納められている。

/boot
カーネルなどが納められている。

/dev
デバイスを制御するためのデバイスファイル郡が管理されている。

/etc
主に設定ファイルが設置される。

/home
一般ユーザのデータはここに保存される。

/lib
/usr/libへのシンボリックリンク(ショートカット)となっている。

/lib64
/usr/lib64へのシンボリックリンク(ショートカット)となっている。こちらは64Bitバイナリに対してのライブラリである。

/media
USBなどのリムーバルメディアなどがマウントされる

/mnt
現在mediaディレクトリが役割を肩代わりすることが多いが、手動でマウントするときなどはこちらへ外部記憶媒体をマウントすることが多い。

/proc
現状のシステムの情報CPUやメモリの内部情報がファイルとして設置される。

/root
rootユーザ専用のディレクトリ。

/run
起動しているプロセスID情報が設置される。

/sbin
/usr/sbinへのシンボリックリンク(ショートカット)になっている。システム根幹の基礎コマンドのバイナリが納められている。

/srv
FTPやHTTPなどの専用ディレクトリ、あくまでも基準的なものであり絶対ではない。

/sys
ドライバ関連のプロセスに関して。

/tmp
一時データ保存用のディレクトリ。

/usr
現在において実質システムのライブラリや実行ファイルなどが納められている。

/var
ログなどが多く設置される。

Linuxにおけるパーティション設計
ディレクトリを把握しても、具体的にどうパーティションを分割すればいいかわからないということもあるだろう。

目安をお伝えするので参考にしてほしい120GBほどのディスク容量を前提としている。

/boot
約200~300MB程度

/
状況にもよるが現代では120GBを超えているのがあたりまえなので、多く見積もって20GB割り当てる。

/usr
ライブラリおよび、プログラムバイナリがほぼここにインストールされることになるので多く見積もっておこう。30GBほどで大丈夫だろう。

/var
5GB確保しておけば大体は大丈夫だ。ログなど細々としたものが多くおかれる。

/home
データを大量に所持する場合最後に設定しパーティション設定をディスク目一杯つかうことになる。

swap
これはメインメモリと同じか倍程度が一般的ではあるが、もしメインメモリを8GB以上搭載しているのならばデスクトップ環境の場合でも省いてしまってもかまわないだろう。

目安としてメモリと同じか倍程度とお伝えしたが、実際それ以上のスワップメモリを設定しても、望んだパフォーマンスは得られない。もしそのような状態ならメインメモリを足したほうが賢明だからだ。

メインメモリが致命的に少ない場合体感のレベルでレスポンスが悪くなり、実用に耐えなくなるので、実質、倍のスワップ領域を設定する事態になったのなら一度ハードウェア強化を検討しよう。

実際にパーティションやファイルシステムを作成するには
初期の必要な設定は大概の場合インストール時にインストーラが設定してくれるので、ファイルシステムを選びフォーマットするのは外部メディアを接続し使用する場合が多いだろう。

手順は以下を参照していただきたい。

【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
まとめ
このページではLinuxのパーティションについてまとめてきた。

一般的なパーティションの設計についてもまとめているので、パーティションを設定する際の参考にしていただければと思う。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です