I am following the howto below for installing proxmox on crostini

https://www.reddit.com/r/Crostini/wiki/howto/proxmox-ve-py/

Going through the steps when trying to install btrfs-progs apt returns the error below.

root@proxmox:~# apt install -y btrfs-progs

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

Suggested packages:

duperemove

The following NEW packages will be installed:

btrfs-progs

0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

Need to get 754 kB of archives.

After this operation, 4,591 kB of additional disk space will be used.

Ign:1 https://deb.debian.org/debian bookworm/main amd64 btrfs-progs amd64 6.2-1+deb12u1

Ign:1 https://deb.debian.org/debian bookworm/main amd64 btrfs-progs amd64 6.2-1+deb12u1

Ign:1 https://deb.debian.org/debian bookworm/main amd64 btrfs-progs amd64 6.2-1+deb12u1

Err:1 https://deb.debian.org/debian bookworm/main amd64 btrfs-progs amd64 6.2-1+deb12u1

Temporary failure resolving 'deb.debian.org'

E: Failed to fetch https://deb.debian.org/debian/pool/main/b/btrfs-progs/btrfs-progs\_6.2-1%2bdeb12u1\_amd64.deb Temporary failure resolving 'deb.debian.org'

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

root@proxmox:~#

It looks like the networking setup in the previous step of the script is preventing outbound network requests

fkhan@proxmox:~$ ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

From 172.20.20.254 icmp_seq=1 Destination Host Unreachable

From 172.20.20.254 icmp_seq=2 Destination Host Unreachable

From 172.20.20.254 icmp_seq=3 Destination Host Unreachable

From 172.20.20.254 icmp_seq=4 Destination Host Unreachable

^C

--- 8.8.8.8 ping statistics ---

5 packets transmitted, 0 received, +4 errors, 100% packet loss, time 4080ms

