gpart inside jails

Julian Elischer julian at freebsd.org
Mon Jun 20 11:08:56 UTC 2016


On 20/06/2016 3:07 PM, Norbert Koch wrote:
>
>
> 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.

I'd seriously look at mkimg
there's nothing like having a specialty tool designed for the job

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