/(ルート)パーティションのサイズを変更するにはどうすればよいですか?


170

私のSDカードは16GBですが、フラッシュしたイメージはわずか2GBでしたが、今ではディスク上の2GBのストレージスペースしか見ることができません。

ルートパーティションのスペースを増やすために、イメージのサイズを変更するにはどうすればよいですか?


私にとって偉大なThanks..worked、タンク私のsystem..stillはIRCとApacheウェブサーバと私の完全な8ギガバイトの容量を持っていなかった

1
たとえば、残りの空きSDカードスペースに新しいパーティションを作成し、次にルートパーティション内にマウントできるのに、ルートパーティションのサイズを変更する理由/mnt/storage。これにより、システムとデータが効果的に分離され、保守とバックアップが容易になります。
mbaitoff 14

2
@mbaitoff-デフォルトのシステムイメージには68MiBの空き領域しかないため、ソフトウェアを追加する余地はあまりありません。
ジュール

@Jules-パーティションのサイズを変更する理由を尋ねていませんでした。Aは、システムパーティションマウントポイントに追加のストレージをマウントするのではなく、システムパーティションのサイズを変更して、システムとソフトウェア/データを効果的に分離する理由を尋ねましたか?ストレージが必要な場合は、残りのSD spcaeを/mnt/storageにマウントし/opt/software/ます。プログラムが必要な場合は、マウントします。
mbaitoff

@mbaitoffのほとんどのプログラムは、/ opt / softwareではなく、/ usrにインストールされます。事前作成されたイメージには、ルートパーティションに/ usrの内容が含まれています。したがって、デフォルト以外のソフトウェアをインストールする場合は、ルートパーティションのサイズを増やすことが不可欠と思われます。
ジュール

回答:


157

Debianを使用していると仮定します。

ショートバージョン:

  1. システムをバックアップする
  2. メインパーティションとスワップパーティションを削除します(ブートパーティションのみを残します)
  3. メインパーティションを再作成して、残りのディスク領域(ブートパーティションを除く)を利用します。元のルートパーティションと同じ開始セクターを再利用してください。
  4. システムを再起動します
  5. 新しいブートルートパーティションのサイズを変更して、パーティションサイズ全体を利用します。

ステップバイステップの説明

まず、何か問題が発生した場合に備えて、ここに記載されている手順を使用してSDカードのバックアップを作成します。

コマンドラインまたはターミナルウィンドウから次を入力します

sudo fdisk /dev/mmcblk0

次にp、パーティションテーブルをリストするために入力します

3つのパーティションが表示されます。あなたがラベルされた最後の列に見れば、システムあなたが持っている必要があります

  1. W95 FAT32
  2. Linux
  3. Linuxスワップ

パーティシトン2の開始番号を書き留めます。これは後で必要になります。ただし、(念のため)画面に表示される可能性があります。

dパーティションを削除する次のタイプ。

次に、削除するパーティションの番号の入力を求められます。上記の場合、LinuxとLinuxスワップパーティションの両方を削除する必要があります。

タイプ 2

dもう一度入力してから、入力3してスワップパーティションを削除します。

これで、メインパーティションのサイズを変更できます。

入力nして新しいパーティションを作成します。

この新しいパーティションはプライマリパーティションである必要がありますp

2パーティション番号の入力を求められたら、次に入力します。

これで、新しいパーティションの最初のセクターのプロンプトが表示されます。 前の手順の開始番号(Linuxパーティション)を入力します

次に、残りのディスク容量を利用するデフォルトを受け入れるためにEnterキーを押すことができる最後のセクターのプロンプトが表示されます

入力wして、行った変更を保存します。

次に、次のコマンドを使用してシステムを再起動します。

sudo reboot

システムが再起動し、コマンドラインに戻ったら、次のコマンドを入力します。

sudo resize2fs /dev/mmcblk0p2

注:これには時間がかかります(カードのサイズと速度によって異なります)ので、ファイルシステムを混乱させずに最初からやり直す必要がないように、しばらくお待ちください。

完了したら、次のコマンドを使用してシステムを再起動します。

sudo reboot

次のコマンドを入力して、システムがSDカードの全容量を使用していることを確認できます。

df -h

これが機能する理由:

ここでの本当の魔法は、ルートパーティションを削除し、ディスクにデータを書き込む前に(元の開始セクタを使用して)ルートパーティションのみを再作成することです。その結果、ルートパーティションから既存のデータを消去しません。

スワップパーティションを削除すると、ルートパーティションルームが現在のサイズを超えて拡大し、ディスクの未使用部分がいっぱいになります(パーティションの配置のため-ルートパーティションはブートパーティションとスワップパーティションの間に挟まれます)単にスワップパーティションを残したままサイズを変更してください)。

次に、ファイルシステムのサイズを変更して(マウントされたディスク上で実行しても安全です)、新しいルートパーティションのすべてのスペースを使用します。

ref:


1
@Jivingsを正しく実行すれば、何かを失うことはありませんが、それがステップ1のバックアップを作成した理由です。
スティーブ

2
コメントから、どのようにだけではなく、なぜこれが機能するのかを文書化する必要があるようです。
Jivings

