Brand new install fails

Having been unable to solve the previous issue I posted about here I decided to just do a new install. Unfortunately I am having no luck there either. The install seems to run, see output below, but I cannot access the webadmin and it seems like the install didn't succeed. I seem to be having Namespace permissions errors, but I haven't found any info on this that would seem to apply to a clean container.

sudo systemctl status --full --no-pager pihole-FTL
× pihole-FTL.service - Pi-hole FTL
     Loaded: loaded (/etc/systemd/system/pihole-FTL.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Fri 2025-04-11 01:38:26 UTC; 7min ago
    Process: 321 ExecStartPre=/opt/pihole/pihole-FTL-prestart.sh (code=exited, status=226/NAMESPACE)
    Process: 322 ExecStopPost=/opt/pihole/pihole-FTL-poststop.sh (code=exited, status=226/NAMESPACE)
        CPU: 4ms

Expected Behaviour:

Working pihole, accessible webadmin

  • Debian 12.10 Container under Proxmox
cores: 2
hostname: pihole
memory: 2048
net0: name=eth0,bridge=vmbr0,firewall=1,gw=10.0.0.254,hwaddr=BC:24:11:70:14:10,ip=10.0.0.30/24,type=veth
ostype: debian
rootfs: local-lvm:vm-1030-disk-0,size=64G
swap: 2048

Actual Behaviour:

  [✗] Check for existing repository in /etc/.pihole
  [i] Clone https://github.com/pi-hole/pi-hole.git into /etc/.pihole...HEAD is now at 0f7803b Pi-hole Core v6.0.6 (#6118)
  [✓] Clone https://github.com/pi-hole/pi-hole.git into /etc/.pihole

  [✗] Check for existing repository in /var/www/html/admin
  [i] Clone https://github.com/pi-hole/web.git into /var/www/html/admin...HEAD is now at 1eaddca Pi-hole Web v6.1 (#3354)
  [✓] Clone https://github.com/pi-hole/web.git into /var/www/html/admin

  [✗] Checking for group 'pihole'
  [✓] Creating group 'pihole'
  [✓] Creating user 'pihole'

  [i] FTL Checks...

  [✓] Detected x86_64 architecture
  [i] Downloading and Installing FTL...transferred... Failed to stop pihole-FTL.service: Unit pihole-FTL.service not loaded.
  [✓] Downloading and Installing FTL
  [✓] Installing scripts from /etc/.pihole

  [i] Installing configs from /etc/.pihole...

  [✓] Installing latest Cron script

  [✓] Installing latest logrotate script
  [✓] man pages installed and database updated
  [i] Testing if systemd-resolved is enabled
  [i] Systemd-resolved is not enabled
  [i] Restarting services...
  [✓] Enabling pihole-FTL service to start on reboot...
  [i] Restarting pihole-FTL service...

Debug Token:

root@pihole:/usr/local/bin# pihole -d
bash: pihole: command not found

That would indicate that the main pihole script wasn't installed.

Please share the output of:

cat /etc/pihole/install.log
  [✓] Installing scripts from /etc/.pihole

  [i] Installing configs from /etc/.pihole...

  [✓] Installing latest Cron script

  [✓] Installing latest logrotate script
  [✓] man pages installed and database updated

That doesn't give us any hints.

In a fresh container, running the following command would provide a more detailed output:

curl -sSL https://install.pi-hole.net | bash -x

When I do that it fails at the Static IP message, although I have one set at the Proxmox level.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 10.0.0.30/24
        gateway 10.0.0.254
++ mktemp /tmp/pihole_temp.XXXXXX
+ TEMPLOG=/tmp/pihole_temp.lEO1PW
+ exec
+ rm /tmp/pihole_temp.lEO1PW
+ checkSelinux
+ local DEFAULT_SELINUX
+ local CURRENT_SELINUX
+ local SELINUX_ENFORCING=0
+ [[ -f /etc/selinux/config ]]
+ echo -e '  [i] SELinux not detected\e[0m'
  [i] SELinux not detected
+ [[ 0 -eq 1 ]]
+ [[ 0 -eq 1 ]]
+ check_service_command
+ is_command service
+ local check_command=service
+ command -v service
+ package_manager_detect
+ is_command apt-get
+ local check_command=apt-get
+ command -v apt-get
+ PKG_MANAGER=apt-get
+ UPDATE_PKG_CACHE='apt-get update'
+ PKG_INSTALL='apt-get -qq --no-install-recommends install'
+ PKG_COUNT='apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst || true'
+ PKG_REMOVE='apt-get -y remove --purge'
+ update_package_cache
+ local 'str=Update local cache of available packages'
+ printf '  %b %s...' '[i]' 'Update local cache of available packages'
  [i] Update local cache of available packages...+ eval 'apt-get update'
+ printf '%b  %b %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' 'Update local cache of available packages'
  [✓] Update local cache of available packages
+ notify_package_updates_available
+ local 'str=Checking apt-get for upgraded packages'
+ printf '\n  %b %s...' '[i]' 'Checking apt-get for upgraded packages'

  [i] Checking apt-get for upgraded packages...++ eval 'apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst || true'
+++ apt-get -s -o Debug::NoLocking=true upgrade
+++ grep -c '^Inst'
+++ true
+ updatesToInstall=0
+ [[ 0 -eq 0 ]]
+ printf '%b  %b %s... up to date!\n\n' '\r\033[K' '[\e[1;32m✓\e[0m]' 'Checking apt-get for upgraded packages'
  [✓] Checking apt-get for upgraded packages... up to date!

+ build_dependency_package
+ rm -rf '/tmp/pihole-meta_*'
+ local tempdir
++ mktemp --directory /tmp/pihole-meta_XXXXX
+ tempdir=/tmp/pihole-meta_jL5gg
+ chmod 0755 /tmp/pihole-meta_jL5gg
+ is_command apt-get
+ local check_command=apt-get
+ command -v apt-get
+ pushd /tmp
+ rm -f /tmp/pihole-meta.deb
+ mkdir -p /tmp/pihole-meta_jL5gg/DEBIAN
+ chmod 0755 /tmp/pihole-meta_jL5gg/DEBIAN
+ touch /tmp/pihole-meta_jL5gg/DEBIAN/control
+ echo 'Package: pihole-meta
Version: 0.1
Maintainer: Pi-hole team <adblock@pi-hole.net>
Architecture: all
Description: Pi-hole dependency meta package
Depends: grep,dnsutils,binutils,git,iproute2,dialog,ca-certificates,cron,curl,iputils-ping,psmisc,sudo,unzip,libcap2-bin,dns-root-data,libcap2,netcat-openbsd,procps,jq,lshw,bash-completion'
+ local 'str=Building dependency package pihole-meta.deb'
+ printf '  %b %s...' '[i]' 'Building dependency package pihole-meta.deb'
  [i] Building dependency package pihole-meta.deb...+ dpkg-deb --build --root-owner-group /tmp/pihole-meta_jL5gg pihole-meta.deb
+ printf '%b  %b %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' 'Building dependency package pihole-meta.deb'
  [✓] Building dependency package pihole-meta.deb
+ popd
+ rm -rf /tmp/pihole-meta_jL5gg
+ install_dependent_packages
+ local 'str=Installing Pi-hole dependency package'
+ printf '  %b %s...' '[i]' 'Installing Pi-hole dependency package'
  [i] Installing Pi-hole dependency package...+ is_command apt-get
+ local check_command=apt-get
+ command -v apt-get
+ '[' -f /tmp/pihole-meta.deb ']'
+ eval 'apt-get -qq --no-install-recommends install' /tmp/pihole-meta.deb
+ printf '%b  %b %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' 'Installing Pi-hole dependency package'
  [✓] Installing Pi-hole dependency package
+ rm /tmp/pihole-meta.deb
+ printf '\n'

+ return 0
+ os_check
+ '[' '' '!=' true ']'
+ local remote_os_domain valid_os valid_version valid_response detected_os detected_version display_warning cmdResult digReturnCode response
+ local piholeNameserver=@ns1.pi-hole.net
+ remote_os_domain=versions.pi-hole.net
++ grep '^ID=' /etc/os-release
++ cut -d = -f2
++ tr -d '"'
+ detected_os=debian
++ grep VERSION_ID /etc/os-release
++ cut -d = -f2
++ tr -d '"'
+ detected_version=12
++ os_check_dig 4 versions.pi-hole.net @ns1.pi-hole.net
++ local protocol=4
++ local domain=versions.pi-hole.net
++ local nameserver=@ns1.pi-hole.net
++ local response
+++ dig -4 +short -t txt versions.pi-hole.net @ns1.pi-hole.net
+++ echo 0
++ response='"Raspbian=11,12 Ubuntu=20,22,23,24 Debian=11,12 Fedora=40,41 CentOS=9,10"
0'
++ echo '"Raspbian=11,12 Ubuntu=20,22,23,24 Debian=11,12 Fedora=40,41 CentOS=9,10"
0'
+ cmdResult='"Raspbian=11,12 Ubuntu=20,22,23,24 Debian=11,12 Fedora=40,41 CentOS=9,10"
0'
+ digReturnCode=0
+ '[' '!' 0 == 0 ']'
++ os_check_dig_response cmdResult
++ local digReply=cmdResult
++ local response
++ response=cmdResult
++ '[' cmdResult == 0 ']'
++ echo true
+ valid_response=true
+ '[' true = false ']'
+ '[' true = false ']'
+ '[' true = false ']'
+ '[' true = true ']'
+ response='"Raspbian=11,12 Ubuntu=20,22,23,24 Debian=11,12 Fedora=40,41 CentOS=9,10"'
+ IFS=' '
+ read -r -a supportedOS
++ echo '"Raspbian=11,12 Ubuntu=20,22,23,24 Debian=11,12 Fedora=40,41 CentOS=9,10"'
++ tr -d '"'
+ for distro_and_versions in "${supportedOS[@]}"
+ distro_part=Raspbian
+ versions_part=11,12
+ [[ DEBIAN =~ RASPBIAN ]]
+ for distro_and_versions in "${supportedOS[@]}"
+ distro_part=Ubuntu
+ versions_part=20,22,23,24
+ [[ DEBIAN =~ UBUNTU ]]
+ for distro_and_versions in "${supportedOS[@]}"
+ distro_part=Debian
+ versions_part=11,12
+ [[ DEBIAN =~ DEBIAN ]]
+ valid_os=true
+ IFS=,
+ read -r -a supportedVer
+ for version in "${supportedVer[@]}"
+ [[ 12 =~ 11 ]]
+ for version in "${supportedVer[@]}"
+ [[ 12 =~ 12 ]]
+ valid_version=true
+ break
+ break
+ '[' true = true ']'
+ '[' true = true ']'
+ '[' true = true ']'
+ display_warning=false
+ '[' false '!=' false ']'
+ printf '  %b %bSupported OS detected%b\n' '[\e[1;32m✓\e[0m]' '\e[1;32m' '\e[0m'
  [✓] Supported OS detected
+ local funcOutput
++ get_binary_name
++ local l_binary
++ local machine
+++ uname -m
++ machine=x86_64
++ local 'str=Detecting processor'
++ printf '  %b %s...' '[i]' 'Detecting processor'
++ [[ x86_64 == \a\a\r\c\h\6\4 ]]
++ [[ x86_64 == \a\r\m* ]]
++ [[ x86_64 == \x\8\6\_\6\4 ]]
++ local dpkgarch
+++ dpkg --print-processor
+++ dpkg --print-architecture
++ dpkgarch=amd64
++ [[ amd64 == \i\3\8\6 ]]
++ printf '%b  %b Detected x86_64 architecture\n' '\r\033[K' '[\e[1;32m✓\e[0m]'
++ l_binary=pihole-FTL-amd64
++ echo pihole-FTL-amd64
  [✓] Detected x86_64 architecture
pihole-FTL-amd64'
  [✓] Detected x86_64 architecture
pihole-FTL-amd64 == '' ]]
+ [[ -f /etc/pihole/pihole.toml ]]
+ [[ -f /etc/pihole/setupVars.conf ]]
+ [[ true == true ]]
+ welcomeDialogs
+ dialog --no-shadow --clear --keep-tite --backtitle Welcome --title 'Pi-hole Automated Installer' --msgbox '\n\nThis installer will transform your device into a network-wide ad blocker!' 20 70 --and-widget --clear --backtitle 'Support Pi-hole' --title 'Open Source Software' --msgbox '\n\nThe Pi-hole is free, but powered by your donations:  https://pi-hole.net/donate/' 20 70 --and-widget --clear --colors --backtitle 'Initiating network interface' --title 'Static IP Needed' --no-button Exit --yes-button Continue --defaultno --yesno '\n\nThe Pi-hole is a SERVER so it needs a STATIC IP ADDRESS to function properly.\n\n\Zb\Z1IMPORTANT:\Zn If you have not already done so, you must ensure that this device has a static IP.\n\nDepending on your operating system, there are many ways to achieve this, through DHCP reservation, or by manually assigning one.\n\nPlease continue when the static addressing has been configured.' 20 70 + result=255
+ case "${result}" in
+ printf '  %b Installer exited at static IP message.\n' '[i]'
  [i] Installer exited at static IP message.
+ exit 1

255 would suggest that you hit ESC on that static IP screen?

Thanks for your help

I have tried this a couple of times. It always exits with the same error, I am not touching the keyboard in any way.

I am connecting via SSH to the proxmox host then entering the container that way.

Joshua

Entering the container with pct enter does not create the needed interactive terminal. You'll need to ssh in to the container or use one of the console emulators provided by the PMox web interface.

1 Like

Thank you so much

This was my problem. I always manage my containers through pct enter, so it was breaking the installer.

1 Like