Skip to content

Commit 4526f28

Browse files
KwadFanguysoft
authored andcommitted
fix: fix handling of resolv.conf file
Includes changes if resolv.conf is a symbolic link Mostly affected are armbian based images Signed-off-by: Stephan Wendel <[email protected]>
1 parent 02bb0ec commit 4526f28

File tree

2 files changed

+38
-8
lines changed

2 files changed

+38
-8
lines changed

src/modules/base/end_chroot_script

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ if [ "${BASE_DISTRO}" == "ubuntu" ];then
3838
echo "127.0.0.1 ${BASE_OVERRIDE_HOSTNAME}" > /etc/hosts
3939
fi
4040

41+
# restore resolve.conf
42+
if [ -f /.resolvconf_link ]; then
43+
resolvconf_target="$(cat /.resolvconf_link)"
44+
ln -sf "${resolvconf_target}" /etc/resolv.conf 2>/dev/null
45+
rm -f /.resolvconf_link
46+
else
47+
if [ -f /etc/resolv.conf.orig ]; then
48+
mv /etc/resolv.conf.orig /etc/resolv.conf
49+
fi
50+
fi
51+
4152
#cleanup
4253
if [ "${BASE_APT_CLEAN}" = "yes" ]; then
4354
apt-get clean

src/modules/base/start_chroot_script

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,27 @@ if [ -n "${BASE_APT_MIRROR}" ]; then
1616
mv /tmp/filename.tmp /etc/apt/sources.list
1717
fi
1818

19-
if [ "${BASE_DISTRO}" == "ubuntu" ]; then
20-
unpack /filesystem/ubuntu / root
21-
22-
mv /etc/resolv.conf /etc/resolv.conf.orig || true
19+
function generate_resolvconf {
2320
if [ -z "${BASE_USE_ALT_DNS}" ]; then
24-
echo "nameserver 8.8.8.8" > /etc/resolv.conf
25-
echo "nameserver 8.8.4.4" >> /etc/resolv.conf
26-
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
21+
touch /etc/resolv.conf
22+
for dns in 8.8.8.8 8.8.4.4 1.1.1.1; do
23+
echo "nameserver ${dns}" >> /etc/resolv.conf
24+
done
2725
else
2826
touch /etc/resolv.conf
2927
for dns in ${BASE_USE_ALT_DNS}; do
3028
echo "nameserver ${dns}" >> /etc/resolv.conf
3129
done
3230
fi
31+
}
32+
33+
if [ "${BASE_DISTRO}" == "ubuntu" ]; then
34+
unpack /filesystem/ubuntu / root
35+
36+
mv /etc/resolv.conf /etc/resolv.conf.orig || true
37+
38+
generate_resolvconf
3339

34-
3540
apt-get update --allow-releaseinfo-change
3641
apt-get install -y net-tools wireless-tools dhcpcd5
3742
if [ $( is_in_apt policykit-1 ) -eq 1 ]; then
@@ -48,6 +53,20 @@ if [ "${BASE_DISTRO}" == "ubuntu" ]; then
4853

4954
fi
5055

56+
if [ "${BASE_DISTRO}" != "ubuntu" ]; then
57+
# Armbian > 24.5 workaround
58+
if [ -h /etc/resolv.conf ]; then
59+
link_target="$(ls -l /etc/resolv.conf | cut -f2 -d">" | sed 's/^[[:space:]]//')"
60+
echo "${link_target}" > /.resolvconf_link
61+
rm -f /etc/resolv.conf
62+
else
63+
mv /etc/resolv.conf /etc/resolv.conf.orig || true
64+
fi
65+
66+
generate_resolvconf
67+
68+
fi
69+
5170
#Helper Function for create_userconf
5271
function get_os_version {
5372
local os_version

0 commit comments

Comments
 (0)