Linux パーティションのサイズを変更する: 第 1 回 基本編

GParted を使用して定型のパーティション・サイズを変更する

Linux® システムはよく、それぞれにサイズが決まった複数のパーティションにインストールされます。しかし、ニーズの変化に応じてパーティションのサイズを変更する必要に迫られることは珍しくありません。Linux にはパーティションのサイズを変更するためのツールがいくつかありますが、パーティションのサイズ変更というタスクを、当初思ったよりも困難なものにする落とし穴や制約はさまざまにあります。この記事では Linux パーティションのサイズ変更タスクについて、基本的な準備手順から、グラフィカル・ユーザー・インターフェース (GUI) ツールを使用した一般的なサイズ変更シナリオに至るまで説明します。

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith はコンサルタントであり、『The Definitive Guide to Samba 3』、『Linux in a Windows World』、『Linux Professional Institute Certification Study Guide』など、UNIX や Linux に関する数々の著作もあります。彼は現在、ロードアイランドのウーンソケットに住んでいます。



2010年 8月 11日

Roderick の他の記事も読んでください

Roderick が書いたすべての developerWorks 記事を閲覧してみてください。あるいは、広範な技術ライブラリーでお気に入りの著者や興味のあるトピックを検索してみてください。製品、トピック、またはコンテンツのタイプを基準にして簡単に検索結果を絞り込むことができます。

皆さんが一般的なパーティショニングのアドバイスに従っているとしたら、お使いのディスクは複数のパーティションに分けられていることと思いますが、サイズを誤って設定してしまった場合、あるいはニーズに変更が生じた場合には、パーティションのサイズ変更が必要になってきます。パーティションのサイズを変更するには、サイズ変更に関する要件、そしてこのタスクに使用できるツールを十分に理解していなければなりません。大抵の場合、サイズ変更操作は円滑に進むはずです。けれども数え切れないほどの障害によって、不用心なユーザーだけでなく、十分に用心しているユーザーにでさえも問題が発生する可能性があります。

この記事ではまず、サイズ変更に使用するツールの基本的な機能とツールに伴う制約、そしてサイズ変更操作を始める前の準備ステップを説明してから、よく使われている GParted パーティション・サイズ変更ツール (Gnome Partition Editor としても知られています) について取り上げます。

注: 簡単のため、ここではパーティション・サイズの拡大、パーティション・サイズの縮小、パーティションの移動などを始めとするいくつかの操作を、「サイズ変更」という用語で表現します。場合によっては、これらの操作のうち、1 つは可能であっても、他は可能でないことがあります。サイズ変更操作によっては、他のサイズ変更操作と比べて本質的に高いリスクを伴うものもあります。このような違いが重要な場合には、その旨を注記します。

パーティションのサイズ変更に関する基本

パーティショニング・ツールを実際に使い始める前に、これらのプログラムで行える操作と、パーティショニング・ツールを使用するのが適切な場合について理解しておく必要があります。また、現行の構成内容をメモに控え、データのバックアップを準備しておくことも必要です。

パーティションのサイズ変更が必要な場合とは

まずは、パーティションとファイルシステムとの違いについて再確認しましょう。パーティションは、ディスク上の連続したセクターからなるコンテナーであり、単純なデータ構造によって定義されます。一方、ファイルシステムはパーティション内部に常駐するデータ構造です。コンピューターが個々のファイルを見つけることを可能にするファイルシステムは、パーティションよりも遥かに込み入っています。実際のところ、パーティションのサイズを変更するには、そのパーティションに含まれるファイルシステムのサイズも変更しなければならないのが通常です。ここでは簡単のため、「パーティションとそこに含まれるファイルシステムのサイズを変更する」という意味で、単に「パーティションのサイズを変更する」と表現します。

パーティションのサイズ変更には、本質的に多少のリクスを伴います。パーティションのサイズを変更するソフトウェアでは、下位レベルのパーティションおよびファイルシステムのデータ構造に手を加え、場合によっては大量のデータを移動しなければならないためです。ディスク上の破損データ、電源異常、システム・クラッシュなどの問題はいずれも、サイズ変更プロセスで壊滅的な障害を引き起こす可能性があります。このような理由から、軽率にパーティションのサイズ変更操作に取り掛かるのは禁物です。可能であれば常に、「バックアップの準備」の説明に従ってデータをバックアップしてください。

