ひこぽんのーと

覚書と雑記です。

Arch LinuxとLakkaのデュアルブート構成のこと

LinuxとLakkaを同一ディクス上でデュアルブート構成にしたい

動画を見てたらやっている人がいたので、
「どうにかすればできるんだ」という薄い根拠のもと、チャレンジしてみた。
簡単そうだけど、やってみたら結構めんどくさかった。
また、意外に実現方法の記事が見当たらなかった。
ちなみに、Lakkaは公式にはデュアルブート非対応とある。

以下に方法を残す。

ここでの前提(というか環境)

LakkaをPCへインストールする

LakkaのUSBインストーラを作成し、PCをUSBブートする。
USBメディアにLive環境を作り始めるので終わるまで待つ。
(サイズの小さいUSBメモリのほうが早いだろうなぁ)

再起動後、ブートローダが表示されたら、すかさずTabキーを押す。
Tabを押すと、Live環境の立ち上げとインストーラの立ち上げを選択できるので、
インストーラを立ち上げる。

インストーラからインストールするHDDを選択し、
2度の確認をOKして、インストールする。
インストールが始まると、ディスク全体がLakkaのみになる。
インストールが完了し、再起動してLakkaが起動すればOK。

パーティションの修正

インストール後は、以下のようにパーティション構成が書き換えられている。

パーティション 用途 ファイルシステムラベル
/dev/sdx1 Lakkaブート領域 System
/dev/sdx2 Lakkaデータ領域 Storage

これをこんな風に変える。

パーティション 用途 ファイルシステムラベル
/dev/sdx1 Lakkaブート領域 & Arch Linux ブート領域 System
/dev/sdx2 Lakkaデータ領域 Storage
/dev/sdx3 拡張領域
/dev/sdx5 Arch Linux ルート領域 Arch Linux
/dev/sdx6 共用データ領域 User Data
/dev/sdx7 スワップ
Lakkaデータ領域のバックアップ

ファイル操作のできるLive CDやUSBを用意して(ここではArch LinuxのUSBインストーラ)、
Lakkaデータ領域にあるすべてのファイル・ディレクトリ(隠しファイルも含む)を
別のメディアにコピーする。

パーティションの編集

fdiskやcfdiskを使ってパーティションを編成する。
Lakkaデータ領域をリサイズして、空き領域に必要なパーティションを作るイメージ。
この時、Lakkaブート領域は変更しないこと。

パーティションのフォーマット

Lakkaデータ領域はリサイズの影響で壊れているので、
mkfs.ext4コマンドでフォーマットする。

mkfs.ext4 /dev/sdx2

新たに作成したパーティションも適時フォーマットする。

Lakkaデータ領域の復元

別のメディアにコピーしておいたLakkaデータ領域の全ファイル・ディレクトリを
元のパーティションにコピーする。
tune2fsコマンドでファイルシステムラベルをつける。

tune2fs -L "Storage" /dev/sdx2

ついでに他のパーティションにも名前をつけておくと良いかも。

ここで一旦再起動して、Lakkaが起動することを確認する。

Arch Linuxのインストール

Arch Linuxのインストールメディアを使用してインストールを行う。
Lakkaブート領域をArch Linuxのブート領域としても使うよう設定する。
GRUB2をインストールして、既存のブートローダを上書きする。
再起動後、GRUB2からArch Linuxが起動できればOK。
Lakkaはこの段階で一旦、起動できなくなる。

/etc/grub.d/40_customの編集

LakkaをGRUB2から起動できるように、
/etc/grub.d/40_customにメニューエントリを追加する。

nano /etc/grub.d/40_custom
----
menuentry "Lakka" {
	search --set=root --label System --hint hd2,msdos1
	linux /KERNEL boot=LABEL=System disk=LABEL=Storage quiet
}
----

grub.cfgの再生成

grub-mkconfigを実行してgrub.cfgの再生成を行う。

 grub-mkconfig -o /boot/grub/grub.cfg

再起動後、GRUBメニューにLakkaがあり、問題なく起動できればOK。

ああ、めんどくさかった!
UEFI環境でGPTの場合はなんか違うんだろうか、と思いつつ、
おしまい。