【ラズパイ/Linux】dd: memory exhausted や mkswap: at least 40 KiB のエラーが出たときの対処法

目次

概要

Raspberry Pi(ラズパイ)でプログラムを組んでいる際、スワップ領域を増やそうとしてddコマンドを使ったところ、次のようなエラーが表示されました。

dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB)

また、スワップ領域を有効にしようとした際には以下のエラーも発生しました。

mkswap: error: swap area needs to be at least 40 KiB

本記事では、これらのエラーの原因と解決方法についてまとめています。

エラーの原因と意味

「dd: memory exhausted」エラーの原因

このエラーは、ddコマンドでブロックサイズ(bs=1G)を指定してスワップファイルを作成しようとした際に、システムの物理メモリ(RAM)が不足したことを意味します。
Raspberry Piのような低スペックなデバイスでは、1GBという大きなバッファを一度に確保できないことがあり、結果としてこのエラーが発生します。

「mkswap: at least 40 KiB」エラーの原因

こちらは、作成した/swapfileサイズ不足または作成失敗しており、スワップ領域として有効にできない場合に表示されます。原因は、ddコマンドでの作成時に何らかの問題(空き容量不足、パラメータミスなど)が発生した可能性が高いです。

正しいスワップファイルの作成手順

以下の手順でスワップファイルを正しく作成・有効化します。

① スワップファイルを作成

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

このコマンドは、1MB×1024=1GBのスワップファイルを作成します。
bs=1Mとすることでメモリ負荷を軽減できます。

② スワップファイルのサイズ確認

ls -lh /swapfile

出力例:

-rw-r--r-- 1 root root 1.0G 3月 11 17:30 /swapfile

期待通りのサイズで作成されていればOKです。

③ スワップ領域の初期化

sudo mkswap /swapfile

これで、スワップファイルがスワップ領域として使えるよう初期化されます。

④ スワップの有効化

sudo swapon /swapfile

スワップがすぐに使える状態になります。

⑤ スワップの状態確認

swapon --show

出力に/swapfileが表示されていれば有効化成功です。

補足:SDカード容量との関係はない

今回のmemory exhaustedエラーは、マイクロSDカードの容量とは無関係です。
私の場合、32GBのマイクロSDカードを使用していましたが、エラーの原因はRAM不足です。ddコマンドは一時的に大きなメモリを確保しようとするため、ラズパイのようにRAMが少ない環境では失敗することがあります。

まとめ

  • ddでスワップファイルを作成する際は、bs=1Gのような大きすぎるブロックサイズを避ける
  • bs=1M count=1024などに調整すれば、メモリ負荷を抑えて作成可能
  • mkswapエラーはファイルサイズ不足が原因。ddコマンドの見直しが有効
  • エラーはRAMの不足が主因で、SDカード容量とは無関係

Raspberry Piなどでスワップ領域を追加する際、上記のような基本的な制限を理解しておくことで、スムーズに作業が進みます。
同様のエラーでお困りの方の参考になれば幸いです。

技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。

プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。

気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。

[Kindle Unlimited 読み放題プランをチェックする]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次