Hi, I found when I am using qemu, I can't boot from emulated cdrom. After some debug, I found the reason is that my iso file is in a samba file system. When qemu read data from my samba file system. read will be interrupted by signal alarm. So qemu won't boot from it.
The follwing patch will fix it. --- qemu-0.7.1/block.c 2005-07-25 02:52:08.000000000 +0800 +++ qemu-0.7.1-lepton/block.c 2005-07-27 18:57:21.000000000 +0800 @@ -591,10 +591,16 @@ static int raw_read(BlockDriverState *bs int ret; lseek(s->fd, sector_num * 512, SEEK_SET); - ret = read(s->fd, buf, nb_sectors * 512); - if (ret != nb_sectors * 512) - return -1; - return 0; + while(1){ + ret = read(s->fd, buf, nb_sectors * 512); + if (ret != nb_sectors * 512) { + if(ret==-1 && errno==EINTR) + continue; + else + return -1; + } + return 0; + } } static int raw_write(BlockDriverState *bs, int64_t sector_num, _______________________________________________ Qemu-devel mailing list Qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel