LUKS暗号化ボリュームをGUIでリサイズする
Ubuntu 22.04LTS のインストーラはスワップ・パーティションのサイズを1GB程度しか確保しません。
これはハイバーネーションをしようとすると問題になります。Linuxでのハイバーネーション(休止)先はスワップ・領域ですので、1GBは全く足りないのです。したがってスワップ・パーティションをリサイズしなければなりません。ところが、インストール時に暗号化するとここで難儀することになります。UbuntuにはLUKS暗号化したLVMボリュームをリサイズするGUIアプリが無いのです。
そこで、KubuntuのインストールDVDを使ってUbuntuのLUKS暗号化ボリュームをGUIでリサイズする方法を説明します。Kubuntu利用者には当たり前のことですが、Ubuntu利用者にはあまり知られていないようです。
なお、
「Ubuntu 22.04LTSのスワップ領域はスワップ・ファイルである」
というのが一般の認識のようですが、私の手元ではいつもスワップ・ボリュームになっています。
環境と必要なもの
- Ubuntu 22.04 LTS システム:インストーラ(ubiquity)によってディスク暗号化している
- Kubuntu 22.04 LTSのインストール・ディスク
作業の実際
コンピュータを起動した状態でパーティションを変更するのは無理ですので、KubuntuインストールDVDをレスキュー・ディスクとして使います。私はHyper-Vで稼働しているUbuntuで実験したので、当該VMをKubuntuのISOイメージから起動しました。
KubuntuのインストールDVD(あるいはISOイメージ)から起動したら、konsoleを開いてlsblkコマンドでブロック・デバイスの一覧を見ます。すると、SSDらしきデバイスが表示されます。私のシステムはUSB SSDにインストールしてあり、下の図ではそれがsda として表示されています。sr0とあるのはKubuntuのDVDです。
sdaの下にパーティションがいくつかありますが、このうちsda3が232.9GB中230.7GBも使用しています。これが暗号化されたパーティションだと見当をつけることができます。そこでcryptsetupコマンドで暗号を解除します。
sudo cryptsetup luksOpen /dev/sda3 sda3
/dev/sda3のところは自分のシステムのディスクに合わせます。その後ろのsda3は適当な名前でもかまいませんが、ディスク名と同じにするのが無難でしょう。
cryptsetupはディスクの暗号を解除するためにユーザーに入力を求めます。この暗号はUbuntuのインストール時に指定したディスク暗号化パスフレーズです。
cryptsetupがエラーメッセージ無しに実行できたら、もう一度lsblkコマンドを実行します。すると、暗号化されていると見当をつけていたパーティションが復号され、内部にvgubuntu-rootとvgubuntu-swap-1の二つのパーティションが現れます(下図)。
次にGUIメニューからKDE Partition Managerを起動します。
KDE Partition Managerの左側にはSSDやHDDのデバイス一覧が表示されます。一番上のSSDを選ぶと右側に詳細が表示されます。このデバイスは/dev/sdaとしてマウントされており、dev/sda3は暗号化パーティションであり、vgubuntuと名付けられていることがわかります。これは上での作業結果と整合しています。
次に左側のデバイスからvgubuntuを選ぶと、先ほどの復号で現れたrootとswap_1が右側に現れます。これらはパーティションであり、右クリックして現れるメニューからResize/Moveすることができます。
リサイズの方法は簡単なので割愛します。ハイバーネーションを目的としてスワップ・パーティションのサイズ変更する場合は、サイズを実メモリサイズ以上にしてください。今時はSSDも大きいですし、細かい数字が面倒ならば実メモリの2, 3割増しくらいにしておけばいいでしょう。
Discussion