On 04/19/2012 06:16 PM, Christian Hesse wrote:
Christian Hesse<[email protected]> on Thu, 2012/04/19 23:08:
Ionut Biru<[email protected]> 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