Debian 12¶
2023年6月にリリースされた DebianのLTS(Long Term Support)で、5年間のセキュリティサポートが提供されます。
Debian 12のコードネームは、"Bookworm"です。
OS設定(Minimal)¶
Windows OSの仮想環境 Hyper-V における仮想ゲスト用途で最小限のCLI(コマンドラインインタフェース)を提供するコンソールのみのOS設定について記載します。
仮想ゲストイメージの準備¶
クラウド(VM)向けDebian 12イメージのダウンロード¶
Debian Official Cloud Imagesサイトから、Debian 12のディレクトリ(bookworm)を辿ります。
https://cloud.debian.org/images/cloud/bookworm/
各種用途の仮想ゲストイメージが用意されています。Hyper-Vで動かすには、"nocloud"を使用します。2026-05-05時点で最新のイメージファイルは次です。ファイルサイズは400MBほどです。
https://cloud.debian.org/images/cloud/bookworm/20260502-2466/debian-12-nocloud-amd64-20260502-2466.qcow2
Hyper-Vで実行可能な形式に変換¶
Hyper-Vで動作するには、ファイル形式を qcow2形式からVHDX形式に変換する必要があります。Windows上で変換するには、WSL2のLinux上で qemu-imgコマンドを利用する方法があります。
$ qemu-img convert -f qcow2 -O vhdx debian-12-nocloud-amd64-20260502-2466.qcow2 \ debian-12-nocloud-amd64-20260502-2466.vhdx
このファイルを、Hyper-Vの仮想ディスクファイルの保管場所に保存します。
例)E:\Hyper-V\debian12-alfa\
Hyper-Vに仮想マシンを作成¶
- Hyper-Vマネージャを起動し、[新規] で「仮想マシンの新規作成」ウィザードを開く
- 名前欄に仮想マシン名を入力
- 場所欄に仮想マシンの設定・ディスクファイルを置く親ディレクトリを指定
- 世代の指定で[第2世代]を選択
- 起動メモリはデフォルト(4096MB)とし、[この仮想マシンに動的メモリを使用します]のチェックを外す
- ネットワークの接続は、[Default Switch]1を選択
- 既存の仮想ハードディスクを使用するにチェック、上で保管した場所を指定
作成後、仮想マシンを選択して[設定] > [セキュリティ] で[セキュアブートを有効にする]のチェックを外します。
同様に設定の[プロセッサ]で仮想プロセッサの数を2に変更します。
起動して root でログインできれば成功です。
1 Default Switchは、デフォルトでNAT、DHCPが起動しており便利なのですが、起動の都度サブネット番号が変わってしまい、実作業には不向きです。後で専用の内部スイッチを作成してそこに接続するよう設定変更を行います。
初期設定¶
デフォルトでは、ストレージ3GBとなっています。1GBほど使用済みでのこり1.5GBほどです。
ロケール¶
ロケールは、最小構成でいくのでデフォルトのC.UTF-8のままとします。
# localectl
System Locale: LANG=C.UTF-8
VC Keymap: (unset)
X11 Layout: (unset)
タイムゾーン¶
日本の時刻帯(Asia/Tokyo)を設定します。
# timedatectl set-timezone Asia/Tokyo
# timedatectl
Local time: Tue 2026-05-05 23:01:11 JST
Universal time: Tue 2026-05-05 14:01:11 UTC
RTC time: Tue 2026-05-05 14:01:12
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
キーボード¶
デフォルトではASCII配列キーボードなので、Hyper-Vを動かしているWindowsにJIS配列キーボードを接続している場合はキーが異なるので設定します。
loadkeysコマンド(とそれに必要なデータ)を含む console-data パッケージをインストールします。
# apt install console-data
一次的に日本語配列をロードして反映されるかを確認します。
# loadkeys jp106
この後で記号をキーボードから入れてみてJIS配列となっていることを確認します。loadkeysは再起動すると戻ってしまうので、永続設定を行います。
- etc/systemd/system/loadkeys.service をエディタで新規作成し次を記述
[Unit] Description=Set keyboard layout [Service] Type=oneshot ExecStart=/bin/loadkeys jp106 [Install] WantedBy=multi-user.target
# systemctl enable loadkeys.service
ホスト名¶
ホスト名の設定
# hostnamectl set-hostname deb-alfa
# hostnamectl
Static hostname: deb-alfa
:(略)
ユーザーアカウント作成¶
- グループの作成(groupadd)
- ユーザーの作成(useradd, passwd)
- ユーザーをsudoグループに追加(usermod)
ssh接続¶
# apt install openssh-server
/etc/ssh/sshd_configの設定¶
- rootのsshログイン禁止
PermitRootLogin no
ファイアウォール¶
UFWを使用します。細部は T.B.D.
時刻同期¶
デフォルトで、systemd-timesyncd サービスが実行、2.debian.pool.ntp.org に接続して時刻同期しています。
時刻同期状況の確認¶
# timedatectl timesync-status
Server: 172.105.192.74 (2.debian.pool.ntp.org)
Poll interval: 8min 32s (min: 32s; max 34min 8s)
Leap: normal
:(略)
時刻同期先の指定¶
- /etc/systemd/timesyncd.conf
NTP=ntp.nict.jp
ネットワーク(固定IP)¶
Hyper-VでDefault SwitchからInternal Switchに切り替えた後に設定します。
minimalインストールでは、GUI、nmcli(Network Manager Command Line Interface)が入っていないので、systemd-networkdの設定を行います。