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

スクールの紹介

ここまで読んでいただき、ありがとうございました。

最後に宣伝をさせてください。

夢見るAIエンジニアへ、今こそ一歩を踏み出せ!

最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。

しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!

なぜこのサービスが選ばれるのか?その理由はこちら

  1. 初心者から上級者まで
    完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。
  2. 徹底的な進捗管理
    受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。
  3. 専属メンターによる徹底サポート
    AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。
  4. 場所を選ばず学べるオンライン完結
    東京以外の地域からも、気軽に学び始めることができます。

信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現

夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!

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

この記事を書いた人

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

目次