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
    Commented Jun 6, 2014 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
    Commented Jun 6, 2014 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
    Commented Jun 6, 2014 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
    Commented Jun 6, 2014 at 17:46
  • I would use virsh and stop/start your KVM instances with that.
    – slm
    Commented Jun 6, 2014 at 18:07

5 Answers 5

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
    Commented Dec 19, 2017 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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .