最近(CentOS 7ディストリビューションで)Cobblerで遊んでいますが、CentOS 7ISOのインポート中にエラーが発生しました。問題の回避策を見つけることができたので、学んだことを共有するのはクールだと思いました。
問題の問題は次のとおりです。
_$ Sudo mount -t iso9660 -o loop,ro CentOS-7-x86_64-DVD-1503-01.iso /mnt
$ Sudo cobbler import --name=centos7 --Arch=x86_64 --path=/mnt
task started: 2015-05-29_144409_import
task started (id=Media import, time=Fri May 29 14:44:09 2015)
Exception occured: <class 'cobbler.cexceptions.CX'>
Exception value: 'Command failed'
Exception Info:
File "/usr/lib/python2.7/site-packages/cobbler/remote.py", line 87, in run
rc = self._run(self)
File "/usr/lib/python2.7/site-packages/cobbler/remote.py", line 231, in runner
self.logger
File "/usr/lib/python2.7/site-packages/cobbler/api.py", line 892, in import_tree
utils.run_this(rsync_cmd, (spacer, mirror_url, path), self.logger)
File "/usr/lib/python2.7/site-packages/cobbler/utils.py", line 917, in run_this
die(logger,"Command failed")
File "/usr/lib/python2.7/site-packages/cobbler/utils.py", line 134, in die
raise CX(msg)
!!! TASK FAILED !!!
_
これが対応する/var/log/cobbler/cobbler.logの抜粋です
_Fri May 29 14:44:09 2015 - DEBUG | REMOTE expiring token; user(<DIRECT>)
Fri May 29 14:44:09 2015 - DEBUG | REMOTE expiring token; user(<DIRECT>)
Fri May 29 14:44:09 2015 - DEBUG | REMOTE expiring token; user(<DIRECT>)
Fri May 29 14:44:09 2015 - DEBUG | REMOTE CLI Authorized; user(?)
Fri May 29 14:44:09 2015 - INFO | REMOTE start_task(Media import); event_id(2015-05-29_144409_import); user(?)
Fri May 29 14:44:10 2015 - INFO | import_tree; ['/mnt', 'centos7', None, None, None]
Fri May 29 14:44:10 2015 - INFO | importing from a network location, running rsync to fetch the files first
Fri May 29 14:44:10 2015 - INFO | running: rsync -a '/mnt/' /var/www/cobbler/ks_mirror/centos7-x86_64 --progress
Fri May 29 14:44:10 2015 - INFO | received on stdout: sending incremental file list
images/pxeboot/
images/pxeboot/initrd.img
32768 0% 0.00kB/s 0:00:00
Fri May 29 14:44:10 2015 - DEBUG | received on stderr:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: write failed on "/var/www/cobbler/ks_mirror/centos7-x86_64/images/pxeboot/initrd.img": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (40 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
Fri May 29 14:44:10 2015 - INFO | Exception occured: <class 'cobbler.cexceptions.CX'>
Fri May 29 14:44:10 2015 - INFO | Exception value: 'Command failed'
Fri May 29 14:44:10 2015 - INFO | Exception Info:
File "/usr/lib/python2.7/site-packages/cobbler/utils.py", line 126, in die
raise CX(msg)
_
行rsync: write failed on "/var/www/cobbler/ks_mirror/centos7-x86_64/images/pxeboot/initrd.img": No space left on device (28)
は、/ varにこれ以上スペースがないことを示しています。 Cobblerによって作成された_initrd.img
_ファイルは、わずか4GBの_/var
_パーティションには大きすぎると思います。
私自身の質問に答える
私のファイルシステムは、LVMパーティションの上にあるXFSです。最善の解決策は、/ varパーティションのサイズを変更して、rsync操作をサポートするのに十分なスペースを確保することでした。このマシンにCentOS7をインストールしたときに、使用可能なすべてのディスクスペースを割り当てたため、/ varを拡大するための空きスペースがありませんでした。
そこで、ルートパーティションの/ var/www/cobblerを/ usrに移動することにしました。
$ Sudo mkdir -p /usr/var/www
$ Sudo mv /var/www/cobbler /usr/var/www/
次に、シンボリックリンクを作成しました。
$ cd /var/www
$ Sudo ln -sd /usr/var/www/cobbler
これで、cobbler import
を実行すると、rsyncはそれをサポートするのに十分なスペースがあるルートパーティションに書き込み、すべてが正常に機能します。
不完全なISOイメージのダウンロードも、このようなエラーの問題です。 ISOイメージでチェックサムチェックを必ず行ってください