「Xen」の版間の差分
(→UEFI: 情報を更新) |
(→ネットワークブリッジの作成: 情報を更新) |
||
125行目: | 125行目: | ||
=== ネットワークブリッジの作成 === |
=== ネットワークブリッジの作成 === |
||
− | Xen は |
+ | Xen では、''domU'' と ''dom0'' (およびそれ以降) の間のネットワーク通信を手動で設定する必要があります。DHCP と静的アドレス指定の両方を使用できますが、どちらを選択するかはネットワークトポロジによって決定されます。複雑なセットアップが可能です。詳細については Xen Wiki の [https://wiki.xen.org/wiki/Xen_Networking Networking] の記事を参照し、さまざまなネットワーク構成のスクリプトについては {{ic|/etc/xen/scripts}} を参照してください。すべての ''domU'' が接続されている ''dom0'' に仮想スイッチが作成される基本的なブリッジネットワークは、{{ic|xenbr0}} という名前の [[ネットワークブリッジ]] を作成することで設定できます。 |
+ | 詳細については、[[ネットワークブリッジ#ブリッジの作成]] を参照してください。 |
||
− | # cd /etc/netctl |
||
− | # cp examples/bridge xenbridge-dhcp |
||
+ | ==== Systemd-networkd ==== |
||
− | {{ic|/etc/netctl/xenbridge-dhcp}} に以下の変更を施して下さい (既存のネットワーク接続の名前が {{ic|eth0}} の場合): |
||
− | Description="Xen bridge connection" |
||
− | Interface=xenbr0 |
||
− | Connection=bridge |
||
− | BindsToInterfaces=(eth0) # Use the name of the external interface found with the 'ip link' command |
||
− | IP=dhcp |
||
+ | 詳細については、[[Systemd-networkd#ブリッジインターフェイス]] を参照してください。 |
||
− | 次のコマンドでネットワークブリッジを起動します: |
||
− | # netctl start xenbridge-dhcp |
||
+ | ==== Network Manager ==== |
||
− | プロンプトが戻ってきたら、全てが問題ないか確認してください: |
||
− | {{hc|# brctl show| |
||
− | bridge name bridge id STP enabled interfaces |
||
− | xenbr0 8000.001a9206c0c0 no eth0 |
||
− | }} |
||
+ | Gnome の Network Manager は、面倒な場合があります。Wiki の [[ネットワークブリッジ|ブリッジ]] セクションに概要が記載されているブリッジ作成セクションに従うことが不明瞭である場合、または機能しない場合は、次の手順で機能する可能性があります。 |
||
− | ブリッジに問題がないようでしたら、次のコマンドでブート時に自動的に起動するように設定することができます: |
||
+ | |||
− | # netctl enable xenbridge-dhcp |
||
+ | "ネットワーク設定" を開き、ブリッジで使用するインターフェイス (例: enp5s0) を無効にします。設定をオフに編集し、"自動的に接続する" のチェックを外します。 |
||
+ | |||
+ | ネットワーク設定の左下にある「+」記号をクリックして、新しいブリッジ接続プロファイルを作成します。必要に応じて、以下を実行します。 |
||
+ | |||
+ | # nm-connection-editor |
||
+ | |||
+ | すぐにウィンドウを表示します。ウィンドウが開いたら、ブリッジを選択します。 |
||
+ | |||
+ | "ブリッジ接続" の横にある "追加" をクリックし、ブリッジで使用するインターフェイス (例: イーサネット) を選択します。使用するインターフェイスに対応するデバイスの MAC アドレスを選択し、設定を保存します。 |
||
+ | |||
+ | ブリッジが DHCP 経由で IP アドレスを受信する場合は、IPv4/IPv6 セクションをそのままにしておきます。この特定の接続に対して DHCP が実行されていない場合は、必ずブリッジに IP アドレスを与えてください。言うまでもなく、IP アドレスがブリッジに割り当てられていない場合、すべての接続は失敗します。最初にブリッジを作成するときに IP アドレスを追加するのを忘れた場合でも、後でいつでも編集できます。 |
||
+ | |||
+ | 次に、root として次を実行します: |
||
+ | |||
+ | # nmcli con show |
||
+ | |||
+ | 作成したブリッジの名前と一致する接続が表示されるはずです。その接続上の UUID を強調表示してコピーし、(再度 root として) 実行します: |
||
+ | |||
+ | # nmcli con up <UUID OF CONNECTION> |
||
+ | |||
+ | 新しい接続がネットワーク設定の下に表示されます。30 秒から 1 分ほどかかる場合があります。稼働していることを確認するには、次のコマンドを実行します: |
||
+ | |||
+ | # brctl show |
||
+ | |||
+ | アクティブなブリッジのリストを表示します。 |
||
+ | |||
+ | 再起動します、その後すべてが正常に動作する (つまり、ブリッジが自動的に開始する) 場合は、準備は完了です。 |
||
+ | |||
+ | <オプション> ネットワーク設定で、ブリッジに接続しないブリッジインターフェイスの接続プロファイルを削除します。これにより、後で混乱が生じるのを防ぐことができます。 |
||
=== Xen の systemd サービスのインストール === |
=== Xen の systemd サービスのインストール === |
2024年1月11日 (木) 01:09時点における版
Xen Overview より:
- Xen はオープンソースの type-1 またはベアメタルハイパーバイザであり、単一のマシン (ホスト) でオペレーティングシステムのインスタンスや実際の様々なオペレーティングシステムを多数同時に実行することができます。Xen はオープンソースで提供されている唯一の type-1 ハイパーバイザです。Xen は多くの商用そしてオープンソースアプリケーションの基盤として使われています、例えば: サーバー仮想化, Infrastructure as a Service (IaaS), デスクトップ仮想化, セキュリティアプリケーション, 組み込み・ハードウェアアプライアンス。
目次
イントロダクション
Xen ハイパーバイザは同時に複数のオペレーティングシステムを動作できるようにコンピュータアーキテクチャをエミュレートする薄いソフトウェアレイヤーです。ハイパーバイザはインストールされているコンピュータのブートローダーによって起動します。ハイパーバイザがロードされると、dom0 ("domain 0" の略で、ホストまたは特権ドメインとも呼ばれます) が起動して Arch Linux が走ります。dom0 が起動したら、dom0 から一つまたは複数の domU (ユーザードメインの略で、VM またはゲストとも呼ばれます) を起動・制御することができます。Xen は準仮想化 (PV) とハードウェア仮想化 (HVM) 両方の domU をサポートしています。詳しくは Xen.org を見て下さい。
システム要件
Xen ハイパーバイザは最新の Linux カーネルに含まれている、カーネルレベルのサポートを必要としており、Arch のカーネルパッケージである linux と linux-lts にも組み込まれています。HVM の domU を動かすには、Intel VT-x または AMD-V (SVM) どちらかの仮想化サポートが搭載された物理ハードウェアが必要です。これを確認するために、Xen ハイパーバイザが動作していないときに次のコマンドを実行してください:
$ grep -E "(vmx|svm)" --color=always /proc/cpuinfo
上のコマンドで何も出力がされない場合、ハードウェア仮想化のサポートが利用できません。あなたのハードウェアでは HVM domU を実行することは不可能です (または Xen ハイパーバイザが実行中です)。CPU がハードウェア仮想化の機能をサポートしているという自信がある場合はブートプロセスの間にホストシステムの BIOS 設定メニューにアクセスして、仮想化サポートに関連するオプションが無効になっていないか確認してください。そのようなオプションが存在していて無効になっていたときは、有効にして、システムを再起動してからもう一度上のコマンドを実行してください。Xen ハイパーバイザは PCI パススルーもサポートしており、デバイスが dom0 をサポートしていないときでも PCI デバイスを直接 domU に引き渡すことができます。PCI パススルーを使用するには、CPU が IOMMU/VT-d をサポートしていなければなりません。
dom0 の設定
Xen ハイパーバイザはベースのオペレーティングシステムのフルインストールを必要とします。Xen ハイパーバイザをインストールしようとする前に、ホストマシンに完全な最新の Arch Linux をインストールする必要があります。このインストールは base パッケージだけの最小インストールでもかまわなく、デスクトップ環境や Xorg は必要とされません。新しいホストをスクラッチから作成する場合は、インストールガイドを見て Arch Linux をインストールしてください。通常のインストールを Xen ハイパーバイザの上で動作する dom0 に転換するには以下の設定手順が必要です:
- Xen ハイパーバイザのインストール
- Xen ハイパーバイザを起動するようにブートローダーを設定
- ネットワークブリッジの作成
- Xen の systemd サービスのインストール
Xen ハイパーバイザのインストール
Xen ハイパーバイザをインストールするには xenAUR パッケージをインストールしてください。どちらのパッケージにも Xen ハイパーバイザ、最新の xl インターフェイスと設定・サポートファイル、systemd サービスが含まれています。Xen をコンパイル・インストールするには multilib リポジトリを有効にして multilib-devel パッケージグループをインストールする必要があります。man ページやドキュメントが必要なときは xen-docsAUR パッケージをインストールしてください。
BIOS や UEFI を使って仮想マシンを起動するにはそれぞれ seabios または ovmf[リンク切れ: 置換パッケージ: edk2-ovmf] パッケージをインストールする必要があります。
ブートローダーの修正
通常のカーネルを起動するのに使われているブートローダーを、特殊な Xen カーネル (xen.gz
または UEFI の場合 xen.efi
) をロードするように修正しなくてはなりません。このために新しいブートローダーエントリが必要になります。
UEFI
Xen は、Xen EFI システム で指定されている UEFI からのブートをサポートしています。efibootmgr を使用してブート順序やその他のパラメーターを設定する必要がある場合もあります。
まず、xen.efi
ファイルがカーネルファイルおよび RAM ディスク ファイルとともに EFI システムパーティション に存在することを確認します。
次に、Xen には、どのカーネルを dom0 として起動するかを指定する ASCII (UTF-8、UTC-16 などは不可) 設定ファイルが必要です。このファイルは、バイナリと同じ EFI システムパーティション に配置する必要があります。Xen はいくつかの設定ファイルを検索し、最初に見つかった設定ファイルを使用します。検索順序は、バイナリ名の拡張子 .efi
が .cfg
に置き換えられることから始まり、一致するものが見つかるまで、末尾の名前コンポーネント .
、-
および _
が削除されます。通常、xen.cfg
という名前の単一ファイルが、次のようなシステム要件とともに使用されます。
xen.cfg
[global] default=xen [xen] options=console=vga iommu=force:true,qinval:true,debug:true loglvl=all noreboot=true reboot=no vga=ask ucode=scan kernel=vmlinuz-linux root=/dev/sdaX rw add_efi_memmap #earlyprintk=xen ramdisk=initramfs-linux.img
systemd-boot
新しい EFI タイプのローダーエントリを追加します。詳細については、systemd-boot#EFI シェルや他の EFI アプリ を参照してください。例えば:
/boot/loader/entries/10-xen.conf
title Xen Hypervisor efi /xen.efi
EFISTUB
EFISTUB を使用して、UEFI から直接 EFI カーネルをブートすることができます。
ビルドインの UEFI シェル にドロップし、EFIファイルを直接呼び出します。例えば:
Shell> fs0: FS0:\> xen.efi
上で概説したように、EFI システムパーティション 内の xen.cfg
構成ファイルが依然として必要であることに注意してください。さらに、-cfg=file.cfg
パラメータを使用して別の構成ファイルを指定することもできます。例えば:
Shell> fs0: FS0:\> xen.efi -cfg=xen-rescue.cfg
これらの追加設定ファイルは、Xen EFI バイナリファイルおよび Linux スタブファイルと同じディレクトリに存在する必要があります。
GRUB
GRUB ユーザーのために、Xen パッケージには /etc/grub.d/09_xen
生成ファイルが入っています。/etc/xen/grub.conf
ファイルを編集して Xen の起動コマンドをカスタマイズすることが可能です。例えば、起動時に dom0 に 512 MiB のメモリを割り当てるには、/etc/xen/grub.conf
を編集して次の行を:
#XEN_HYPERVISOR_CMDLINE="xsave=1"
以下のように置き換えます:
XEN_HYPERVISOR_CMDLINE="dom0_mem=512M xsave=1"
オプションをカスタマイズしたら、次のコマンドでブートローダーの設定を更新してください:
# grub-mkconfig -o /boot/grub/grub.cfg
GRUB ブートローダーの使用方法に関しては GRUB に詳細が載っています。
Syslinux
Syslinux を使っている場合、以下のような記述を /boot/syslinux/syslinux.cfg
に追加してください:
LABEL xen MENU LABEL Xen KERNEL mboot.c32 APPEND ../xen-X.Y.Z.gz --- ../vmlinuz-linux console=tty0 root=/dev/sdaX ro --- ../initramfs-linux.img
X.Y.Z
は使用している xen のバージョンに、/dev/sdaX
は root パーティションに置き換えて下さい。
また、syslinux.cfg
と同じディレクトリに mboot.c32
(と libcom32.c32
) が必要です。/boot/syslinux
に mboot.c32
がない場合はコピーしてください:
# cp /usr/lib/syslinux/bios/mboot.c32 /boot/syslinux
ネットワークブリッジの作成
Xen では、domU と dom0 (およびそれ以降) の間のネットワーク通信を手動で設定する必要があります。DHCP と静的アドレス指定の両方を使用できますが、どちらを選択するかはネットワークトポロジによって決定されます。複雑なセットアップが可能です。詳細については Xen Wiki の Networking の記事を参照し、さまざまなネットワーク構成のスクリプトについては /etc/xen/scripts
を参照してください。すべての domU が接続されている dom0 に仮想スイッチが作成される基本的なブリッジネットワークは、xenbr0
という名前の ネットワークブリッジ を作成することで設定できます。
詳細については、ネットワークブリッジ#ブリッジの作成 を参照してください。
Systemd-networkd
詳細については、Systemd-networkd#ブリッジインターフェイス を参照してください。
Network Manager
Gnome の Network Manager は、面倒な場合があります。Wiki の ブリッジ セクションに概要が記載されているブリッジ作成セクションに従うことが不明瞭である場合、または機能しない場合は、次の手順で機能する可能性があります。
"ネットワーク設定" を開き、ブリッジで使用するインターフェイス (例: enp5s0) を無効にします。設定をオフに編集し、"自動的に接続する" のチェックを外します。
ネットワーク設定の左下にある「+」記号をクリックして、新しいブリッジ接続プロファイルを作成します。必要に応じて、以下を実行します。
# nm-connection-editor
すぐにウィンドウを表示します。ウィンドウが開いたら、ブリッジを選択します。
"ブリッジ接続" の横にある "追加" をクリックし、ブリッジで使用するインターフェイス (例: イーサネット) を選択します。使用するインターフェイスに対応するデバイスの MAC アドレスを選択し、設定を保存します。
ブリッジが DHCP 経由で IP アドレスを受信する場合は、IPv4/IPv6 セクションをそのままにしておきます。この特定の接続に対して DHCP が実行されていない場合は、必ずブリッジに IP アドレスを与えてください。言うまでもなく、IP アドレスがブリッジに割り当てられていない場合、すべての接続は失敗します。最初にブリッジを作成するときに IP アドレスを追加するのを忘れた場合でも、後でいつでも編集できます。
次に、root として次を実行します:
# nmcli con show
作成したブリッジの名前と一致する接続が表示されるはずです。その接続上の UUID を強調表示してコピーし、(再度 root として) 実行します:
# nmcli con up <UUID OF CONNECTION>
新しい接続がネットワーク設定の下に表示されます。30 秒から 1 分ほどかかる場合があります。稼働していることを確認するには、次のコマンドを実行します:
# brctl show
アクティブなブリッジのリストを表示します。
再起動します、その後すべてが正常に動作する (つまり、ブリッジが自動的に開始する) 場合は、準備は完了です。
<オプション> ネットワーク設定で、ブリッジに接続しないブリッジインターフェイスの接続プロファイルを削除します。これにより、後で混乱が生じるのを防ぐことができます。
Xen の systemd サービスのインストール
Xen dom0 は xenstored
, xenconsoled
, xendomains
, xen-init-dom0
サービスの起動と有効化を必要とします。
インストールが成功したか確認
dom0 ホストを再起動して Xen カーネルが正しく起動するか確認して、再起動を行っても全ての設定が消えないことを確認してください。dom0 を正しく設定できていれば、root で xl list
を実行すると以下のように表示されます:
# xl list
Name ID Mem VCPUs State Time(s) Domain-0 0 511 2 r----- 41652.9
もちろん Mem, VCPUs, Time カラムの値はマシンの設定や稼働時間によって変わってきます。重要なのは dom0 が記載されていることです。
上記の必須の手順に加えて、Xen を動かすときのベストプラクティス にはメモリ使用量を一定に固定したり dom0 が使用する CPU コアを指定する方法などの情報が書かれています。また、xenfs ファイルシステムのマウントポイントを /etc/fstab
に記述して作成するのも有益です:
none /proc/xen xenfs defaults 0 0
ベストプラクティス設定
Xen を使用する前に、Xen プロジェクトのベストプラクティス を確認してください。
Xen を使う
Xen は準仮想化 (PV) とハードウェア仮想化 (HVM) 両方の domU をサポートしています。以下のセクションでは HVM と PV の domU を作成して Arch Linux を走らせる手順を説明します。一般的には、HVM domU を作成する手順は domU OS とは関係なく、HVM domU は Microsoft Windows を含む幅広いオペレーティングシステムをサポートしています。HVM domU を使用するには dom0 のハードウェアが仮想化をサポートしている必要があります。準仮想化の domU では仮想化のサポートは必須ではありませんが、代わりに、オペレーティングシステムによって異なるインストール方法で、ゲストオペレーティングシステムに修正を加えなくてはなりません (Xen の wiki にある Guest Install のページを見て下さい)。オペレーティングシステムによっては PV domU としてインストールすることは不可能になっています (例: Microsoft Windows)。基本的に、HVM domU はエミュレートされたハードウェア上で動作するため PV domU よりも動作が遅いのが普通です。PV と HVM の domU のセットアップには共通しているところもありますが、ほとんどの部分で差異があります。どちらにしても、domU ごとに、"ハードディスク"を作成して設定ファイルを書き込まなければなりません。さらに、インストールのために domU は dom0 に保存されたインストール ISO のコピーにアクセスする必要があります (Arch Linux の ISO の入手方法についてはダウンロードページを参照)。
domU "ハードディスク"の作成
Xen は論理ボリューム、パーティション、イメージファイルなどを含む様々なタイプの"ハードディスク"をサポートしています。最大で 10GiB まで膨らむスパースファイルを作成するには、次のコマンドを使います:
$ truncate -s 10G domU.img
ドメインの可搬性よりもファイル IO の速度が重要な場合は、論理ボリュームやパーティションを利用すると良いでしょう。
Xen はホストマシンから利用できるパーティションやディスクを別の形でドメインで表示する場合があります。例えば、ホストの LVM パーティションがドメインでは (複数のパーティションが含まれた) ハードドライブとして認識されたりします。パーティションにサブパーティションを作成するとホストマシンのパーティションにアクセスするのが難しくなるので注意してください。パーティションの中のパーティションを区画する方法は kpartx の man ページを参照。
domU 設定の作成
各 domU には設定ファイルが必要で、それを使って仮想マシンが作られます。設定ファイルに関する詳細は Xen Wiki や xl.cfg
の man ページを見て下さい。設定ファイルのいくつかの要素は HVM と PV の両方の domU で共通しています。共通している設定は:
name = "domU" memory = 256 disk = [ "file:/path/to/ISO,sdb,r", "phy:/path/to/partition,sda1,w" ] vif = [ 'mac=00:16:3e:XX:XX:XX,bridge=xenbr0' ]
name=
は xl ツールが domU を管理するのに使用する名前で、全ての domU と被らないような名前にする必要があります。disk=
にはインストールメディア (file:
) と domU のために作成したパーティション (phy:
) の情報を記入します。物理パーティションではなくイメージファイルを使用する場合は、phy:
を file:
に変える必要があります。vif=
はネットワークコントローラを定義します。00:16:3e
MAC ブロックが Xen ドメインのために予約されており、mac=
の最後の3桁はランダムに埋める必要があります (0-9 と a-f の16進数)。
domU の管理
domU をブート時に起動させるには、/etc/xen/auto
に設定ファイルのシンボリックリンクを作成して xendomains
サービスを正しく立ち上がるようにする必要があります。domU の管理で役立つコマンド:
# xl top # xl list # xl console domUname # xl shutdown domUname # xl destroy domUname
ハードウェア仮想化 (HVM) Arch domU の設定
HVM domU を使用するには mesa と bluez-libs パッケージをインストールしてください。
HVM Arch domU の必要最小限の設定ファイルは:
name = 'HVM_domU' builder = 'hvm' memory = 256 vcpus = 2 disk = [ 'phy:/dev/mapper/vg0-hvm_arch,xvda,w', 'file:/path/to/ISO,hdc:cdrom,r' ] vif = [ 'mac=00:16:3e:00:00:00,bridge=xenbr0' ] vnc = 1 vnclisten = '0.0.0.0' vncdisplay = 1
HVM マシンにはコンソールは存在しないため、接続するには vncviewer を使います。上記の設定ファイルは domU vncserver の未認証のリモートアクセスを許可するため、セキュアでないネットワークで使うのには適していません。vncserver はポート 590X
から使うことができます。X は dom0 の vncdisplay
の値に置き換えて下さい。domU は次のコマンドで作成できます:
# xl create /path/to/config/file
次のコマンドで状態を確認できます:
# xl list
domU を作成したら、vncserver で接続してインストールガイドに従って Arch Linux をインストールしてください。
準仮想化 (PV) Arch domU の設定
PV Arch domU の必要最小限の設定ファイルは:
name = "PV_domU" kernel = "/mnt/arch/boot/x86_64/vmlinuz" ramdisk = "/mnt/arch/boot/x86_64/archiso.img" extra = "archisobasedir=arch archisolabel=ARCH_201301" memory = 256 disk = [ "phy:/path/to/partition,sda1,w", "file:/path/to/ISO,sdb,r" ] vif = [ 'mac=00:16:3e:XX:XX:XX,bridge=xenbr0' ]
使用方法にあわせてファイルを修正する必要があります。一番重要なのは、archisolabel=ARCH_201301
行を編集して使用する ISO のリリース年/月を使うようにすることです。32ビットの Arch をインストールしたい場合、kernel と ramdisk のパスを x86_64
から i686
に変えてください。
domU を作成する前に、インストール ISO をループマウントさせる必要があります。それには、/mnt
ディレクトリが存在して空であることを確認してから、以下のコマンドを実行してください (適当な ISO パスを入力してください):
# mount -o loop /path/to/iso /mnt
ISO をマウントしたら、次のコマンドで domU を作成することができます:
# xl create -c /path/to/config/file
"-c" オプションは作成が完了したら domU のコンソールを起動します。インストールガイドの指示に従って Arch Linux をインストールできますが、多少修正が必要です。cfg ファイルの disks 行に記載されたブロックデバイスは /dev/xvd*
のように表示されます。domU をパーティショニングするときはそれらのデバイスを使って下さい。インストールが完了したら domU を再起動する前に mkinitcpio に xen-blkfront
, xen-fbfront
, xen-netfront
, xen-kbdfront
モジュールを追加する必要があります。モジュールが存在しないと、domU は正しく起動しません。起動するのに、Grub のインストールは必要ありません。Xen には Python ベースの grub エミュレータが付いているため、起動するのに必要なのは grub.cfg
ファイルだけです (/boot/grub
ディレクトリを作成する必要はあります):
/boot/grub/grub.cfg
menuentry 'Arch GNU/Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-__UUID__' { insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 __UUID__ else search --no-floppy --fs-uuid --set=root __UUID__ fi echo 'Loading Linux core repo kernel ...' linux /boot/vmlinuz-linux root=UUID=__UUID__ ro echo 'Loading initial ramdisk ...' initrd /boot/initramfs-linux.img }
ファイルを編集して root パーティションの UUID に合わせる必要があります。domU の中から、次のコマンドを実行:
# blkid
__UUID__
の例を全て root パーティション (/
にマウントされるパーティション) の実際の UUID に置き換えて下さい:
# sed -i 's/__UUID__/12345678-1234-1234-1234-123456789abcd/g' /boot/grub/grub.cfg
poweroff
コマンドで domU をシャットダウンしてください。ドメインが完全にシャットダウンされるとコンソールはハイパーバイザに戻ります。それで xl のドメインリストにドメインが表示されなくなります。次に ISO ファイルをアンマウントします:
# umount /mnt
domU の cfg ファイルを編集してください。kernel =
, ramdisk =
, extra =
行を削除して以下の行で置き換えます:
bootloader = "pygrub"
disk =
行から ISO ディスクも削除してください。
これで Arch domU がセットアップされました。先と同じコマンドで起動できます:
# xl create -c /etc/xen/archdomu.cfg
トラブルシューティング
"xl list" で libxl に関するエラーメッセージが表示される
Xen システムに起動できていないか、あるいは xencommons
スクリプトに記載されている xen モジュールがインストールされていません。
"xl create" が失敗する
ゲストのカーネルが正しいことを確認してください。pv-xxx.cfg
ファイルにスペルのミスがないか確認してください (例えば ramdisk
ではなく initrd
が使われている)。
HVM の作成に失敗する
HVM の作成が次のエラーで失敗する場合:
libxl: error: libxl_dm.c:3131:device_model_spawn_outcome: Domain 33:domain 33 device model: spawn failed (rc=-3) libxl: error: libxl_dm.c:3351:device_model_postconfig_done: Domain 33:Post DM startup configs failed, rc=-3 libxl: error: libxl_create.c:1837:domcreate_devmodel_started: Domain 33:device model did not start: -3 libxl: error: libxl_aoutils.c:646:libxl__kill_xs_path: Device Model already exited
numactl をインストールしていません。
Arch Linux ゲストが ctrl-d メッセージでフリーズする
プロンプトに戻るまで ctrl-d
を押して、initramfs を再生成してください。
エラーメッセージ "failed to execute '/usr/lib/udev/socket:/org/xen/xend/udev_event' 'socket:/org/xen/xend/udev_event': No such file or directory"
/etc/udev/rules.d/xend.rules
が原因です。Xend はすでに廃止され使われていないため、このファイルは削除しても問題ありません。