ハンドブック:Alpha/ブロック/ディスク

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:Alpha/Blocks/Disks and the translation is 100% complete.


スライス

理論的にはディスク全体をLinuxシステムに使用することが出来ますが、実際にはほとんど行われません。その代わりに、ディスクブロックデバイス全体を小さく、より扱いやすいブロックデバイスに分割します。Alphaシステムでは、これはスライスと呼ばれます。

注意
これより先のセクションでは、インストールの説明でARC/AlphaBIOSのセットアップ用のパーティショニングを使用します。個人の好みに合わせて調整してください!

パーティション構成の設計

パーティション数とサイズ

パーティションの個数は環境に大きく依存します。例えば、多数のユーザがいる場合、セキュリティを向上し、バックアップを容易にするために/home/を分離することを推奨します。もしGentooがメールサーバとして動作する場合は、 /var/ を分離し、すべてのメールを /var/ に保存すべきでしょう。適切なファイルシステムの選択は、パフォーマンスを最大限向上します。ゲームサーバでは、ほとんどのゲームは/opt/にインストールされているので、/opt/を分離すべきでしょう。理由は/home/ディレクトリと同様にセキュリティとバックアップです。多くの場合、 /usr/ は大きく確保すべきです。/usr/には大部分のアプリケーションが配置されるだけでなく、既におよそ650MiBを使用しているGentoo ebuildリポジトリが、ほとんどの場合この場所に置かれるからです(既定の場所は/var/db/repos/gentooです)。このディスクスペース推定量は、既定では/var/cache/以下に保存されるbinpkgs/ディレクトリやdistfiles/ディレクトリを除外しています。

これらは管理者がやりたいことに大きく依存します。パーティションやボリュームを分離することには下記の利点があります。

  • それぞれのパーティションまたはボリュームに対して、最も性能が高いファイルシステムを選択できます
  • ゾンビプロセスがパーティションまたはボリュームに継続的に書き込みをした場合でも、システム全体の空き領域を使い切ることはありません
  • 必要ならば、複数のチェックを並行して実行することで、ファイルシステムチェックの時間を短縮できます (複数のパーティションよりも複数のディスクの方が効果があります)
  • リードのみ、nosuid(setuidビット無効)、noexec(実行ビット無効)等のマウントオプションによって、セキュリティが向上します

しかし、複数パーティションにはデメリットもあります。もし適切に設定されない場合、あるパーティションが空き領域をたくさん持ち、別のパーティションにはまったく空き領域がなくなるといったことが起こり得ます。特に/usr//var/いった重要なマウントポイントに対して、しばしば管理者は他のブートスクリプトが動作する前にパーティションをマウントするために、initrmfsを使用しなければならなくなるでしょう。これはいつも成り立つというわけではありません。結果はよく変わるのです。

また、 SCSIやSATAでは仕様上の制約により、GPTラベルを使用しない限りは 15個までしかパーティションを作れません。

スワップ領域について

スワップパーティションについて完璧なパーティションサイズというものはありません。スワップ領域の目的は、メインメモリ(RAM)が逼迫した際、カーネルにディスク領域を提供するためにあります。スワップ領域があれば、カーネルは最近最も使われていないメモリ領域をディスクに書き出し(スワップもしくはページアウト)、メモリを開放します。もちろん、もし急にメモリが必要になった場合は、これらのページはメモリに戻す(ページイン)必要があります。これには多少なりとも時間が必要です。(メインメモリと比較してディスクはとても遅いためです)

システムがメモリを大量に消費するアプリケーションを実行しないとき、またシステムが多くの空きメモリを持っているときは、それほど大きいスワップ領域は必要ではありません。しかし、スワップ領域はハイバネーションのときに全メモリを保存するためにも使われます。そのためハイバネーションが必要な場合は、より大きい、最低でもインストールされている全メモリと同程度のサイズのスワップ領域が必要です。


ディスクをパーティションに分けるのにfdiskを使う(SRMのみ)

以下のパートではSRM用に、この例のようなスライスレイアウトを作成する方法を説明します:

スライス 説明
/dev/sda1 スワップスライス
/dev/sda2 ルートスライス
/dev/sda3 フルディスク(必須)

スライスレイアウトはお好みで変更してください。

利用可能なディスクの特定

どのディスクがシステムで動作しているかを確認するためには、以下のコマンドを使用してください:

IDE ディスクの場合:

root #dmesg | grep 'drive$'

SCSI ディスクの場合:

root #dmesg | grep 'scsi'

出力では、どのディスクが検出されたか、そしてディスクに対応する/dev/の項目が表示されます。以下のパートではディスクは/dev/sdaにあるSCSIディスクであると仮定します。

そして fdisk を実行:

root #fdisk /dev/sda

すべてのスライスの削除

もしハードディスクが完全に空ならば、まずBSDディスクラベルを作成します。

Command (m for help):b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
A bunch of drive-specific info will show here
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

まず'c'-スライス(BSDディスクラベルを使用するのに必要)以外のすべてのスライスを削除することから始めます。以下で、どのようにスライスを削除するかを示しています(この例では'a'を使用します)。この作業を他のすべてのディスクにも行ってください(繰り返しますが、'c'-スライス以外です)。

pを使用して、存在するすべてのスライスを確認してください。dはスライスを削除するのに使います。

BSD disklabel command (m for help):p
8 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        1       235*      234*    4.2BSD     1024  8192    16
  b:      235*      469*      234*      swap
  c:        1      5290*     5289*    unused        0     0
  d:      469*     2076*     1607*    unused        0     0
  e:     2076*     3683*     1607*    unused        0     0
  f:     3683*     5290*     1607*    unused        0     0
  g:      469*     1749*     1280     4.2BSD     1024  8192    16
  h:     1749*     5290*     3541*    unused        0     0
BSD disklabel command (m for help):d
Partition (a-h): a

すべてのスライスに対してこの作業を行ったあと、一覧は以下のようになるはずです:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

スワップスライスの作成

Alphaベースのシステムでは独立したブートスライスを作成する必要はありません。しかしながら、最初のシリンダはabootイメージが置かれるため、使用することが出来ません。

3番目のシリンダより、合計サイズ1GBのスワップスライスを作成します。nを使用して新しいスライスを作成してください。スライスを作成したら、スライスのタイプを1(数字の一)、すなわちスワップに変更します。

BSD disklabel command (m for help):n
Partition (a-p): a
First cylinder (1-5290, default 1): 3
Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):t
Partition (a-c): a
Hex code (type L to list codes): 1

これらの段階を終えたら、レイアウトは以下のような感じになるはずです:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  c:        1      5290*     5289*    unused        0     0

ルートスライスの作成

それではルートスライスを、スワップスライスの最後のシリンダの次より作成します。pコマンドを使用して、スワップスライスの終了位置を確認してください。この例では、終了位置は1003ですので、ルートスライスを1004より作成します。

現在fdiskにはバグがあり、fdiskが、利用可能なシリンダ数が実際のシリンダ数よりも1多いと見なしている問題があります。言い換えると、最後のシリンダを指定する時、シリンダ数を1つ減らしてください(この例では5290)。

スライスを作成したら、タイプを8、つまりext2に変更します。

BSD disklabel command (m for help):n
Partition (a-p): b
First cylinder (1-5290, default 1): 1004
Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):t
Partition (a-c): b
Hex code (type L to list codes): 8

結果的にスライスレイアウトはこのようになるはずです:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  b:     1004      5289      4286       ext2
  c:        1      5290*     5289*    unused        0     0

スライスレイアウトを保存し終了する

wを打ちfdiskを終了してください。この操作はスライスレイアウトの保存もします。

Command (m for help):w

ディスクをパーティションに分けるのにfdiskを使う(ARC/AlphaBIOSのみ)

以下のパートではARC/AlphaBIOS用に、この例のようなパーティションレイアウトを作成する方法を説明します:

パーティション 説明
/dev/sda1 ブートパーティション
/dev/sda2 スワップパーティション
/dev/sda3 ルートパーティション

パーティションレイアウトはお好みで変更してください。

利用可能なディスクの特定

どのディスクが動作しているかを確認するためには、以下のコマンドを使用してください:

IDE ディスクの場合:

root #dmesg | grep 'drive$'

SCSI ディスクの場合:

root #dmesg | grep 'scsi'

この出力から、どのディスクが検出されたか、そしてディスクに対応する/dev/の項目がどれかを確認するのは簡単なはずです。以下のパートではディスクは/dev/sdaにあるSCSIディスクであると仮定します。

そして fdisk を実行:

root #fdisk /dev/sda

すべてのパーティションの削除

もしハードディスクが完全に空ならば、まずDOSディスクラベルを作成します。

Command (m for help):o
Building a new DOS disklabel.

まずすべてのパーティションを削除することから始めます。以下で、どのようにパーティションを削除するかを示しています(この例では'1'を使用します)。この作業を他のすべてのパーティションにも行ってください。

pを使用して、存在するすべてのパーティションを確認してください。dはパーティションを削除するのに使います。

command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         478      489456   83  Linux
/dev/sda2             479        8727     8446976    5  Extended
/dev/sda5             479        1433      977904   83  Linux Swap
/dev/sda6            1434        8727     7469040   83  Linux
command (m for help):d
Partition number (1-6): 1

ブートパーティションの作成

MILOを使用して起動しているAlphaシステムでは、小さなvfatのブートパーティションを作成しなければなりません。

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8727, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)

スワップパーティションの作成

合計サイズ1GBのスワップパーティションを作成します。nを使用して新しいパーティションを作成してください。

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (17-8727, default 17): 17
Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

これらの段階を終えたら、レイアウトは以下のような感じになるはずです:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap

ルートパーティションの作成

それではルートパーティションを作成します。繰り返しますが、nコマンドを使用してください。

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (972-8727, default 972): 972
Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727

これらの段階を終えたら、レイアウトは以下のような感じになるはずです:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap
/dev/sda3             972        8727     7942144   83  Linux

パーティションレイアウトを保存し終了する

wを打ち、fdiskでの変更を保存してください。

Command (m for help):w

パーティションを作成したので、ファイルシステムを作成するに進んでください。