はじめに
Ubuntuを使っているとインストール・動作確認用にLTSと非LTSそれぞれで現行バージョンと旧バージョンの計4種類のUSBメモリが欲しくなります。しかしUSBメモリは8GBでも700円ほどして小容量は割高ですし、まとめられれば物理的にスマートです。
ISOファイルから直接ブートさせることができれば作るのがとても簡単で理想的なのですが、それだとブート時にRAMディスクを使う必要がありなかなか大変です。しかし、UEFI+rEFIndであればISOファイルを展開する必要はあるものの、現物合わせでインデックスを作る必要がなく比較的簡単に作れます。
USBメモリにパーティションを作る
ここではパーティションの作成に、GUIでパーティションの操作ができるGPartedを使っていますが、GDISKなどほかのものを使っても構いません。
まず「表示→デバイス情報」からパーティションテーブルがGPT(GUIDパーティションテーブル)になっているか確認します。GPTになっていない場合「デバイス→パーティションテーブルの作成」からGPTでパーティションテーブルを作り直してください。
それから次の表のようにパーティションを作ります。2.5GiBは2560MiBです。
ファイルシステム | ラベル | 容量 | フラグ |
---|---|---|---|
fat32 | 35MiB | boot,esp | |
ext4 | lts-a | 2.5GiB | |
ext4 | lts-b | 2.5GiB | |
ext4 | nonlts-a | 2.5GiB | |
ext4 | nonlts-b | 2.5GiB |
FAT32の小容量パーティションがESP(EFIシステムパーティション)です。ここにブートローダーを配置します。今回は1MiBも使わないため、小容量で構いません。GPartedだと33MiB以上でしか作れないので(理由は分かっていません)、ここでは35MiBにしています。ドライブの先頭パーティションは1MiBオフセットされますが、パーティションサイズを調整して、フラッシュメモリのブロックサイズである4MiB単位にパーティション境界が来るようにしましょう。
EXT4の大容量パーティションがUbuntuのISOイメージを展開するパーティションです。ISOイメージが1.5GiBほどですので、余裕を持って2.5GiB取っています。パーティションの数は少なくても、多くても構いません。
ブート時にパーティションラベルが判別の手段になります。分かりやすくするのであればバージョンを明記したラベルにしてください。ラベルはマウントしていないときならいつでも変更できます。
パーティションを作り終わったらディスク(gnome-disks)からUSBメモリの全パーティションをマウントします。
ESPにrEFIndをコピーする
ブートローダーにはrEFIndを使います。rEFInd - Browse Files at SourceForge.netから最新のrefind-bin-.zipをダウンロードして解凍してください。
それから次のようにEFIファイルをコピーし、設定ファイルを作成してください。
refind/refind_x64.efi -> <ESP>/EFI/BOOT/BOOTX64.EFI
refind/drivers_x64/ext4_x64.efi -> <ESP>/EFI/BOOT/drivers/ext4_x64.efi
timeout 20
textonly
scanfor internal,external,optical
rsyncでISOイメージをコピーする
ISOイメージを右クリックし「別のアプリで開く→ディスクイメージマウンター」を選択すると、ISOイメージをマウントできます。選択しても/media/<user>配下にマウントされない場合は、ディスク(gnome-disks)を開き、手動でマウントボタンを押す必要があるかもしれません。
それからターミナルを開きrsyncでマウントしたISOイメージをさきほど作ったEXT4パーティションにコピーします。
# 初回
sudo rsync -rlptv '/media/<user>/<Ubuntu 17.04 amd64>/' '/media/<user>/<lts-a>'
# 2回目以降
DEST='/media/<user>/<lts-a>' &&
sudo rm "$DEST/casper/filesystem.squashfs" &&
sudo rsync -rlptv '/media/<user>/<Ubuntu 17.04 amd64>/' "$DEST"
コピー元のパスは、末尾にスラッシュを付けます。2度目以降のコピーでは「--delete」オプションを加えてください。
終わったらISOイメージのマウント先を右クリックしてアンマウントします。
使う
操作がすべて終わったらUSBメモリを抜き取ります。安全を見るなら、ディスク(gnome-disks)からUSBメモリの全パーティションをアンマウントしてから抜き取ってください。抜き取ったら、使いたいマシンに挿して起動させます。UEFIでUSBメモリをブート順1位に設定する必要があるかもしれません。
起動したらrEFIndの画面が表示されるので、希望のカーネルを選んでください。