| tags:linux kali categories:computing

Kali Linux on BTRFS

ちょっと変わり種のディストリビューションも入れておきたいなと思ったので、 Kali Linuxをマルチブート端末 Thinkpad T480s にインストールする。

LinuxのパーティションはBTRFSにしているので、少しインストール方法が変わってきます。 ありがたいことにドキュメントが整理されています。

https://www.kali.org/docs/base-images/kali-linux-btrfs-install/

詳細に書いてありますが、マルチOSということは考慮に入っていないようなので、 自分の環境に調整しました。

自分(マルチOS)のためのメモでもあるので、インストールを行う方はマニュアルを参照にされてください。

ディスクの作成などは割愛します。こちらからLiveDVDをダウンロードして下さい。

1. LIVE MODEで起動

他のディストリビューションと違いインストーラーはインストールしないと無い。探しちゃいましたよ。。 そしてbtrfsのツールもインストール。

$ apt install btrfs-progs debian-installer-launcher

端末がスリープしてしまった時には

パスワード: root [ toor ]

2. インストールをネットワーク設定のドメイン名の登録のところまで進める

Kali install

ここで作業をいったん止めて、ターミナルを開く。


3. ターミナルでの作業

ディスクの設定

自分の環境ではすでにbtrfsはフォーマットされて すでにサブボリュームも制作済み。

$ mount /dev/nvme0n1p5 /mnt
$ btrfs subvolume create /mnt/@kali
$ btrfs subvol list /mnt

ID 257 gen 6911 top level 5 path @manjaro
ID 258 gen 6792 top level 5 path @debian
ID 259 gen 3914 top level 5 path @arch
ID 260 gen 6723 top level 5 path @kali

$ btrfs subvol set-default 260 /mnt

!!!ここ重要なり!!!:指定したサブボリュームIDがマウントオプションが指定されていない時のマウント先になる。 この場合ID260の@kaliがmount /dev/nvme0n1p5 /mnt実行時にマウントされるという事。

マニュアルでは、home, var/log, root, /.snapshotと切り分けているが、 ペネトレーションテストなどでの利用を考えているので、homeは共有せず少し調整。

$ btrfs subvolume create /mnt/@root
$ btrfs subvolume create /mnt/@log
$ mkdir -p /mnt/@kali/root
$ mkdir -p /mnt/@kali/var/log
$ umount /mnt

ターミナルでの作業は終了。インストーラーに戻りパーティションの設定まで進める。


4. パーティション設定

スワップファイルの設定とBTRFSをインストール先に設定する。フォーマットはしないように。 これでsubvol set-default で指定したサブボリュームにインストールされる。

Mnount Point: /
Format: no keep existing data

Kali install Set Partition

スワップ領域はフォーマットをしないと先に進めない。 UUIDが変わるので他の環境にて/etc/fstab/の調整が必要。

最後までインストールを進める。特に変わった設定・変更などはなく、順調に終了の様子。

5. インストール終了の作業

はたまたターミナル、ちとアナログな感じの作業がある。

まず必要かわからないけれど、先にbtrfsの設定したデフォルト値をリセット。 なはずですが、うまくいかない。まぁ問題はないのですが、、。

$ mount /dev/nvme0n1p5 /mnt 
$ btrfs subvolume set-default 0 /mnt
$ umount /mnt

追記:こちらのコマンドでデフォルトの状態に戻りました。

% sudo btrfs subvol set-default 5 /mnt

インストールはサブボリュームにインストールされているので、 切り分けるいくつかのサブボリュームを作成・登録する。 ファイルのコピーとfstabの編集が必要。

インストールされたファイルはまだ圧縮されていないのでこの時点で行う。 マウントオプションはマンジャーロのものを流用。

$ mount /dev/nvme0n1p5 /mnt/kali -o rw,noatime,compress=lzo,ssd,space_cache,commit=120,subvol=@kali
$ btrfs filesystem defragment -r -v -clzo /mnt/kali/

その他のサブボリュームもマウントしてファイルを移動する。 mvでエラーが出るが問題はない。

$ mount /dev/nvme0n1p5 /mnt/root -o rw,noatime,compress=lzo,ssd,space_cache,commit=120,subvol=@root
$ mount /dev/nvme0n1p5 /mnt/log -o rw,noatime,compress=lzo,ssd,space_cache,commit=120,subvol=@log
$ mv /mnt/kali/root/.* /mnt/root/
$ mv /mnt/kali/var/log/*  /mnt/log/

そして/etc/fstab/をデビアンから取ってきて編集する。 Manjaroでのオプション rw,noatime,compress=lzo,ssd,space_cache,commit=120 を付け加える。

$ cat /mnt/debian/etc/fstab/ >> /mnt/root/etc/fstab
$ vi /mnt/root/etc/fstab

6. 再起動後に最後の仕上げ

再起動するもGrubのインストールができていないよう。 Manjaroで立ち上げ、sudo update-grubでブートローダーを更新して起動させると問題はないので、 ブートローダーを多分USB側に書き込んでいるのか、すっきりせず。

ログインをして必要なファイルをインストール、そして更新・アップデートをする。

$ apt install btrfs-progs
$ apt update
$ apt upgrade

これで、あとは無線LANドライバーのインストール・Wifi設定 多分デビアンと同じ作業で自分の環境を作ることができる。 (ただ、ZFSのインストール時にエラーが出るのはちょっと、、)

Sanpshotを使ったリカバリー方法も記載されていますが、 思っているやり方とちがうのでそちらは保留してます。

References:

See Also

🏝 tipping

🌷 sat ⚡️ goozenlab@getalby.com
🌻 bitcoin : bc1qnjhnsxgqah050995dkdveav4y3t3d7uxyme4ud

If you do send a tip, Please email me so that I can say thank you.