原則として、既存のセットアップが目下問題を引き起こしている場合、あるいはすぐに問題を引き起こしそうな場合を除き、私はサイズ変更を行わないようお勧めします。つまり、1 つまたは複数のパーティションがほとんどいっぱいになっているか、あるいは近い将来、パーティションがいっぱいになるほどのデータが追加されることが見込まれる場合に限り、サイズを変更してください。

サイズ変更の制約についても考慮する必要があります。例えば、特定のファイルシステムを縮小することはできません。そのため、新しいレイアウトでの基本パーティションと論理パーティションの配置は慎重に計画する必要があります。このような問題がサイズ変更計画の障壁となり、代替案を採用せざるを得なくなることもあります。これについては、連載第 2 回で説明します。

現状のパーティション使用状況データの入手

パーティションのサイズ変更操作を計画する際の最初のステップは、ディスクが現在どのようにレイアウトされているか、そしてどのパーティションがスペースを使い果たしているのかを知ることです。このような情報を入手するのに便利な方法としては、GParted を使用する方法が挙げられます。GParted が提示する、わかりやすい GUI 表示 (図 1 を参照) には、各パーティションの相対位置および使用しているスペースの量が示されます。残念ながら、GParted には必ずしも完全な情報が提供されているわけではありませんので、この表示されている情報をテキスト・モードの df、fdisk、またはその他のユーティリティーの出力で補ってください。

図 1. GParted が表示するディスク使用状況の要約情報
GParted が表示するディスク使用状況の要約情報

図 1 に示されているシステムでは、/usr パーティション (/dev/sdb5) が使い果たされていて、/home (/dev/sdb7) にはかなりの空きスペースがあります。このような状況でコンピューターにソフトウェアを追加するとしたら、問題が発生しかねません。このパーティションのレイアウトを考えると、/home のサイズを減らして、/usr のサイズを増やしたほうが良さそうです (図 1 は、緊急用ブート・ディスクから取得したものなので、「Mount Point (マウント・ポイント)」列には実行中システムのマウント・ポイントは反映されていないことに注意してください)。

ファイルシステム固有の機能

Linux は複数のネイティブ・ファイルシステムをサポートしています。また、デュアル・ブート・システムでは他のシステムとディスクを共有することもよくあります。一般に、実行できる操作という点で最も柔軟なファイルシステムとしては、ext2fs、ext3fs、ex4fs、ReiserFS、および Btrfs が挙げられます。これらのファイルシステムは、ほとんどの GParted 実装によって拡張/縮小することも、移動することもできます。一方、XFS と JFS は、拡張や移動には対応可能ですが、縮小することはできません。

一般的な Linux 以外のファイルシステムの中で、FAT と NTFS は拡張、縮小、移動が可能です。Macintosh で使用される HFS および HFS+ については、縮小および移動は可能ですが、拡張することはできません。ただし HFS+ パーティションについては、OS X のディスク・ユーティリティーで拡張できる場合もあります。

GParted で「View (表示)」 > 「File System Support (ファイルシステム・サポート)」を選択すると、GParted がサポートするファイルシステムおよび操作の表が表示されます。けれどもこの表を通常の Linux システムで表示してみると、サポートされる内容はディストリビューションによって異なることに気付くはずです。この後すぐに説明しますが、緊急用ディスクを使用する場合、サポートされるオプションは通常のシステムがサポートするオプションとは異なります。

新しいパーティション・レイアウトの計画

