Debian live-build won't generate binary-hybrid.iso after first run

3

0

My computer:

  • Debian Squeeze amd64
  • live-build package is version 2.0.12-2 (newest in Squeeze)

I'm trying to build a Debian Live CD with some custom files and whatnot. Here's what I did:

$ mkdir debianlive
$ cd debianlive
$ lb config
[output omitted]
# lb build
[output omitted]
$ ls -AF
auto/    cache/   config/  binary-hybrid.iso  binary.packages
binary/  chroot/  .stage/  binary.list

But then, say, I add something to config/chroot_local-includes/, and I want to rebuild the iso. So I run # lb build again, and this time, it skips updating binary-hybrid.iso. Specifically, it outputs

 [...]
 P: Begin building binary iso image...
 W: skipping binary_iso
 [...]

So is there any quick and easy way to get live-build to rebuild the iso? Am I missing something obvious?

Things I've tried:

  • Delete binary-hybrid.iso and hope live-build recreates it. Does not work.
  • Delete the .stage directory. This works, but it's not optimal since # lb build's config stage then has to re-extract and re-install EVERY SINGLE PACKAGE.
  • Use live-build version 3.0~a45-1 from Sid. Works about the same as 2.0.12-2. Does not fix my problem.
  • Run $ sudo lb binary iso, because the manpage claims that's the specific step performed to build the iso. Does not work.

Dr Kitty

Posted 2012-02-26T09:43:19.860

Reputation: 504

I recommend you try the version in Debian Unstable (in a chroot/VM of course) and see if you can reproduce this behavior. If so, file this as a bug. Another alternative is to ask on the development mailing list. – tshepang – 2012-02-27T10:13:44.437

@Tshepang Will do. I was just hoping it was a simple fix (which apparently it's not). – Dr Kitty – 2012-02-29T03:37:12.207

@Tshepang I was successful in setting up a chroot, installing live-build version 3.0~a45-1, and getting it to build an iso the first time, and the iso booted fine in a VM. Same problem, though—live-build doesn't under any circumstances modify or recreate the iso after that unless I delete the .stage directory or start over completely. – Dr Kitty – 2012-03-05T01:53:31.893

I'm going to post the output of every single step. Maybe that'll help. – Dr Kitty – 2012-03-05T03:40:34.513

On second thought, no I'm not. I'll figure out some other way to make a livecd. – Dr Kitty – 2012-04-15T04:39:56.403

Answers

2

Make sure that you set BINARY_IMAGES=iso-hybrid. By default (in Ubuntu at least) lb does not produce an ISO, only a squashfs and the bootloader.

user155109

Posted 2012-02-26T09:43:19.860

Reputation: 21

1

I had the same issue. Then I remembered I should have used the lb clean with the --binary option. I renamed auto directory to _auto to avoid the scripts inside it for a moment. Otherwise it runs the default lb clean which deletes the whole chroot directory.

Then I ran the following commands as root:

chroot ./chroot
apt-get install packages_that_i_want_to_add
exit
lb clean --binary (this removes the previous iso or img image but keeps chroot dir)
lb build ( first rename your _auto directory to auto, if you have any.)

Also, if you cannot access internet during chroot apt-get, replace your /etc/resolv.conf with the one in your main Linux.

Osman Sahin

Posted 2012-02-26T09:43:19.860

Reputation: 11