UbuntuでSDカードを暗号化しようとしたら cryptsetup に「Yes」を拒否されたお話

みなさん、こんにちは。

以前の記事で、Raspberry Pi OS 用の SD カードに暗号化パーティションを作成する手順を紹介しました。

先日、久しぶりにこの作業をUbuntu 22.04で行ったのですが、すっかり忘れていた「地味な落とし穴」に見事にはまってしまいました。

今回はその実体験をベースに、「cryptsetupで『Yes』と打っているのに処理が中断されてしまう」という、一見すると不可解な挙動の原因と対策についてまとめてみます。

 


 

突然の 「Operation aborted.」

 

SDカード(/dev/mmcblk0p3)を暗号化しようと、いつものように以下のコマンドを実行した時のことです。

sudo cryptsetup luksFormat /dev/mmcblk0p3

すると、おなじみの警告メッセージが表示されます。

WARNING: Device /dev/mmcblk0p3 already contains a 'ext4' superblock signature.

WARNING!
========
This will overwrite data on /dev/mmcblk0p3 irrevocably.

Are you sure? (Type 'yes' in capital letters):

「はいはい、承知の上ですよ」と、私は素直に Yes と入力しました。

すると、cryptsetupから返ってきたのは無情なこの一言。

Operation aborted.

「えっ、今 Yes って打ったよね……?」と思わず画面を二度見してしまいました。

 


 

原因 – プロンプトが「紛らわしすぎる」仕様だった

 

結論から言うと、cryptsetupが受け付けてくれるのは 「YES」 (すべて大文字)のみ でした。

  • yes → NG
  • Yes → NG
  • YES → OK!(唯一の正解)

実は、プロンプトの文言をよく見るとこう書いてあります。

(Type ‘yes’ in capital letters)

「yesを大文字で(=大文字でyesと)打て」という意味なのですが、これを「Yes」と解釈してしまうとアウト。内部実装的に「YES」という3文字が完全に一致しないと拒否される仕様なのです。

これは歴史的な経緯で残っている挙動のようですが、世界中のエンジニアが一度は通る「お約束」の罠かもしれません。

 


 

他のエラーとの見分け方

 

今回のログを見て、「ext4の警告が出ているから失敗したのでは?」と思う方もいるかもしれませんが、それは問題ありません。

WARNING: Device /dev/mmcblk0p3 already contains a 'ext4' superblock signature.

これは「既にext4形式のデータがあるけど上書きしていいの?」と聞かれているだけなので、LUKSで初期化するのが目的であれば無視して進めてOKです。

また、SDカードやeMMC(/dev/mmcblk0系)を使っている場合、以下のような物理的な要因で abort することもあります。

  • SDカードが読み取り専用(RO)になっている
  • カードリーダーとの相性問題
  • カーネルログ(dmesg)に I/O error が出ている

しかし、今回のように「Yesと打った直後に終わる」場合は、十中八九入力ミス扱いによる中断です。

 


 

正しい対処 – 仕様に従って「YES」

 

暗号化パーティションを作成する際は、確認プロンプトが出たら迷わずこう打ち込みましょう。

YES

これだけで、先ほどまでの頑固な挙動が嘘のようにスムーズに処理が進みます。

 


 

対策 – Raspberry Pi の環境づくりは「備忘録」が命

 

今回の件で改めて痛感したのは、「慣れた作業ほど、細かい癖を言語化して残しておくべき」ということです。

特にRaspberry Piのように、ボードとOSの組み合わせが複数存在し、リソースも限られた環境の構築では、

  • OSやツールのバージョンで微妙に挙動が変わる
  • 本体で作業するとパーティションが使用中で操作できない(別PCでの作業が必要)
  • SDカード特有のI/Oエラーが起きやすい

といった特有の注意点があります。こうした「小さな詰まりどころ」を手順書化して残しておくことが、開発の安定感に繋がるのだと感じます。

 


 

癖を記録すること、それが大事

 

  • cryptsetupの確認は “YES” (完全大文字) 以外受け付けない
  • プロンプトの “yes in capital letters” は「Yes」ではない
  • ext4シグネチャ警告は気にしなくてOK
  • うまくいかない時はカードの物理エラーも疑う

暗号化はセキュリティを高める強力な武器ですが、まずはそのツール自体の「癖」を忘れずに記録しておくことが大事ですね。

 

本日も最後までお読みいただきありがとうございました。

それでは、よい Raspberry Pi ライフを!

カテゴリ: Raspberry Pi, 開発インフラ

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール