windows icon indicating copy to clipboard operation
windows copied to clipboard

ERROR: Status 1 while: ip tuntap add dev "$VM_NET_TAP" mode tap

Open nzeer opened this issue 1 year ago • 9 comments

❯ Starting Windows for Docker v2.04... ❯ For support visit https://github.com/dockur/windows

❯ Downloading Windows 11... [i] Downloading Windows media from official Microsoft servers... [i] Downloading Windows 11... [!] Microsoft blocked the automated download request based on your IP address. Please check the FAQ on how to boot from a local file and manually download this ISO in a web browser here: https://www.microsoft.com/en-us/software-download/windows11

[!] 1 attempted download(s) failed! Please re-run Mido with these arguments to try downloading again (any partial downloads will be resumed): win11x64 [+] Finished! Please see the above errors with information ❯ Failed to download Windows 11 using Mido, will try a different method now... ❯ Downloading product information from Microsoft... ❯ Downloading Windows 11... /storage/tmp/win11x64.esd 100%[===============================================================================================================>] 4.54G 271MB/s in 17s ❯ Extracting Windows 11 bootdisk... ❯ Extracting Windows 11 environment... ❯ Extracting Windows 11 setup... ❯ Extracting Windows 11 image... ❯ Adding XML file for automatic installation... ❯ Building Windows 11 image... ❯ Creating a 64G growable disk image in raw format... open: No such device ❯ ERROR: Status 1 while: ip tuntap add dev "$VM_NET_TAP" mode tap (line 163/301)

I considered passing device=/dev/net/tun (it exists), but im not sure what to map it to for the container.

thoughts?

nzeer avatar Mar 07 '24 16:03 nzeer

In the container it needs to have the same path /dev/net/tun so there is no need for any mapping.

kroese avatar Mar 07 '24 17:03 kroese

No change.

docker run -it --rm --name windows11 -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --device=/dev/net/tun --stop-timeout 120 dockurr/windows ❯ Starting Windows for Docker v2.04... ❯ For support visit https://github.com/dockur/windows

❯ Downloading Windows 11... [i] Downloading Windows media from official Microsoft servers... [i] Downloading Windows 11... [!] Microsoft blocked the automated download request based on your IP address. Please check the FAQ on how to boot from a local file and manually download this ISO in a web browser here: https://www.microsoft.com/en-us/software-download/windows11

[!] 1 attempted download(s) failed! Please re-run Mido with these arguments to try downloading again (any partial downloads will be resumed): win11x64 [+] Finished! Please see the above errors with information ❯ Failed to download Windows 11 using Mido, will try a different method now... ❯ Downloading product information from Microsoft... ❯ Downloading Windows 11... /storage/tmp/win11x64.esd 100%[===============================================================================================================>] 4.54G 49.0MB/s in 1m 45s ❯ Extracting Windows 11 bootdisk... ❯ Extracting Windows 11 environment... ❯ Extracting Windows 11 setup... ❯ Extracting Windows 11 image... ❯ Adding XML file for automatic installation... ❯ Building Windows 11 image... ❯ Creating a 64G growable disk image in raw format... open: No such device ❯ ERROR: Status 1 while: ip tuntap add dev "$VM_NET_TAP" mode tap (line 163/301)

nzeer avatar Mar 07 '24 18:03 nzeer

I dont know the reason for this. If you want to workaround it, you can enable DHCP mode (see the FAQ) because it does not use tuntap at all.

kroese avatar Mar 07 '24 18:03 kroese

I'm running into this same issue. I tried adding the suggested configuration to the compose file to use DHCP mode, but that has me run into a different error:

❯ ERROR: You can only enable DHCP while the container is on a macvlan network!

jpsnyder avatar Mar 07 '24 23:03 jpsnyder

I'm running into this same issue. I tried adding the suggested configuration to the compose file to use DHCP mode, but that has me run into a different error:


❯ ERROR: You can only enable DHCP while the container is on a macvlan network!

The step above that in the faq is adding the macvlan

nzeer avatar Mar 07 '24 23:03 nzeer

Ah... I need to learn to read.

So I tried adding the macvlan best I could and restarting, but now I get:

❯ ERROR: Cannot create macvtap interface. Please make sure the network type is 'macvlan' and not 'ipvlan',
windows 
❯ ERROR: and that the NET_ADMIN capability has been added to the container: --cap-add NET_ADMIN

Created network via

docker network create -d macvlan --subnet=192.168.68.0/24 --gateway=192.168.68.1 --ip-range=192.168.68.100/28 -o parent=enp0s31f6 vlan

with docker-compose

version: "3"
services:
  windows:
    image: dockurr/windows
    container_name: windows
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    environment:
      VERSION: winxp
      DHCP: "Y"
    device_cgroup_rules:
      - 'c *:* rwm'
    networks:
      vlan:
        ipv4_address: 192.168.68.100
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    stop_grace_period: 2m
    restart: on-failure

networks:
  vlan:
    external: true

However, if it isn't obvious I'm doing wrong, I am now hitting my wall on docker/networking skills to continue troubleshooting.

In any case, I was hoping to use this with the docker bridge network for testing. So I'll be patient for when the tuntap method works. :)

jpsnyder avatar Mar 07 '24 23:03 jpsnyder

For what it is worth, I was able to get it working within an Ubuntu VM. So it may be issues with my Fedora host.

jpsnyder avatar Mar 08 '24 18:03 jpsnyder

If you don't need network access in the machine, for example you just need to test some Windows app, you can now also disable the network in the latest version (v2.06):

environment:
  NETWORK: "N"

That will also work around that the iptables error.

kroese avatar Mar 12 '24 09:03 kroese

If you don't need network access in the machine, for example you just need to test some Windows app, you can now also disable the network in the latest version (v2.06):

environment:
  NETWORK: "N"

That will also work around that the iptables error.

I tried that, and it still seemed to want to make a tunnel. (Did I need to remove the cap_add: NET_ADMIN as well?)

In any case, I was able to get the default recommended configuration to work with privileged: true. I guess fedora has a more locked down firewall. Although, this is not ideal from a security standpoint.

jpsnyder avatar Mar 12 '24 22:03 jpsnyder