web-dev-qa-db-ja.com

VM PXE "書き込みエラー:デバイスにスペースが残っていません"で起動できず、ドラカット環境になります

KVMゲストの展開を自動化するためにPXEサーバーをセットアップしています。

KVMハイパーバイザーホスト:Fedora 29

KVMゲスト:Centos 7

インストール中に問題が発生します/ sbin/dmsquash-live-root:書き込みエラー:デバイスにスペースが残っていませんその後、いくつかの「タイムアウトスクリプト」が開始され、次のインストールの失敗が発生します。

環境の概要:

  1. DHCPサーバーは大丈夫です

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アドレスを取得します

  1. TFTPサーバーも大丈夫です
[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を取得します

  1. anaconda-ks.cfgはかなり標準的だと思います
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
  1. インストールソースはApacheサーバーです

ネットワーク上で利用できます。

<VirtualHost *:80>
DocumentRoot /www/docs/kickstart.corp.example.com
ServerName kickstart.corp.example.com
Options +Indexes
</VirtualHost>

point where installation freezes

「SATAlinkdown」メッセージ(上のスクリーンショットを参照)と/ dev/loop0のマウントの問題に気づきましたが、それを解釈する方法がわかりません。

さらに掘り下げる場所がわかりません。

1
Dmitry

この時点で、ゲストはカーネルを正常に起動し、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/defaultappend行に追加して、ローカルソースからのロードを強制できます。)

ルートファイルシステムはまだマウントされていないため、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が小さい場合は、不足している可能性がありますメモリの。

2
telcoM

このエラーは、キックスタートファイルが「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に設定されていることに注意してください。

0
Gordster