既存のパーティション・データおよび現行のファイルシステムで実行できる操作についての情報を入手した後は、新しいレイアウトの計画に取り掛かれます。新しいレイアウトを計画する際には、以下の重要な要素について考慮する必要があります。

  • 速度と安全性 — 通常、パーティションの開始ポイントを変更するのは、終了ポイントを変更する場合よりも時間がかかり、リスクも大きくなります。開始ポイントを移動すると、パーティション内のデータのほとんどを書き直さなければならなくなるためです。この影響は、パーティションのデータが多ければ多いほど大きくなります。
  • 非 Linux ファイルシステム — GParted とそのテキスト・モードのバージョンである GNU Parted では NTFS、FAT、HFS、および HFS+ ファイルシステムのサイズを変更することができますが、これらのファイルシステムを扱うときには、Linux のツールではなく、ネイティブ・オペレーティング・システムのツールを使用することを検討するとよいかもしれません。このことは特に、デュアル・ブート・システムでの Microsoft® Windows® ブート・パーティションに当てはまります。Windows ブート・パーティションの開始ポイントを変更すると、Windows がブート不可能になる可能性があるためです。
  • 基本パーティションと論理パーティションの違い — ほとんどの Linux コンピューターで使用されている MBR (Master Boot Record) パーティショニング・システムは、4 つの基本パーティションのみをサポートします。この 4 つのパーティションのうちの 1 つを拡張パーティションにして、任意の数の論理パーティションを持たせることは可能ですが、一部のオペレーティング・システム (Window など) は、基本パーティションからブートする必要があります。論理パーティションはいずれも単一の拡張パーティションに含まれていることが要件なので、連続していなければなりません。システムが MBR システムよりも新しい GPT (GUID (Globally Unique Identifier) Partition Table) を使用している場合には、GPT は 1 つのパーティション・タイプしかサポートしないことから、基本パーティションと論理パーティションの違いには実際的な意味がなくなります。
  • デバイス ID — Linux パーティションが使用しているデバイス ID (/dev/sda3 など) に留意してください。デバイス ID が変更された場合は、/etc/fstab ファイルまたはブート・ローダー構成 (通常は /boot/grub/menu.lst、/boot/grub/grub.conf、または /boot/grub/grub.cfg) を変更しなければならないことがあります。最近の多くのディストリビューションでは、これらのファイルでデバイス ID の代わりに UUID (Universally Unique Identifier) 番号を使用しているため、変更の必要がない場合もあります。また、新しいパーティション・レイアウトで重要なデバイス ID が変更されなければ、変更は不要です。注意する点として、基本パーティションに付けられる 1 から 4 までの番号には欠番が許されますが、論理パーティションに付けられる 5 以降の番号には欠番が許されません。したがって、基本パーティションを追加してもパーティション番号がまったく変更されないはずですが、論理パーティションを追加すると、他のすべての論理パーティションの番号が変更される可能性があります。

バックアップの準備

変更内容を計画し終わると、すぐに計画を実行に移したくしたくなるかもしれませんが、パーティション変更にはリスクが伴います。そのため、実際には重要なデータをバックアップしておかなければなりません。バックアップが可能でなければ、必要なハードウェアを購入してデータをバックアップするようお勧めします。パーティションのサイズ変更に伴うリクスは別としても、ハード・ディスクが故障することや、ソフトウェアに問題があるためファイルシステムが使いものにならなくなる可能性もあります。したがって、バックアップを用意しておくことが賢明です。

バックアップを取るメディアは、最も都合のよいメディアのどれを使っても構いません。バックアップを圧縮した後に記録可能 DVD に収まるのであれば、tar を使用してシステム・バックアップを作成することもできますが、最近のシステムには、1 枚の DVD には収まりきらないほどのユーザー・データがあるのが通常です。そのような場合には、外部ハード・ディスクなどの他のメディアを用いてユーザー・データをバックアップしなければならなくなります。

完全にバックアップすることが不可能な場合でも、/etc の中身は必ずバックアップしてください。このディレクトリーには重要なシステム構成ファイルが保管されているため、このディレクトリーのコピーを取っておくと、オペレーティング・システムを再インストールしなければならない場合でも、リカバリーの時間を短縮することができます。


GParted を使用したパーティションのサイズ変更

Linux でパーティションのサイズを変更するのに最も簡単な方法は、GUI GParted プログラムを使用する方法です。GParted は通常の Linux システムから実行することもできますが、このプログラムは現在マウントされている状態のパーティションでは動作しません。つまり、ルート (/) やシステムが機能する上で重要なパーティションのサイズを変更することはできないということです。したがって、ここでは Linux 緊急用ディスクを使用してサイズ変更を行う方法を説明します。緊急用ディスクをブートした後は、通常のシステムから実行する場合と同じように GParted を実行することができます。具体的には、ポイント・アンド・クリック操作でこのソフトウェアに目的の操作を指示するということです。

緊急用ディスクの実行

