Whenever I attempt to start a KVM virtual machine 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
yum install seabios

worked for me

  • 3
    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

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.



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>

It seems that on Centos 7 when installing XEN (want to keep it), then seabios-bin provided by xen repo do not have seabios-256k.bin - it has seabios.bin. Linking seabions.bin and seabios-256k.bin work fine for me.

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 agree to our terms of service, privacy policy and cookie policy

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