补鞋匠import失败

最近我一直在玩Cobbler(在CentOS 7发行版中),而且在导入CentOS 7 iso时遇到了错误。 我已经find了解决问题的办法,我认为分享我所学到的知识会很酷。

这是有问题的问题:

$ 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创build的initrd.img文件对于只有4GB的/var分区来说太大了。

回答我自己的问题

我的文件系统是XFS,位于LVM分区之上。 最好的解决scheme是调整/ var分区的大小,以便它有足够的空间来支持rsync操作。 问题是当我在这台机器上安装了CentOS 7时,我已经分配了所有可用的磁盘空间,所以没有可用空间来放大/ var。

所以我决定把/ var / www / cobbler移到根分区,把它移到/ usr

 $ sudo mkdir -p /usr/var/www $ sudo mv /var/www/cobbler /usr/var/www/ 

然后,我创build了一个符号链接:

 $ cd /var/www $ sudo ln -sd /usr/var/www/cobbler 

现在,在执行cobbler import ,rsync写入根分区,它有足够的空间来支持它,一切工作正常。

不完整的iso映像下载也是这样的错误的问题。 请确保在iso映像上执行校验和检查