検証メモ / ThinkPad + UbuntuThinkPad Yoga 260、元からある仮想化を検証して取り戻す
新品サーバではない2016年機のVT-xは生きていた。消えていたのはBIOSではなく、カーネル7.0とUbuntu 26.04側の地図だった。
ユーザー yoga260 / kernel 7.0.0-31-generic / i5-6200U / TDP 15W
Yoga 260 は新品のサーバではない。2016年前後の12.5インチ、CPUは Intel Core i5-6200U(物理2コア / Hyper-Threadingで論理4本、TDP 15W)だ。この世代のThinkPadには、最初から Intel VT-x が載っている。今日の作業は新機能の追加ではなく、ハードが持っていた機能が今も生きているかを確かめ、Ubuntu 26.04 側の地図が変わって見えなくなっていた道を繋ぎ直すことだった。
検証の方針は最小権限。BIOSを触らず、まず CPU フラグと KVM 入口だけを読む。ゲスト作成は別工程。秘密情報やクラウド鍵は扱わない。
ハードのいま: システムモニタから
朝、GNOMEのシステムモニタを開いた。
| 項目 | 値 |
|---|
| CPU | i5-6200U @ 2.30GHz |
| 論理CPU | 4本、使用率 53-63% |
| 周波数 | 約 1.00 GHz |
| 温度 | 49度C(最高 53度C) |
定格は 2.3GHz、Turbo は最大 2.8GHz なのに、全スレッドが 1GHz 付近で平坦に乗っていた。熱で叩かれた形跡はない。49度は、この U シリーズとしては低い。省電力側の P-state に落ちているだけで、ハードの故障ではない。右側では Firefox が YouTube を再生していた。この世代のソフトデコードだと、この帯の負荷はよく出る。
ここで見たかったのは「忙しいかどうか」より、4論理CPUが揃って応答しているかだった。物理2コアに HT が乗った、工場出荷時の姿のまま動いている。
元の機能は VT-x。失われていたのは BIOS ではなかった
i5-6200U は ARK 上、次を持つ。
- VT-x(CPU 仮想化、フラグ名 vmx)
- EPT(メモリ変換のハードウェア化)
- VT-d(I/O 側。ボードと BIOS 次第)
- VPID
ThinkPad 系の BIOS では Security タブに Intel Virtualization Technology がある。Yoga 260 もその系統だ。ただし「項目がある」と「今オンか」は別だ。ハード検証は MSR と KVM の入口で行う。
出力 kvm-ok
kvm-okINFO: /dev/kvm existsKVM acceleration can be used
出力 IA32_FEATURE_CONTROL (MSR 0x3A)
sudo rdmsr 0x3A5
0x3A は IA32_FEATURE_CONTROL。5 は二進数 101 で、Lock 済み+通常の VMX オン。BIOS が起動時に書いて鍵を掛けた状態で、OS から後付けしたものではない。dmesg に kvm: disabled by bios も出ない。
つまり仮想化は死んでいなかった。ThinkPad の元のスイッチは最初から入っていた。今日 F1 で BIOS を開く作業はしていない。
lsmod には kvm_intel kvm irqbypass が載り、使用中ゲストは 0 台。モジュールはある。使う側の道が、まだホストに通っていなかった。
カーネル 7.0 で「昔の地図」が消えた
6.x までの手順は、いまの値をここに見に行く。
パス 6.x までの sysfs(7.0 では無い)
/sys/module/kvm_intel/parameters/nested/sys/module/kvm_intel/parameters/ept
7.0.0-31-generic では、ディレクトリごと無い。lsmod に kvm_intel が出ても、sysfs の古いつまみは置かれない。ハードが VT-x を失ったのではなく、Linux 側が「切るスイッチ」をやめた。EPT は常時オンに近く、パラメータはモジュールファイルのカタログ側に残る。
モジュール情報 kvm-intel.ko.zst
filename: .../kvm-intel.ko.zstparm: ept / vpid / nested / unrestricted_guest / enable_apicv ...
いまの値は親モジュール側で読めた。
現在値 /sys/module/kvm/parameters/
enable_virt_at_load : Ytdp_mmu : Yallow_unsafe_mappings: Nenable_vmware_backdoor: Nnx_huge_pages : Y
enable_virt_at_load=Y が、6.12 以降の「モジュールを載せた時点で VT-x を確保する」動きだ。kvm-ok が通る理由と一致する。数値も工場既定(halt_poll_ns=200000 など)で、緩めてもいない。
検証の結論は短い。CPU の元機能は生きている。壊れていたのは自分の頭の中のパスだけだ。
ソフトの名前が変わっていた。機能をホストから取り戻す
地図を直したあと、ホストに QEMU/KVM を入れる。ここで Ubuntu 26.04 特有の段差が二つ出た。
ひとつめ。昔のメタパッケージ名 qemu-kvm は実体を持たない仮想パッケージになった。
パッケージ名
qemu-system-x86 基本スタック <- こちらqemu-system-x86-hwe 仮想化 HWE(TDX / SEV-SNP 向け)
Yoga 260 の Skylake に TDX は無い。HWE を混ぜると壊れる。実体は qemu-system-x86 を明示する。
ふたつめ。virt-manager は universe。最初の取得が resolute/main だけだと見つからない。ubuntu.sources を見ると、最終的には両スタンザとも:
ubuntu.sources
Components: main restricted universe
universe を有効にして入れ直した結果、dpkg 上はこうなった。
| パッケージ | 役割 | この機での位置づけ |
|---|
| qemu-system-x86 1:10.2.1+ds-1ubuntu3.2 | KVM 付き QEMU | 取り戻した本体 |
| virt-manager 1:5.1.0-1 | 仮想マシンマネージャー | 操作面 |
| ovmf 2025.11-3ubuntu7 | ゲスト UEFI | 必要 |
| ovmf-inteltdx / ovmf-amdsev | TDX / SEV 用ファーム | 付属だけ。6200U では使わない |
| libvirtd | ゲストの仲介 | active |
コマンド グループ追加
sudo usermod -aG libvirt,kvm yoga260
グループはログイン時に決まる。ログアウトして入り直すと:
確認
groups ... libvirt kvmsystemctl is-active libvirtd ... active
仮想マシンマネージャーが開き、接続名は QEMU/KVM。一覧は空。ハードの VT-x が、再びユーザー空間から見えるところまで戻った。
ゲスト 0 台なのは未作成であって、失敗ではない。
ハードの上限。取り戻しても 2016 年の 15W のまま
機能が戻っても、シリコンは増えない。
| 項目 | Yoga 260 での目安 |
|---|
| ゲスト vCPU | 2(4 はホストが飢える) |
| メモリ | 2048-3072 MB |
| ディスク | 20 GB qcow2(本体は /var/lib/libvirt/images/) |
| ゲスト OS | Ubuntu Server(Desktop を重ねない) |
| ネット | 最初は NAT(別マシンとして 192.168.122.x) |
ThinkPad の「もう1台」は、同じ机の上に Server を載せるイメージになる。インストール中はホストの YouTube を閉じる。止めるときはゲスト内 sudo poweroff。
ホームをディスク使用量アナライザーで見ると 1.7 GB で、うち 1.3 GB が Firefox の .cache だった。virt-manager の設定は 32 kB。仮想ディスクはホームには無い。キャッシュの赤と KVM の容量は別指標だ。
今日の検証で分かったこと
- 1. VT-x は元からオンMSR 0x3A=5。BIOS 作業なし。
- 2. 1GHz / 49度C は省電力仮想化の死ではない。
- 3. カーネル 7.0 は古い sysfs つまみを置かない現在値は /sys/module/kvm/parameters/。
- 4. Ubuntu 26.04 は qemu-kvm という名前を捨てた実体は qemu-system-x86。universe が必要。
- 5. HWE 仮想化スタックはこの機に不要Skylake に TDX は無い。
- 6. 機能はホストから見えるところまで戻した中に載せる OS はこれから。
次は Server の ISO を置いて、ファイル - 新しい仮想マシン、だけだ。ハードの検証は今日で一段落した。元々あったスイッチを、新しい OS の言葉で呼び直せばよかった。
セキュリティの強化
ゲストは NAT から始める。ISO は公式チェックサム確認後。qcow2 はホーム直下に置かない(既定は /var/lib/libvirt/images/)。HWE / TDX / SEV 用ファームは 6200U では使わない。画像は Ameba 公式ホストのみ。