Message info
 
To:Arch Linux Release Engineering From:Gerardo Exequiel Pozzi Subject:Re: [arch-releng] [archiso] keep name resolver settings Date:Thu, 19 Apr 2012 21:50:59 -0300
 

On 04/19/2012 06:16 PM, Christian Hesse wrote:
> Christian Hesse<list@eworm.de> on Thu, 2012/04/19 23:08:
>> Ionut Biru<ibiru@archlinux.org> on Thu, 2012/04/19 23:56:
>>> On 04/19/2012 10:50 PM, Christian Hesse wrote:
>>>> Hello everybody,
>>>>
>>>> I am not shure if this is the correct place to report or if there is any
>>>> better one... If so - please let me know.
>>>>
>>>> Ok, the initrd hooks from archiso support PXE booting. In this case the
>>>> initrd is responsible for setting up the network. All these setting are
>>>> persistent, so are still valid after changing to the real system. With
>>>> one exception: name resolver settings (namely file /etc/resolv.conf)
>>>> are lost, which ends up in a system with network connectivity that can
>>>> not resolve a single host.
>>>>
>>>> Even worse: When launching a dhcp client you may get a new address and
>>>> end up with something completely useless as nbd connection is lost.
>>>>
>>>> I would like to write the final /etc/resolv.conf from within initrd. For
>>>> me this completely solves the problem. Patch is attached.
>>> Please send the patch inline since our mailing list filters regular
>>> attachments.
>>>
>> Sorry, did not know that.
>>
>> Here we go:
>> [snip]
> Stupid me... I messed it up. Here is a working one:
>
> --- archiso/archiso/hooks/archiso 2012-04-19 18:39:24.381454201 +0200
> +++ archiso/archiso/hooks/archiso 2012-04-19 18:40:58.095839569 +0200
> @@ -193,6 +193,13 @@ archiso_mount_handler() {
> if [[ "${copytoram}" == "y" ]]; then
> umount /run/archiso/bootmnt
> fi
> +
> + if [[ -s "/etc/resolv.conf" ]]; then
> + echo "# These settings have been generated within inird and moved" \
> +> ${newroot}/etc/resolv.conf
> + echo "# to main system by hook archiso.">> ${newroot}/etc/resolv.conf
> + cat /etc/resolv.conf>> ${newroot}/etc/resolv.conf
> + fi
> }
>
> # vim:ft=sh:ts=4:sw=4:et:
>
Thanks. Yes I know about this.

archiso hook is not the most right place for this (it does not know
about "network" things), but at least is the most simple way for now, to
implement/workaround this.
I am currently waiting support on mkinitcpio for running hooks just
before the end of init script, in this way I can attach a function from
archiso_pxe_common hook, that will be executed.

PS: initrd is not initramfs (what is used on Arch)

--
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1