1
@Jivingsはこれがあなたの懸念に対処することを願っています。
スティーブロビラード

9
サイズを変更するためにパーティションを削除する必要があるのは非常に間違っているようです。
アレックスチェンバレン

5
@AwesomeUser Macでは実行せず、pi自体で実行します。また、raspbianを実行している場合は、piを起動し、コマンドラインから次のコマンドsudo raspi-configを発行して、ルートパーティションのサイズ変更オプションを選択します。
スティーブロビラード14

102

Debian-Wheezy Betaイメージを使用して、これを簡単にする構成ユーティリティが組み込まれています。

というユーティリティがありますraspi-config。RPiに直接接続している場合、これは最初の起動時に実行されます。SSHを使用している場合は、を使用して手動で実行できます$ sudo raspi-config。(ツールはいつでも手動で再実行できると思います)。

次の青色のダイアログの2番目のオプションは、expand_rootfs「SDカードを満たすためにルートパーティションを拡張する」という説明が付いたタイトルです。

これを選択すると、RPiの次回起動時にルートパーティションのサイズが変更され、カードがいっぱいになります。

2015年の更新!

私は注意を払ってこの答えに戻ってきました:私は16GBのSDカードをたくさん使っていましたが、使用しているカードをいっぱいにするためにパーティションを最大化することで見つけました。これを行うと、新しいカードに切り替えるときに(16GBと記載されていたとしても)古いカードよりも約200MB小さい多くの問題が発生しました。

これは、RPisをv1からMicro SDカードを使用する新しいv2モデルに切り替えたときに頭に浮かびました。

今では、問題なくSDカード間で画像を切り替えられるように、約1GBの空き容量を確保しています。


Piで16 GBカードを使用する場合、このプロセスには約10分かかりました。
デア・ホッホシュプラー

5
これは、一番上の答えよりもはるかに簡単です。これは使用するソリューションです。
ジェームズスキミング

@JamesSkimming:これはDebian-Wheezy Betaイメージに使用するソリューションです。他人のためではありません。
SF。

Raspbianでは、RPiキットに同梱されているSDカードのNOOBSからインストールした場合、これは機能しません。あなたが拡張オプションを実行しようとすると、それはそれは、この設定によってサポートされていないことを言いますが、あなたのランニング初心者ので、それはおそらく、とにかくすべてのスペースを使用しています...問題は、私は32ギガバイトカードに8GBの画像を再フラッシュしようとしている
Eoinキャンベル

Raspi-configは、Raspbian Wheezyのルートのサイズを変更する方法を知りません。問題を引き起こしたと示唆したexpand_rootfs。上記の答えは、ライブシステムの魅力のように機能し、「約1 GBを残す」必要はありません。
-GTodorov

28

Steve Robillardsの優れた答えのように、コマンドラインでの作業にあまり慣れていない場合は、GUIアプリケーションがいくつかあります。特に、gpartedは非常にうまく機能します。

Ubuntu LiveCDにはデフォルトでインストールされていますが、インストールされているシステムにはインストールされていないと思います。もちろん、これには簡単な修正方法がありますapt-get install gparted。パーティションのサイズを変更するにはマウントを解除する必要があるため、実際のP​​iではこれを実行できません。

下の写真はオランダ語ですが、楽しさを損なわないでください。使い方はとても簡単です。これは、8GB SDカード上のデフォルトのDebianイメージのレイアウトです。

GParted

パーティションを右クリックしてマウントを解除し、右クリックしてパーティションのサイズを変更または移動します。新しいパーティションを作成し、既存のパーティションをフォーマットすることもできます。下の図では、スワップパーティションを削除しました。これで、ルートパーティションのサイズをその右側のスペース全体に変更できます。スワップパーティションを追加する必要があるため、完全に入力しないでください。

リサイズ

パーティションレイアウトを試すことができます。変更は、変更を適用した場合にのみ書き込まれます(最初の図の灰色の「リターン」キー)。

パーティションを移動するのは非常に簡単ですが、スティーブの答えのように、スワップパーティションを完全に削除し、ルートのサイズを変更してからスワップを再作成することをお勧めします。パーティションの移動には非常に長い時間がかかり、スワップには保持する必要があるデータが含まれていません。


1
私はこの方法を使用しました。魅力のように機能します。
アレックスチェンバレン

同意する。私はこれを正確に行うためにgpartedを使用しましたが、非常に簡単です
-JayDev

VNC経由で接続している場合は、sudo -E gparted
次のコマンドを

またgparted、Waylandで実行している場合は、次のコマンドを実行する必要がある場合があります(これらの問題が解決したかどうか不明):xhost +SI:localuser:root
John Manko

11

新しいDebian Wheezyイメージを使用する場合:http ://www.raspberrypi.org/archives/1435 ブート時スクリプトにより、サイズを変更してsdcardを自動的に埋めることができます。


1
Arch Linuxを使用しています。
Jivings

2
どうやってそんなことをするのでしょうか?

2
これは、最新のwheezyイメージのパーティションのサイズを変更する最も簡単な方法です。
ユヴァルアダム

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.