gpart inside jails

Norbert Koch nkoch at demig.de
Mon Jun 20 07:08:34 UTC 2016



Am 2016-06-20 um 08:44 schrieb Julian Elischer:
> 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.
>

You are right. Mounting became my next problem after solving the gpart 
issue.
After having delegated the mount to the host by sending a command via ssh
(not really elegant or secure, I know) I had to learn that the path to a 
mount point is
rather limited (88 characters or so). Changing this would lead to a lot 
of compatibility
problems (statfs).
Not talking about the job to manage all those very special modifications.
I finally decided to delegate image creation and configuration to a 
"true" virtual machine
and only use the jail for software build.


> 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.
>
>
>
>

-- 
Dipl.-Ing. Norbert Koch
Entwicklung Prozessregler
*****************************************
*    demig Prozessautomatisierung GmbH  *
*                                       *
* Anschrift:          Haardtstrasse 40  *
*                       D-57076 Siegen  *
* Registergericht:     Siegen HRB 2819  *
* Geschaeftsfuehrer:   Joachim Herbst,  *
*                        Winfried Held  *
* Telefon:              +49 271 772020  *
* Telefax:              +49 271 74704   *
* E-Mail:                info at demig.de  *
*                  http://www.demig.de  *
*****************************************




More information about the freebsd-hackers mailing list