Debian preseed ファイルは、Debian ベースのディストリビューションのインストールと設定を自動化するための便利なツールです。Kali はこれらを利用して、手間のかからない、カスタマイズされた、一貫性のあるインストールを高速化できます。preseed ファイルの詳細については、Debian Installation Guide または Debian の preseed サンプルテキストファイル を参照してください。
preseed ファイルをカスタマイズする方法は数多くあり、インストールされたパッケージによってさらに多くのオプションが提供されますが、このリポジトリは、軽微にカスタマイズされた Kali インストールオプションを可能にする、よりシンプルなファイルの作成とホストを目的としています。
preseed ファイルの使用方法についての非常に詳細で役立つガイドとして、Debian installation wiki を参照できます。これには、preseed を iso ファイルに焼き込む方法、USB を使用して preseed ファイルを保持する方法、ネットワーク接続を利用して URL から preseed ファイルを取得する方法などの手順が含まれています。
一点注意すべきこととして、URL による preseed を利用するには、次のブートプロンプトに従う必要があります:
/install.amd/vmlinuz vga=788 auto=true priority=critical url=link-to-preseed.cfg initrd=/install.amd/initrd.gz --- quiet
BIOS ブートシステムでは、ESC を押して空白のプロンプトを表示するか、E を押して既存のブートオプションを変更することで、ブートパラメータを編集できます。UEFI システムでは、C を押して空白のプロンプトを表示するか、E を押して既存のブートオプションを変更できます。
既存のブートオプションを利用したい場合は、以下のブートプロンプトを追加して自動インストールを実行できます:
language=en country=US locale=en_US.UTF-8 keymap=us auto=true priority=critical url=link-to-preseed.cfg
preseed ファイルを作成する際、ハンズオフインストールを行うために常に使用すべきフラグがいくつかあります。それぞれについて見ていきましょう。
以下は、ロケール、言語、国などのロケーションベースの設定を自動的に選択します。ロケールの詳細については、Debian Wiki のエントリ を参照してください。使用するロケールがわからない場合は、以下のように設定されている英語オプションを選択できます。あるいは、ロケールを確認するには、既にインストールされているマシンで locale コマンドを実行します。.UTF-8 の前に情報を入力するようにしてください。
kali@kali:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
preseed オプション:
d-i debian-installer/locale string en_US
ただし、これらのオプションをすべて手動で選択したい場合、または上記を利用した後にそのうちの 1 つだけを変更したい場合は、以下のようにしてそれぞれを設定できます:
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i debian-installer/locale string en_US.UTF-8
次に、ロケールでは設定されないキーマップを設定する必要があります。既にインストールされているマシンがある場合は、localectl コマンドを使用してレイアウトを確認できます。
kali@kali:~$ localectl
System Locale: (unset)
VC Keymap: (unset)
X11 Layout: us
X11 Model: pc105
preseed オプション:
d-i keyboard-configuration/xkb-keymap select us
ロケールとキーマップは、後からそれぞれ dpkg-reconfigure locales と dpkg-reconfigure keyboard-configuration を使用して変更できることに留意してください。
次に、ネットワーク設定を編集できます。これは URL による preseed を使用している場合は 使用されない ことに留意してください。最初にインターフェースを選択する必要があります。このオプションでは、最も簡単な auto を使用します。ただし、必要に応じて eth0 などの特定のインターフェースを選択することもできます。
d-i netcfg/choose_interface select auto
以下の preseed オプションは、ホスト名とドメイン名の要求をスキップするために使用されます。これらは DHCP によって提供されるか、プリセット値 (ホスト名には 'kali'、ドメインは空白) が使用されます:
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
ホスト名やドメイン名を自分で設定したい場合は、文字列を希望する値に変更することで設定できます。DHCP の値が設定した値よりも優先されることに留意してください。ただし、以下のように値をハードコードすることで回避できます:
d-i netcfg/hostname string personal-hostname
次に、ネットワークミラーに移ります。以下のオプションは、Kali に使用するミラーと、必要に応じてプロキシ設定を設定するために使用されます。よくわからない場合は、おそらく何も設定する必要はありません。この例では、ホスト名の値を Kali の Cloudflare ミラーネットワークである kali.download に編集します。利用可能な最速のミラーを自動的に割り当てたい場合は、代わりに http.kali.org オプションを使用できます:
d-i mirror/country string manual
d-i mirror/http/hostname string kali.download
d-i mirror/http/directory string /kali
d-i mirror/http/proxy string
他にも含めることを選択できるオプションがいくつかあります。これらの 2 つのオプションは、ミラーに接続するためのプロトコルと、選択するスイートを設定します。どちらかのオプションを変更する必要がない限り、preseed からこれらを除外するのが最善です:
d-i mirror/protocol string http
d-i mirror/suite string kali-rolling
次に、ユーザー作成に移ります。最初にフルネームを設定し、次にユーザー名を設定します。フルネームは複数の単語にできますが、ユーザー名は複数の単語にできません。ユーザー名には必ず 1 つの単語を使用してください。次に、パスワードを好きなように設定できます。パスワードを平文にしたくない場合は、暗号化されたハッシュを使用することもできます。ハッシュは mkpasswd コマンドやその他の多くの方法で生成できますが、ここでは説明しません:
d-i passwd/user-fullname string Kali Linux
d-i passwd/username string kali
d-i passwd/user-password password kali
d-i passwd/user-password-again password kali
暗号化されたハッシュは次のように使用できます:
d-i passwd/user-password-crypted password [hash]
次に、クロック設定に移ります。使用されるオプションは次のことを行います: システムクロックが UTC に設定されていることをインストーラーに通知し、Kali インストールがクロックとして使用するタイムゾーン値を適用し、NTP を使用してその時刻を設定します。
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
タイムゾーンに設定する値は、フォルダ /usr/share/zoneinfo/ で検索するか、次のコマンドを使用して見つけることができます:
kali@kali:~$ cat /etc/timezone
US/Eastern
次に、パーティショニングに入ります。これは preseed 作成の中で最も複雑な部分であり、使用しているシステムの種類と、実行したいインストールの種類に基づいて設定する値がいくつかあるためです。
まず、パーティショニングツールである partman の自動設定を設定します。LVM (lvm) や暗号化 (crypto) を利用するのではなく、通常のインストールであることを指定し、利用可能なハードドライブの全容量を使用するように指定します。20 GB などの小さいサイズや、空き容量のパーセンテージを使用することもできます。最後のオプションは、ファイルの構成方法を決定します。すべてを 1 つのパーティションにまとめるか (atomic)、/home フォルダを別のパーティションにするか (home)、/home、/var、/tmp をすべて別々のパーティションにするか (multi) です。
d-i partman-auto/method string regular
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
次に、同意する一連のプロンプトがあります。これらのすべてのプロンプトに同意すると、partman は上記で設定した値に従って自動的にパーティション分割します。
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
パーティショニングはこれで完了です。パッケージの選択に移ることができます。以下のオプションは、標準的な Kali Xfce インストールになります。設定可能な値の全リストを確認するには、tasksell Kali GitLab パッケージリポジトリ を参照してください。いくつかのオプションは、desktop-gnome、desktop-kde、meta-top10、meta-everything、meta-purple です。使用したいパッケージを追加し、区切り文字としてカンマを使用するようにしてください。
tasksel tasksel/first multiselect standard,core,desktop-xfce,meta-default
追加のパッケージを個別に選択してインストールすることも可能です:
d-i pkgsel/include string openssh-server build-essential
また、debootstrap 後にパッケージをアップグレードすることも可能です。safe-upgrade または full-upgrade を使用するか、none でアップグレードしないこともできます:
d-i pkgsel/upgrade select none
あと 1 つだけセクションが残っています: grub オプションと再起動です。これらのオプションは比較的単純です。Debian のみ を検出した場合にブートパーティションのセットアップが安全であることを grub に通知し、別の OS がインストールされている ことを検出した場合にブートパーティションのセットアップが安全であることを通知します。最初のオプションはほとんどの状況で安全ですが、2 番目のオプションはデュアルブートを使用する場合にリスクが生じる可能性があります。デュアルブートを使用していない場合は true に設定できますが、それ以外の場合はオプションを削除して手動で選択することをお勧めします。
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
最後の 2 つのオプションは、ブートデバイスを設定し、システムに Kali への再起動を指示します。この例では、USB ドライブを使用して Kali をインストールする可能性があるため、ブートデバイスを /dev/sda にハードコードしています。USB ドライブを使用しない場合は、default 値を選択できますが、値をハードコードする方が安全です。
d-i grub-installer/bootdev string /dev/sda
d-i finish-install/reboot_in_progress note