[arch-releng] [archiso] keep name resolver settings

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Thu Apr 19 20:50:59 EDT 2012


On 04/19/2012 06:16 PM, Christian Hesse wrote:
> Christian Hesse<list at eworm.de>  on Thu, 2012/04/19 23:08:
>> Ionut Biru<ibiru at 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



More information about the arch-releng mailing list