A couple of days ago I downloaded openSUSE 12.3 and used it to upgrade my openSUSE 12.2 installation. All went well except for the failure of GRUB to install. The message was:
RPM failed: error: unpacking of archive failed on file /boot/boot:cpio:rename failed.
I was relieved to find that the only immediate consequence was for the login screen to remain as it was for 12.2. Both Linux and Windows were unaffected; see below for system details.
My immediate reaction was that there was probably an error in burning the disk. So to be sure I downloaded a second copy of openSUSE-12.3-DVD-i586.iso from the 12.3 Portal. As before I did an MD5 checksum and burned another disk. Same error; the upgrade recognised that all other rpms had installed and attempted to install GRUB, which failed again.
The rpm in question is for grub-0.97-188.1.1.i586. I looked for a standalone copy of the rpm but Google search only brought up grub-0.97-188.1.1.x86_64.rpm, which I take to be for a 64-bit machine. Mine is 32-bit (Dell Inspiron 530).
Other relevant system information: my machine is dual-bootable (Windows Vista SP2 and openSUSE) and has worked well except for an inability to connect to the internet by wifi through Linux - but that is another story.
Can anyone help? What am I missing? As far as I can make out, no-one else has had this problem. I have to assume it is either me or my machine which is at fault, otherwise there would have been a storm of protest from disappointed users trying to upgrade.
This usually means that one file is directory and another one - symlink. RPM cannot handle this case. What shows “ls -ld /boot/boot”?
The output of the command is ‘lrwxrwxrwx 1 root root 1 Apr 7 20:47 /boot/boot → .’ which doesn’t seem very helpful. The contents of the /boot directory appear to be 12.2-related. There were also a number of /boot;xxxxx… directories, where ‘xxxxx…’ is a string of alphanumerics and containing files that are 12.3 related, presumably generated by my attempts to install the grub rpm.
I eventually found the package I was looking for at grub-0.97-188.1.1.i586.rpm openSUSE 12.3 Download. This downloaded and installed without any problem. However when I went back to the installation DVD it did not recognise that the package had been installed and again refused to install the rpm that it contained. And once again the boot loader could not be updated, leaving me with the original 12.2 login screen - which is better than having nothing at all.
Apologies for the delay in responding; a combination of being away for a day or two and trying to find a solution.
Where to now? I am a little nervous of fiddling around with the boot loader and really screwing up what at least is a working system.
On 2013-04-08 16:26, forsate wrote:
> arvidjaar;2544556 Wrote:
>> This usually means that one file is directory and another one - symlink.
>> RPM cannot handle this case. What shows “ls -ld /boot/boot”?
> The output of the command is ‘lrwxrwxrwx 1 root root 1 Apr 7 20:47
> /boot/boot -> .’ which doesn’t seem very helpful.
Hold on. We want to see the result of this:
ls -ld boot
And put all of it inside code tags. Advanced editor, ‘#’ button.
Code Tags - A Guide
If you do not use code tags, it is not readable.
The correct links for downloading grub are - warning: choose the correct
one for your architecture:
Do not use an rpm package downloaded from elsewhere.
Cheers / Saludos,
Carlos E. R.
(from 12.1 x86_64 “Asparagus” at Telcontar)
Before I get to Carlos’ request for more information, I tried another route. I did a clean install of 12.3 in a new disk partition. This went without a hitch, including the GRUB install. The 12.2 install was picked up by the boot loader in 12.3 and works fine, as does 12.3. My immediate reaction is that there is an error in the 12.2 install which causes it to reject the GRUB rpm when I take the (original) update route. I would like to get to the bottom of that if I can; I’ll now go and have a look at the output as Carlos requested and get back.
Here’s the response as advised by Carlos to arvidjaar’s original request for information:
linux-oh0k:~ # cd /boot
linux-oh0k:/boot # ls -l
-rw-r--r-- 1 root root 1969517 Aug 4 2012 System.map-3.4.6-2.10-desktop
-rw-r--r-- 1 root root 1790865 Aug 4 2012 System.map-3.4.6-2.10-xen
-rw------- 1 root root 512 Dec 21 09:39 backup_mbr
lrwxrwxrwx 1 root root 1 Apr 7 20:47 boot -> .
-rw-r--r-- 1 root root 1236 Jul 15 2012 boot.readme
-rw-r--r-- 1 root root 133148 Aug 4 2012 config-3.4.6-2.10-desktop
-rw-r--r-- 1 root root 128778 Aug 4 2012 config-3.4.6-2.10-xen
-rw-r--r-- 1 root root 0 Dec 21 09:21 do_purge_kernels
drwxr-xr-x 2 root root 4096 Apr 7 20:47 grub
drwxr-xr-x 6 root root 4096 Dec 21 09:40 grub2
lrwxrwxrwx 1 root root 25 Dec 21 09:39 initrd -> initrd-3.4.6-2.10-desktop
-rw-r--r-- 1 root root 16582434 Dec 21 09:39 initrd-3.4.6-2.10-desktop
-rw-r--r-- 1 root root 16994193 Dec 21 09:39 initrd-3.4.6-2.10-xen
lrwxrwxrwx 1 root root 21 Dec 21 09:21 initrd-xen -> initrd-3.4.6-2.10-xen
-rw-r--r-- 1 root root 581632 Aug 24 2012 message
-rw-r--r-- 1 root root 636700 Aug 4 2012 symtypes-3.4.6-2.10-default.gz
-rw-r--r-- 1 root root 631388 Aug 4 2012 symtypes-3.4.6-2.10-desktop.gz
-rw-r--r-- 1 root root 630390 Aug 4 2012 symtypes-3.4.6-2.10-pae.gz
-rw-r--r-- 1 root root 615690 Aug 4 2012 symtypes-3.4.6-2.10-xen.gz
-rw-r--r-- 1 root root 220093 Aug 4 2012 symvers-3.4.6-2.10-desktop.gz
-rw-r--r-- 1 root root 217898 Aug 4 2012 symvers-3.4.6-2.10-xen.gz
-rw-r--r-- 1 root root 504 Aug 4 2012 sysctl.conf-3.4.6-2.10-desktop
-rw-r--r-- 1 root root 393 Aug 4 2012 sysctl.conf-3.4.6-2.10-xen
-rw-r--r-- 1 root root 6220637 Aug 4 2012 vmlinux-3.4.6-2.10-desktop.gz
-rw-r--r-- 1 root root 4785543 Aug 4 2012 vmlinux-3.4.6-2.10-xen.gz
lrwxrwxrwx 1 root root 26 Dec 21 09:21 vmlinuz -> vmlinuz-3.4.6-2.10-desktop
-rw-r--r-- 1 root root 4877600 Aug 4 2012 vmlinuz-3.4.6-2.10-desktop
-rw-r--r-- 1 root root 4069627 Aug 4 2012 vmlinuz-3.4.6-2.10-xen
lrwxrwxrwx 1 root root 22 Dec 21 09:21 vmlinuz-xen -> vmlinuz-3.4.6-2.10-xen
linux-oh0k:/boot # ls -ld boot
lrwxrwxrwx 1 root root 1 Apr 7 20:47 boot -> .
And yes, I did download the link that Carlos suggested; I used the first one as I have a 32-bit machine.
Is it full message? It should have last part - actual error message (reason for failure). That may explain the problem. E.g.
error: unpacking of archive failed on file /tmp/foo-1-1: cpio: rename failed - Is a directory
I did download the link that Carlos suggested; I used the first one as I have a 32-bit machine
Did it work? I tried to simulate this situation, but I cannot - if there is symbolic link and I try to install RPM that contains this link it installs successfully. It does fail if I have directory instead of link.