gpart inside jails

Julian Elischer julian at freebsd.org
Mon Jun 20 06:44:28 UTC 2016


On 17/06/2016 2:21 PM, Norbert Koch wrote:
>
>
> Am 2016-06-16 um 17:39 schrieb Allan Jude:
>> On 2016-06-16 11:23, Norbert Koch wrote:
>>> Hello,
>>>
>>> for creating freebsd boot flash media for embedded devices
>>> I use mdconfig/gpart.
>>>
>>> Recently I put my 32-bit build machines into a jail under a 64-bit 
>>> machine.
>>> This is my configuration:
>>>
>>> Host: FreeBSD-10.3/amd64
>>> Jail1: FreeBSD-9.1/i386
>>> Jail2: FreeBSD-10.3/i386
>>> Jail3: FreeBSD-10.3/amd64
>>>
>>> If I jexec gpart status I get this:
>>>   Jail1: segmentation fault
>>>   Jail2: segmentation fault
>>>   Jail3: correct result as seen under host system
>>>
>>> So, this is obviously a 32/64 bit issue. Any idea?
>>>
>>> Thank you,
>>> Norbert Koch
>>>
>>> _______________________________________________
>>> freebsd-hackers at freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>>> To unsubscribe, send any mail to 
>>> "freebsd-hackers-unsubscribe at freebsd.org"
>> You might want to look at:
>>
>> makefs(8): create a ufs filesystem in a file, from a directory tree or
>> mtree file. This allows you to avoid mdconfig, and can be done as a
>> non-root user.
>>
>> mkimg(8): create a disk or VM (vmdk, vdi, qcow2, raw, etc) image from
>> one or more file systems. Allows you to create the partitions and load
>> the boot code etc. This allows you to avoid gpart, and can be done 
>> as a
>> non-root user.
>>
>
> Thank you. I'll try these.
>
>
>> Re: why it crashes: I am guessing the kernel interface between 
>> gpart and
>> geom_part.ko is not 32/64 safe or something. Someone else with a 
>> better
>> informed opinion may be able to help you resolve the issue. Maybe the
>> above workarounds will help.
>>
>
for a 64bit kernel moduel to work with a 32 bit user space system, all 
paths from userspace to module have to translate values back and forth 
as needed. I can quite believe that making such shims for geom has not 
been a high priorlty.

On the other hand, you can cheat, by adding 64 bit versions of the 
gpart and related programs into your 32 bit jail.
they should run just fine and you can use libmap.conf if there are any 
library collisions that you need to handle.
Evrything else should run fie to generate the images..
I'm not sure though how you would MOUNT the images inside the jail 
once you have partitioned them.

All in all the mkimg utility is a good answer, as I think you are 
going to hit several problems one after the other with trying to mount 
system devices from within a jail.






More information about the freebsd-hackers mailing list