KVMゲストの展開を自動化するためにPXEサーバーをセットアップしています。
KVMハイパーバイザーホスト:Fedora 29
KVMゲスト:Centos 7
インストール中に問題が発生します/ sbin/dmsquash-live-root:書き込みエラー:デバイスにスペースが残っていませんその後、いくつかの「タイムアウトスクリプト」が開始され、次のインストールの失敗が発生します。
環境の概要:
dhcpd.conf
subnet 172.31.0.0 netmask 255.255.255.0 {
range 172.31.0.51 172.31.0.120;
default-lease-time 1800;
max-lease-time 3600;
next-server 172.31.0.32;
filename "pxelinux/pxelinux.0";
option routers 172.31.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 172.31.0.255;
option domain-name-servers 172.31.0.2;
option domain-name "corp.example.com";
}
VMは実際にIPアドレスとTFTPサーバーのIPアドレスを取得します
[root@kickstart ~]# ll /var/lib/tftpboot/pxelinux/
total 57872
-rw-r--r--. 1 root root 52584760 Apr 29 17:07 initrd.img
-rw-r--r--. 1 root root 26759 Apr 29 17:02 pxelinux.0
drwxr-xr-x. 2 root root 21 May 1 13:48 pxelinux.cfg
-rwxr-xr-x. 1 root root 6639904 Apr 29 17:07 vmlinuz
キックスタートファイル
[root@kickstart ~]# cat /var/lib/tftpboot/pxelinux/pxelinux.cfg/default
default Linux
Prompt 1
timeout 10
display boot.msg
label Linux
menu label ^Install Centos MA MAN
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://kickstart.corp.example.com/anaconda/anaconda-ks.cfg
VMは実際にvmlinuzとinitrd.imgを取得します
ignoredisk --only-use=sda
keyboard 'us'
rootpw --iscrypted $1$tg.NYz9t$GnRVNLuQdB6mperFmUdwL.
lang en_US
halt
timezone America/New_York
text
network --bootproto=dhcp --device=eth0
network --hostname=test1.corp.example.com
url --url="http://kickstart.corp.example.com/install" # Apache server
auth --useshadow --passalgo=sha512
firewall --enabled --port=ssh
selinux --enforcing
skipx
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
clearpart --none --initlabel
ネットワーク上で利用できます。
<VirtualHost *:80>
DocumentRoot /www/docs/kickstart.corp.example.com
ServerName kickstart.corp.example.com
Options +Indexes
</VirtualHost>
「SATAlinkdown」メッセージ(上のスクリーンショットを参照)と/ dev/loop0のマウントの問題に気づきましたが、それを解釈する方法がわかりません。
さらに掘り下げる場所がわかりません。
この時点で、ゲストはカーネルを正常に起動し、initramfs環境で実行されています。インストーラーinitramfsは、<CentOS DVD root>/LiveOS/squashfs.img
にあるsquashfsファイルをロードしています。この場合、http://kickstart.corp.example.com/install/LiveOS/squashfs.img
からロードしている可能性があります。または、CentOSパッケージリポジトリサーバーからインターネット経由でロードしている可能性もあります。
(後者が当てはまる場合は、ブートオプションinst.stage2=http://kickstart.corp.example.com/install
を/var/lib/tftpboot/pxelinux/pxelinux.cfg/default
のappend
行に追加して、ローカルソースからのロードを強制できます。)
ルートファイルシステムはまだマウントされていないため、RAMディスクにロードされます。この時点では、インストーラーUIはまだ起動されておらず、ローカルディスクはまったく変更されていません。 、カーネルは/dev/vda
が存在することを検出しましたが。
手元にある古いCentOS7 ISOイメージでは、squashfs.img
ファイルのサイズは352MiBです。最新バージョンはそれより少し大きい可能性があります。 dracut-initqueue
によってログに記録されたメッセージにカプセル化されたcurl
(実際にダウンロードを実行しているツール)の出力は、squashfs.img
のサイズが432MiBであることを示しており、ダウンロードはで中止されます。十分なスペースがないため、約75%ポイントです(RAMディスク内にあると思います)。
squashfs.img
のダウンロードが不完全だったため、マウントに失敗し、RAMディスクは100%いっぱいになり、No space left on device
エラーメッセージが表示されます。
どのくらいのRAMゲストVMがそれに割り当てられていますか?VMが小さい場合は、不足している可能性がありますメモリの。
このエラーは、キックスタートファイルが「sda」というラベルの付いた仮想ドライブを指していることが原因であり、仮想ドライブは実際には「vda」と呼ばれていると思います。投稿した出力の約半分に「vda」が表示され、サイズは約21GBです。
ignoredisk --only-use=vda
bootloader --location=mbr --boot-drive=vda
clearpart --all --initlabel --drives=vda
Anaconda-ks.cfgファイルでこれらの変更を行うと、準備が整います。私のclearpartコマンドは--allであり、-noneに設定されていることに注意してください。