I tried rebooting the vm that did not help. Any other suggestions on what I should try?

  • I'm out and about for the next couple of hours and don't know if I'll have time later, but if you keep pinging me, I'll try to take a look. Just for reference, what is your normal network? IPv4 or IPv6?

    My normal network is vanilla IPv4 with the default 192.168.x.x space.

    Here is the network info returned by lxc info

    Network usage:

    eth0:

    Type: broadcast

    State: UP

    Host interface: veth6a2b2cfe

    MAC address: 00:16:3e:8b:20:eb

    MTU: 1500

    Bytes received: 1.19MB

    Bytes sent: 25.44kB

    Packets received: 5882

    Packets sent: 456

    IP addresses:

    1/3

    ipv4:

    Type: broadcast

    State: UP

    Host interface: dummy0

    MAC address: e2:2c:8a:49:dd:5d

    MTU: 1500

    Bytes received: 0B

    Bytes sent: 0B

    Packets received: 0

    Packets sent: 0

    IP addresses:

    lo:

    Type: loopback

    State: UP

    MTU: 65536

    Bytes received: 29.67kB

    Bytes sent: 29.67kB

    Packets received: 312

    Packets sent: 312

    IP addresses:

    inet: 127.0.0.1/8 (local)

    inet6: ::1/128 (local)

    2/3

    veth0:

    Type: broadcast

    State: UP

    Host interface: eth0

    MAC address: ea:09:53:79:76:9e

    MTU: 1500

    Bytes received: 0B

    Bytes sent: 0B

    Packets received: 0

    Packets sent: 0

    IP addresses:

    vmbr0:

    Type: broadcast

    State: UP

    MAC address: 00:16:3e:8b:20:eb

    MTU: 1500

    Bytes received: 1.11MB

    Bytes sent: 25.41kB

    Packets received: 5882

    Packets sent: 456

    IP addresses:

    inet: 172.20.20.254/24 (global)

    inet6: fd00:100::216:3eff:fe8b:20eb/64 (global)

    inet6: fd29:623a:9a44:5a17:216:3eff:fe8b:20eb/64 (global)

    inet6: fd00:100::1/64 (global)

    inet6: fe80::216:3eff:fe8b:20eb/64 (link)

    3/3

    In the container, what is the output of ip netns exec ipv4 ip a and of ip netns exec ipv4 ip r?

  • sudo systemctl restart systemd-networkd

    network down after waking from sleep.

    the script describes how crostini has a limited IPv4 allocation and reconfigures the network to IPv6

    Now would be a good opportunity to teach Proxmox VE about the somewhat unusual network configuration inside of a container.

    when I run sudo systemctl restart systemd-networkd the error below is returned

    Failed to restart systemd-networkd.service: Unit systemd-networkd.service is masked.

    Googling the error returned that the service was symbolic linked to /dev/null.

    I'm looking through the script now to see were that could be happening

    Are you going through the steps one-by-one, or are you using the helper script that applies them automatically for you?

    Are you using a completely fresh Crostini container, or are you using a container that you have previously used and modified?

    Which version of Debian is running in your container? Google occasionally upgrades their Debian versions and it's possible that I haven't tested that particular configuration.

    I just ran a test with whatever snapshot of Debian that I happened to have on my machine and using the automated script, and that particular combination seems to work. So, either you have a different version of Crostini and that is broken, or you made a mistake manually applying one of the steps. Also, it is possible that you broke your DHCP configuration if you have created and destroyed a lot of Crostini instances in the past. A powerwash would of course fix that, but there is a manual process to clean up your DHCP leases, if that proves to be the root cause. I can walk you through it, but it's a bit convoluted. So, let's try easier things first

    Here is the version of debian installed

    fkhan@proxmox:~$ cat /etc/os-release

    PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"

    NAME="Debian GNU/Linux"

    VERSION_ID="12"

    VERSION="12 (bookworm)"

    VERSION_CODENAME=bookworm

    ID=debian

    HOME_URL="https://www.debian.org/"

    SUPPORT_URL="https://www.debian.org/support"

    BUG_REPORT_URL="https://bugs.debian.org/"

    fkhan@proxmox:~$ hostnamectl

    Static hostname: proxmox

    Icon name: computer-container

    Chassis: container ☐

    Machine ID: 600a878e1e15426a84995324d5119de4

    Boot ID: 2cf92907b3d34ddea47467675ce70d38

    Virtualization: lxc

    Operating System: Debian GNU/Linux 12 (bookworm)

    Kernel: Linux 6.6.99-08726-g28eab9a1f61e

    Architecture: x86-64

    Both attempts were done on fresh containers created through the crosh vmc container command

    crosh> vmc container termina proxmox

    crosh vmc container termina proxmox-2

    The first attempt I tried to run the script and it failed when trying to install btrfs-progs because outbound network connections did not work

    The second attempt I performed the steps by hand. They all worked except the step when creating the split-ipv4-ipv6 script through cat. With cat split-ipv4-ipv6 ended up truncated. When I created split-ipv4-ipv6 through vim it worked great.

    Reviewing the first attempt that failed, the split-ipv4-ipv6 script is also truncated. Presumably this is why networking did not work.

    I am currently trying to run the script again to see if I can duplicate the cat truncation.

    Unfortunately, there seems to be two different errors on my 3rd attempt but they occur very early in the script.

    The first error is when install_pve tries to open proxmox-ve.json

    2025-12-29T20:20:13.338175Z WARNING garcon: [../../../../../tmp/portage/chromeos-base/vm_guest_tools-0.0.2-r1892/work/vm_guest_tools-0.0.2/vm_tools/garcon/host_notifier.cc:130] Failed to request host system to open url "https://reddit.com/r/Crostini/wiki/howto/proxmox-ve.json" error: Failure in OpenUrl

    The full human-readable instructions for installing ProxmoxVE are kept in a

    Wiki on Reddit. You have to manually download them from your web brower and then

    save them to your Downloads folder.

    Download https://reddit.com/r/Crostini/wiki/howto/proxmox-ve.json. When done,

    come back here and enter the filename of where you saved the JSON file.

    If I download proxmox-ve.json to the Downloads directory manually and relaunch the script the next error about an invalid option occurs.

    Stopping container to run commands in crosh

    + lxc stop --force proxmox-3

    + lxc config set proxmox-3 security.privileged true

    + lxc config set proxmox-3 security.nesting true

    + lxc config set proxmox-3 image.description 'Proxmox VE on Debian'

    + lxc config set proxmox-3 raw.lxc 'lxc.cgroup.devices.allow = c *:* rwm

    lxc.cgroup.devices.allow = b *:* rwm'

    Resuming script at: Grant access to /dev/loop devices

    + # Creating "/usr/local/sbin/mkloopdev"

    + cd -3:/root

    /bin/bash: line 1: cd: -3: invalid option

    cd: usage: cd [-L|[-P [-e]] [-@]] [dir]

    Command failed. Proceed with caution!

    Press ENTER to continue

    I was able to run the script through the important parts on a different chromebook. It failed once the script started to try and create the first container because the ubuntu resource is not available and returns a 404.

    Create your first VM

    + cd /var/lib/vz.btrfs/template/iso

    + cd /var/lib/vz.btrfs/template/iso

    + wget -c https://releases.ubuntu.com/noble/ubuntu-24.04.2-desktop-amd64.iso

    --2025-12-29 16:45:20-- https://releases.ubuntu.com/noble/ubuntu-24.04.2-desktop-amd64.iso

    Resolving releases.ubuntu.com (releases.ubuntu.com)... 185.125.190.40, 91.189.91.108, 91.189.91.109, ...

    Connecting to releases.ubuntu.com (releases.ubuntu.com)|185.125.190.40|:443... connected.

    HTTP request sent, awaiting response... 404 Not Found

    2025-12-29 16:45:20 ERROR 404: Not Found.

    Command failed. Proceed with caution!

    Press ENTER to continue

    After restarting the proxmox vm and realizing the ip address changes on reboot I was able to access the webpage on port 8006

    thanks!

    I have a question and a new problem.

    Could I export my working proxmox container and import it on a different chromeos machine? The beginning part of the instructions is adjusting the security setting for the container. Do those setting persist in an export? Are there other steps I would need to do other than just lxc import <filename>

    (termina) chronos@localhost ~ $ lxc stop --force penguin
    (termina) chronos@localhost ~ $ lxc config set penguin security.privileged true
    (termina) chronos@localhost ~ $ lxc config set penguin security.nesting true
    (termina) chronos@localhost ~ $ lxc config set penguin image.description 'Proxmox VE on Debian'
    (termina) chronos@localhost ~ $ lxc config set penguin raw.lxc 'lxc.cgroup.devices.allow = c *:* rwm
    lxc.cgroup.devices.allow = b *:* rwm'

    The problem I have now is going through the Integrate Container with Crostini the error below is thrown. What does the error mean by arch is missing?

    root@proxmox:/etc/pve/nodes# pct start 101

    missing 'arch' - internal error at /usr/share/perl5/PVE/LXC.pm line 673.

    root@proxmox:/etc/pve/nodes#

    I figured out why the 'arch' - internal error was happening. Creation of the 101.conf file was not working and resulted in an empty file.

    The error was fixed by copying the preexisting 100.conf file I was able to execute the command pct start 101

  • apt install requires sudo.

    [deleted]

    [deleted]

    [deleted]

    veth0:

    Type: broadcast

    State: UP

    Host interface: eth0

    MAC address: ea:09:53:79:76:9e

    MTU: 1500

    Bytes received: 0B

    Bytes sent: 0B

    Packets received: 0

    Packets sent: 0

    IP addresses:

    vmbr0:

    Type: broadcast

    State: UP

    MAC address: 00:16:3e:8b:20:eb

    MTU: 1500

    Bytes received: 1.11MB

    Bytes sent: 25.41kB

    Packets received: 5882

    Packets sent: 456

    IP addresses:

    inet: 172.20.20.254/24 (global)

    inet6: fd00:100::216:3eff:fe8b:20eb/64 (global)

    inet6: fd29:623a:9a44:5a17:216:3eff:fe8b:20eb/64 (global)

    inet6: fd00:100::1/64 (global)

    inet6: fe80::216:3eff:fe8b:20eb/64 (link)

    yep, the script has the installation done as root

    root@proxmox:~# apt install -y btrfs-progs

  • I repeated the installation by doing the instructions by hand using the human readable instructions

    https://www.reddit.com/r/Crostini/wiki/howto/proxmox-ve/

    and the networking now works and I was able to install btrfs-progs

    So far the one deviation I had to do from the manual instructions is to create the split-ipv4-ipv6 in a text editor instead of cut&paste the cat instruction at the cli.

    Unfortunately, with ChromeOS release 141 GUI support for multi-containers was removed. Assigning the port-forward for 8006 through the GUI is no longer possible because new containers is not populated in the dropdown.

    I tried to open the site using garcon-url-handler and an error was returned

    fkhan@proxmox-2:~$ garcon-url-handler https://localhost:8006/

    2025-12-28T16:47:46.004920Z ERROR garcon: [../../../../../tmp/portage/chromeos-base/vm_guest_tools-0.0.2-r1892/work/vm_guest_tools-0.0.2/vm_tools/garcon/main.cc:457] Failed to read the security token.

    Yes, the removal of multi-containers is very annoying. This might be in preparation of the eventual merger with Android -- something that I already fear, as it is likely going to break a lot of other things.

    But if you need to connect to one of the extra containers, you can do that by explicitly specifying their IP address. You can find your own IP address from inside the container with ip netns exec ipv4 ip -4 -o a s dev eth0 | awk '{ sub(/\/.*/, "", $4); print $4 }'. Or you could just look in /etc/hosts. Part of what we did when installing PVE was to record the IP address that Crostini uses for us.

  • Do you have a spare Linux machine you can use?

    unfortunately no. only have chromeboxes and chromebooks available