Whenever I attempt to start a KVM VM on Ubuntu 14.04 with the "kvm" command, I get the following error:

qemu: could not load PC BIOS 'bios-256k.bin'

I have searched for this file and found it exists in the /usr/share/qemu directory as a symlink to "../seabios/bios-256k.bin". When I attempt to view the contents of that directory with ls, the system says that there is no such file or directory. However, I can cd to that directory and view the BIOS file. When I type "ls .." from the qemu directory, the only item that is returned is "qemu". I'm logged in as root, so I should be able to see all of the folders in /usr/share. Does anyone know what is going on here?

  • Maybe try reinstalling? launchpad.net/ubuntu/+source/seabios – mikeserv Jun 6 '14 at 17:06
  • I apt-get purge'd and re-installed all the packages and I still get the same error. I think it might be a permissions error? I don't know how that's possible though as I'm root. – Eric Jun 6 '14 at 17:26
  • 2
    I think I might have fixed it! However, the solution is really weird. What I did was delete the old symbolic link and create a new one with an absolute instead of a relative path. I had to do this for a few other files as well. – Eric Jun 6 '14 at 17:38
  • Well, that's good - and bad. Play around with ls -l in that area. If your colors are setup like mine bad links will standout in red. – mikeserv Jun 6 '14 at 17:46
  • I would use virsh and stop/start your KVM instances with that. – slm Jun 6 '14 at 18:07

Including -L /path/to/bios in the arguments(as stated below. However you won't need the first step) will make Qemu look in the specified directory for the bios.

So it'd be: qemu-system-x86_64 -L /usr/share/qemu/ along with the rest of the arguments. This means you won't have to change the symbolic link.

Source

yum install seabios

worked for me

  • On CentOS, it's "yum install seabios-bin" for the same issue. For some reason qemu packages make symlinks to files installed by seabios-bin RPM, but don't declare a dependency – Akom Dec 19 '17 at 20:01

For Centos 7 the file itself was missing (with broken symlinks) from seabios. I found that xen-runtime provided bios-256k.bin with yum whatprovides '*/bios-256k.bin' however the package had conflicting files with (unimportant) qemu files. These are the following steps I needed to make qemu work:

yum install --downloadonly xen-runtime --downloaddir=.
rpm -i --replacefiles xen-hypervisor* xen-runtime*
qemu-system-x86_64 -L /usr/share/qemu-xen/qemu <your args>
sudo ln -sf /usr/share/qemu/bios.bin /usr/share/qemu/bios-256k.bin

and use

-L /usr/share/qemu/

in qemu command line if needed.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.