Friday, February 6, 2015

Ubuntu: schroot cannot bind the home directory

Hey everyone,

Several weeks ago I had to compile gdb and strace to a target device that runs on ARM (EBI). 
This time, instead of cross compile it, I decided to use my favorite way - schroot environment.

I had the pleasure of using schroot on my old system - an Ubuntu 12.04 desktop, and this was the first time I needed to use it on my current Ubuntu 14.04 system.

The problem started after creating the schroot environment and trying to use it.

As you will see in the following lines, I tried getting into the environment and got an error:

root@ubuntu:/home/talkain# schroot -c ubuntu-armel -u talkain
W: line 11 [ubuntu-i386] union-type: Configuration key name ‘union-type’ is not a permitted name.
W: line 11 [ubuntu-armel] union-type: Configuration key name ‘union-type’ is not a permitted name.
W: Failed to change to directory ‘/home/talkain’: No such file or directoryI: The directory does not exist inside the chroot. Use the --directory option to run the command in a different directory.W: Falling back to directory ‘/’

This was weird, since the directory exist, I had permissions to this directory (this is my home directory) and this was a fresh installation of this environment.

After digging a little bit, I found an excellent start point here:

So I looked at the schroot's config file:

[ubuntu-armel] description=ubuntu-armel groups=sbuild,root root-groups=sbuild,root # Uncomment these lines to allow members of these groups to access # the -source chroots directly (useful for automated updates, etc). #source-root-users=sbuild,root #source-root-groups=sbuild,root type=file profile=sbuild union-type=overlayfs file=/var/lib/schroot/tarballs/ubuntu-armel.tgz
So in order to solve this error, I changed the schroot configuration file's parameter called "profile" from sbuild to default as follows:
and now I can get into the schroot environment with no issues.

Hope this helps,
- Tal Kain