Linux には、PartedMagic や SystemRescueCd など、多くの緊急用ディスク・システムがあります (「参考文献」を参照)。また、Linux インストール・メディアを緊急用ディスクとして使うことも可能です。多くのディストリビューションには GParted や同様のユーティリティーにアクセスするためのレスキュー・モードが組み込まれています。ここでは PartedMagic 4.11 を使用する場合の方法を説明しますが、他のユーティリティーを使用する場合でも大体の流れは同じです。ただし、GParted の起動方法には違いがあります。

大抵の緊急用ディスクは x86 (32-bit) 形式ですが、システムが 64-bit バージョンの Linux を実行しているとしても、これらの緊急用ディスクは x86-64 (64-bit) のコンピューターで問題なく機能します。ファイルシステム・データ構造は、CPU (Central Processing Unit) のアーキテクチャーには左右されません。ただし、標準的なパーソナル・コンピューター (PC) のハードウェア上で実行しているのではない場合 (例えば Macintosh で実行している場合) には、そのハードウェアで緊急用ディスクが機能することを確認する必要があるかもしれません。

一般に、緊急用ディスクは Linux インストール・ディスクをブートするときと同じようにブートする必要があります。緊急用ディスクを挿入した後にコンピューターをリブートするとディスクがブートするシステムもあれば、ファンクション・キーを押してブート・デバイスを選択するか、ハード・ディスクからではなく光学式ドライブからブートするように BIOS (Basic Input/Output System) を調整しなければならないシステムもあります。具体的なブート方法はシステムに固有なので、詳細についてはシステムそれぞれのマニュアルを調べてください。

PartedMagic をブートするときには、ブート・メニューが表示されます。このメニューから「Default settings (Runs from RAM) (デフォルト設定 (RAM から実行))」を選択して、標準システムにブートします。システムがブートするとデスクトップが表れ、よく使われるツールのアイコンが表示されます。これらのアイコンの中に、GParted を起動する Partition Editor という名前のアイコンがあります。パーティションのサイズ変更を開始するには、このアイコンをダブルクリックします。

GParted での変更内容の指定

パーティションのサイズを変更するには、パーティションを右クリックして、ポップアップ・メニューから「Resize/Move (リサイズ/移動)」を選択します。すると、図 2 に示すダイアログ・ボックスが表示されます。このダイアログ・ボックスのグラフィカル・スライダーやテキスト入力フィールドを使用して、パーティションのサイズと位置を調整することができます。

図 2. GParted に用意された、パーティションのサイズを変更するためのポイント・アンド・クリック・インターフェース
GParted に用意された、パーティションのサイズを変更するためのポイント・アンド・クリック・インターフェース

図 2 では図 1 の /dev/sdb7 のサイズを変更するために、このパーティションの開始ポイントを右に移動して、/dev/sdb5 を拡張するためのスペースを空けています。図 1 のパーティションのサイズ変更を完了するには、/dev/sdb5 のサイズを変更する前に、スワップ・パーティション (/dev/sdb6) も右に移動する必要があります。あるいは、スワップ・パーティションを削除して作成し直すという方法もありますが、それには、/etc/fstab でスワップ・スペースへの UUID 参照を修正しなければならなくなります。スワップ・スペースを移動すると、/dev/sdb5 のサイズを拡大できるようになります。

図 2 に示されている「Align to (位置合わせ基準)」フィールドに注目してください。これは、GParted の最近のバージョンで新しく追加された機能です。この機能では、パーティションをシリンダー境界、あるいはメビバイト (MiB) 境界に合わせて位置合わせするか、このどちらも位置合わせの基準にしないかを設定することができます。古いディスクは通常、シリンダー境界に合わせてパーティショニングされますが、Windows Vista 以降ではディスクが MiB に合わせてパーティショニングされるのが一般的です。Linux ではどちらのタイプの位置合わせにも対応しますが、Windows XP とのデュアル・ブート・システムの場合には、シリンダーとの位置合わせが必要になるでしょう。一方、Windows Vista 以降とのデュアル・ブート・システムの場合、またはシステムが 4096 バイトのセクターからなる新しいディスクを使用している場合には、MiB に位置合わせする必要があるでしょう。

論理パーティションのスペースを基本パーティションに振り分ける場合、あるいはその逆を行うには、論理パーティションを囲む拡張パーティションのサイズを明示的に変更しなければなりません。その方法は、他のどのパーティションのサイズを変更する場合とも変わりませんが、パーティション・リストの上に表示された図で拡張パーティションのエントリーをクリックするよりも、拡張パーティションのリスト・エントリーをクリックしたほうが簡単です。

GParted では使用中のパーティションのサイズを変更することはできません。使用中のパーティションには、そのエントリーの隣に南京錠アイコンが示されます。パーティションを右クリックして「Unmount (アンマウト)」を選択すると、使用中のパーティションをアンマウントすることができます。注意する点として、拡張パーティションに含まれる論理パーティション (スワップ・スペースを含む) が 1 つでも使用中の場合には、拡張パーティションのエントリーの隣に南京錠アイコンが示されます。

GParted での変更の実装

GParted で変更内容を指定した後は、変更を実装するために「Edit (編集)」 > 「Apply All Operations (すべての操作を適用)」メニュー項目を選択するか、「Apply (適用)」アイコンをクリックします。その結果、プログラムの実行内容を要約した進行状況ダイアログ・ボックスが表示されます。完了後の操作を取り消すことにした場合は、GParted の取り消し機能を使用するか、変更を適用せずにプログラムを終了してください。その場合、変更は一切ディスクに適用されません。

パーティションのサイズ変更操作は、変更の性質、そして移動するデータの量によって、ほんの一瞬で完了することも、完了するまでに数時間かかることもあります。どんな場合においても、進行中の操作を決して中断しないでください!中断すると、ファイルシステムが破損し、データが回復不可能になってしまう恐れがあります。

ディスク参照の修正

パーティションを追加または削除した場合には、前述のとおり、/etc/fstab ファイルまたはブート・ローダー構成の修正が必要になってくることがあります。この修正を行うには、ルート (/) パーティションをマウントしてファイルを編集しなければなりません。図 1 では、/dev/sdb1 がル-ト・パーティションとなっているので、GParted はこのパーティションを /media/sdb1 にマウントすることができます。したがって、/media/sdb1/etc/fstab ファイルを編集することになります。システムが独立した /boot パーティションを使用している場合には、そのパーティションを単独でマウントし、ブート・パーティションの grub/menu.lst、grub/boot.conf、または grub/boot.cfg ファイルでブート・ローダー構成を編集します。

これらのファイルを調べ、古いパーティション ID 番号への参照をすべて、新しいパーティション ID 番号への参照に置き換えます。変更を加えた場合は、元の構成ファイルをバックアップしてから、変更後のファイルを保存してください。


次回の予告

サイズ変更操作は以上で完了したので、これでシステムをリブートすることができます。PartedMagic の場合は、画面左下にあるアイコンをクリックし、「Logout (ログアウト)」を選択します。この操作によって表示される選択肢の中に、リブート機能があります。まだ緊急用ディスクを取り出していなければ、リブートする前に必ず取り出してください。コンピューターは通常の Linux オペレーティング・システムにリブートしますが、ディスク・スペースの割り当ては変更されているはずです。

今回の記事では、基本的なサイズ変更操作について説明しました。この連載の第 2 回では、それよりも高度な方法として、LVM (Logical Volume Management) のサイズ変更、トラブルシューティング、そしてサイズ変更操作だけでは必要を満たせない場合に、それに代わって検討可能な方法について説明します。

参考文献

学ぶために

製品や技術を入手するために

  • PartedMagic の Web サイトから PartedMagic をダウンロードしてください。
  • SystemRescueCd の Web サイトから SystemRescueCd をダウンロードしてください。
  • 最も柔軟な Linux パーションのサイズ変更ツール GParted は、PartedMagic と SystemRescueCd、そしてほとんどの Linux ディストリビューションに組み込まれています。
  • GParted がベースとしている libparted は、テキスト・モードの GNU Parted パッケージに付属しています。
  • ご自分に最適な方法で IBM 製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

議論するために

  • My developerWorks コミュニティーに加わってください。ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者が主導するブログ、フォーラム、グループ、ウィキを調べることができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=521174
ArticleTitle=Linux パーティションのサイズを変更する: 第 1 回 基本編
publish-date=08112010