ManjaroをZFS上にインストールする

3 min読了の目安(約3100字TECH技術記事

意外と情報がなかったので。Arch系はネット情報に頼らないつよつよ人しか使わないということなんですかね・・・

今のところ、ZFSをrootパーティションのファイルシステムに指定してManjaroをインストールする、ということは、GUIではできないっぽいので、コマンドをぱちぱち叩いてインストールしました。

ライブUSB作成

まずはISOファイルを以下からダウンロード。自分はGnome好きなのでGnome版をダウンロードしました。

https://manjaro.org/download/

RufusとかEcherとか、ddコマンドとかでISOをUSBに焼きましょう。

$ dd bs=4M if=manjaro.iso of=/dev/sdc status=progress && sync

パーティション作成

ライブUSBからManjaroを起動できたら、EFIを格納するESPとrootパーティションを作成しておきましょう。

$ sudo parted /dev/sda
(parted) mklabel gpt
(parted) mkpart ESP fat32 1MiB 551MiB
(parted) set 1 esp on
(parted) mkpart ROOT ext2 551MiB 100%
(parted) quit

こんな感じになっていればOKです。

$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  578MB   577MB                ESP   boot, esp
 2      578MB   32.2GB  31.6GB               ROOT

ZFSファイルシステム作成

rootパーティションにZFSのファイルシステムを作成していきます。

とりあえずターミナルからプールを作成。/dev/sda2がrootパーティションのデバイス名です。

$ sudo zpool create rpool /dev/sda2

rootデータセットを作成。Manjaroは/mnt配下をrootとみなしてOSインストールを行うので、いったんマウントポイントを/mntに指定しておきます。

$ sudo zfs create -o mountpoint=/mnt rpool/root

上位のデータセットのマウントポイントをlegacyにしておきます。これをやっておかないと上位のデータセットにデータが書き込まれ、やっかいな状況になったりならなかったり。

$ sudo zfs set mountpoint=legacy rpool

こんな感じになっていればOK。

$ zfs list
NAME         USED  AVAIL     REFER  MOUNTPOINT
rpool        184K  28.1G       24K  legacy
rpool/root    24K  28.1G       24K  /mnt

最後に、ESPを/mnt/bootにマウントしておきます。

sudo mount /dev/sda1 /mnt/boot

OS・ブートローダーインストール

あとはManjaroの「Manjaro-Architect」を使ってらくらくインストールしていきましょう。ここからは通常のインストール方法と変わりありません。

すでにパーティション設計とファイルシステム作成を終えているので、特別な設定が不要なら「Prepare Installation」をスキップして「Install Desktop System」から始められます。

カーネルのバージョンとかもろもろ選択してManjaroをインストールします。

ずらら〜

OSのインストールが終わったら「Install BIOS Bootloader」からブートローダーをインストール。私はsystemd-bootが好きなのでいつもsystemd-bootをインストールしています(画面は仮想環境上で実行しているためか、grubしか表示されていません)。

ブートローダーのインストールが終わったら「Configure Base」でホスト名やらロケールやらユーザーやらを設定。これでひととおりインストールは完了です。

インストールしたブートローダーに合わせて、設定ファイルを記述しておきます。

  • grubの場合:/mnt/boot/grub/grub.cfgを編集
/mnt/boot/grub/grub.cfg
set timeout=5
set default=0

menuentry "Manjaro Linux" {
    search -u UUID
    linux /vmlinuz-linux zfs=rpool/root rw
    initrd /initramfs-linux.img
}
  • systemd-bootの場合:/mnt/boot/loader/entries/manjaro.confを編集
title           Manjaro
linux           vmlinuz-linux
initrd          intel-ucode.img
initrd          initramfs-linux.img
options         zfs=rpool/root rw

最後の最後に、ESPをアンマウントしてrootパーティションのマウントポイントを変更しておきます。

$ sudo umount /dev/sda1
$ sudo zfs set mountpoint=/ rpool/root

再起動後、無事Manjaroが起動すれば作業完了です。お疲れ様でした。