What to do if nixos stay blocked after Starting systemd - nix

I start nixos from wsl.
Sometime after the start, it get blocked
I get these lines and nothing happends after that
Copying /usr/share/applications
Copying /usr/share/icons
setting up /etc...
setting up /bin...
Starting systemd...

It doesn't answer why nixos is blocked but it solves the problem.
open a new terminal. And then enter that:
wsl --shutdown
and
wsl
repeat as long as necessary

Related

Docker failed to initialize Docker Desktop is shutting down

This question was already asked a lot, but I didn't found a solution which is working for me.
I downloaded Docker Desktop with his guide for my windows 10 machine. After a successful installation the application does not start.
Following this solution didn't work. I deleted settings.json and restarted everything without success. Even reinstalling did not work. Any one has an other idea?
Edit:Reinstalling an older version (3.6.0 in my case) fixed the issue, but there has to be some other way...
Stop all processes with Docker and remove all content from the directory
C:\Users\<User>\AppData\Roaming\Docker
After that start Docker Desktop.

"Docker Desktop Starting..." forever on Windows

I have installed Docker Desktop version 4.4.4 and it is not running. It only displays "Docker Desktop Starting ..." but never starts running.
I have tried so many ways but didn't solve:
Allowing the following files in windows firewall C:\program files\docker\docker\resources\vpnkit.exe, C:\program files\docker\docker\com.docker.service C:\program files\docker\docker\resources\com.docker.proxy.exe
Removing 'Docker' and 'Docker Desktop' folders from AppData/Roaming and AppData/Local
Uninstalling and reinstalling Docker with different versions including 4.5.1
The main problem is WSL2 does not auto install the kernel when WSL2 installs, yet Docker Desktop expects it already installed. So, fully close & stop Docker as other answers have said, then run this cmd as admin:
wsl --update
Now open Docker Desktop & it should start up ok.
I've found out another symptom leading to the solution is also related to WSL.
On one side, Docker service won't start throwing this error:
error during connect: This error may indicate that the docker daemon
is not running.: Get
"http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/version": open
//./pipe/docker_engine: The system cannot find the file specified.
And on the other, WSL is unresponsive. Attempting to run a WSL Distro or WSL command directly on CMD, won't return any output at all. It will just hang in there.
So the solution is common to WSL and Docker.
I've found in a question regarding the WSL issue, that the LxssManager Windows service is staled (it may show under services.msc as Stopping and all the buttons are greyed out, or I've even seen it Running apparently, but with the Docker and WSL issues above, so something is wrong with it still.)
First, we have to get LxssManager PID in order to kill it. Using an elevated shell, we can get it this way:
sc queryex LxssManager
Having the PID, we can kill the process but beware I wasn't able to kill it using kill or taskkill commands. I was getting the following error:
ERROR: The process with PID XXXXX could not be terminated.
Reason: Access is denied.
To effectively kill the process, do as following:
wmic process where ProcessID=XXXXX delete
Replace XXXXX with PID, of course.
Having done so, start the LxssManager service:
net start LxssManager
A word of warning:
I've noted in some cases this is not enough for unknown (to me) technical reasons even if LxssManager service is shown as Running.
Just repeat the above steps! Sometimes it works doing this once, sometimes doing it twice for some reason.
TL;DR
Kill LxssManager Windows service using wmic+PID.
Start LxssManager service.
Repeat twice or more if issues persist.
Docker and WSL issues are solved.
Here i am using Windows platform, I faced this issue.
And to resolve this issue follow the below steps.
Just delete the temporary files from the following.
C:\Windows\Temp
C:\Users{yourAccountName}\AppData\Local\Temp
C:\Windows\Prefetch
then
Uninstall Docker Desktop
Restart computer
before installing docker, make sure you have Ubuntu WSL(download from Microsoft store)
[optional] If you need Terminal Preview(multi-terminal) download from Microsoft Store. Great Terminal
Install Docker Desktop Again
Thanks
For me, it was a problem with WSL. When I tried:
wsl --install -d Ubuntu
in a command window, after a few minutes I got error 0x80370114
The fix was to do:
Exploit Protection > System Settings > Control Flow Guard
turn on
restart computer
Then reinstall/restart Docker Desktop, and it works!
Hope this helps someone else
I was facing same code for for Docker version 4.*. For me it was Visual Studio code,
Stopped WSL form Task manager
stopped Docker which was showing "Docker desktop is starting" form Task manage
stopped Visual Studio code form Task manager
Started Docker again
These steps placed my Docker in Running state in 30 seconds
Hope this helps someone!
Solved this issue with #Alvi answer
Docker forever in "Docker is starting.." at Windows task
I guess you are using wsl2 features. In that case, open PowerShell or command prompt and type: optionalfeatures.exe
scroll down and uncheck
Windows Subsystem for Linux
apply the changes and restart your computer.
After restart follow the previous steps again and check
Windows Subsystem for Linux
and restart again. Hopefully now your docker will run
My fresh install was experiencing the same symptoms. Also wsl --list showed "no installed distributions". I tried many reinstallations and restarts of Docker and WSL, but eventually found the steps:
In Task Manager, kill all processes related to Docker & Docker Desktop
Run Docker Desktop as administrator
Got it working on on Windows 11 Enterprise.
for me it worked in windows (docker desktop):
to uninstall the docker
reinstall as administrator
don't select the part with wsl
As wrote here, you need to do:
wsl --update
But after that it doesn't fix my issue until I did restart to my pc.
What worked for me was to log in into the Docker (upper right corner), but when I first clicked on login, it said "exec: "rundll32": executable file not found in %PATH%" - I search and found that I need to check environmental variable in PATH that I have "C:\WINDOWS\system32" there - (and in my case I really had it broken somehow - don't know why, but I missed backslash between Windows and system32). So I fixed to correct path, restarted PC. Then I was able to login. And immediately "Docker Desktop Starting..." was gone.
I use Docker with PyCharm. I ran into this problem when I launched PyCharm and Docker Desktop at about the same time.
On my machine Docker Desktop starts automatically when I boot. I can avoid the problem by waiting for Docker Desktop to finish starting. And then start PyCharm.
I was also having the same problem, just a few minutes ago.
Platform:
Windows 10 Pro - 22H2 - Build 19045.2486
Windows Updates newly installed: KB5022282, KB5020876, KB5012170
What i did was: Activating the Windows Hypervisor Platform
And it did solve the problem, atleast for now
In my case it helped me to enable the CPU SVM (Support Vector Machine) function in my BIOS settings.
Also, if you have this feature disabled, you will not be able to use Virtual Box either.
SVM in BIOS
got to services and stop Docker desktop service and start again
reopen Docker desktop it will work
wsl -v
if it show version then linx is install
search windows programer feature in your laptop
enable virtulization
wsl --set-default-version 2
restart laptop and then start docker and wait for 2 minutes your docker will start working
I am running windows 11, visual studio 2023 and had this issue.
First, open a command prompt and type
wsl.exe --list --online
Then enter following
wsl.exe --install Ubuntu-20.04
Then type in the prompt sudo apt update to update the distribution. Lastly, start up Docker desktop and log in (you can register at their site). That fixed Docker on my pc.

Docker for windows doesn't work. What could I do with it?

Yeah, I know, there are some questions similar to that, but none of them helped me. My docker for windows has once stopped working. Now I can't even uninstall it, because in the applications it doesn't appear, I cannot install it, the installation stucks always on the same process, I tried to delete all the files and then install again, tried to stop all the proccesses related to docker, I tried everything. I cannot even uninstall, cannot reinstall, cannot run... cannot do anything with it... help!
I finally solved that. I deleted manually all the directories related to docker (ProgramFiles, ProgramData, [user root directory], Appdata/Roaming etc.) and this way the installer finally finished. There was another problem, that WSL2 engine tried to start, but couldn't. WSL was enabled, the engine starting process was running for ca. 1 hour... but nothing happend and couldn't even change the engine. So I reinstalled once again, and didn't install the WSL frame. It started automatically with Hyper-V and now it works fine.

System.InvalidOperationException: Failed to deploy distro docker-desktop to <localpath>: exit code: -1

I am trying to run docker Desktop in my windows 10 Local. have installed it successfully but while running it I am getting the below error.
System.InvalidOperationException:
Failed to deploy distro docker-desktop to <localpath>: exit code: -1
stdout: The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
I think it is saying some windows services need to be enabled, but I don't know which service has to be enabled could someone please help me with this concern?
docker version
C:\Users\lenova>docker --version
Docker version 20.10.2, build 2291f61
Uninstall Docker.
Uncheck Containers, Hyper-V, Windows Subsystem for Linux in Windows features
Restart the system
Install Docker Desktop
Restart System
Start Docker Desktop
Right click on docker icon, run as administrator (if you have administrator rights on your computer). It solved the problem for me.
Try delete %USERPROFILE%/.wslconfig. If it helps then you can try to modify it so that it work. As for me I deleted the file, because on my workstation docker didn't want to work with it
Almost sure, that the accepted answer will work. However, it won't be an option, if you utilize WSL for other purposes as well. In that case, you may have several configurations/apps in WSL and just reinstalling or deleting your configuration will probably be a bad solution.
Furthermore: WSL is not the issue for this error! It is created by Docker engine configuration which will kill the WSL service (LxxsManager). This may happen because of
changed configuration (by you) or
because of a Docker update, maybe also
because of Windows updates
You can find a detailed discussion about this issue on Docker's GitHub Issues.
I personally experienced this problem after installing updates on Windows while running Docker v3.5.2. And again, reinstalling/killing WSL is not an option for me! So I tried to kill all services (Docker and WSL) and update Docker. Unfortunately that did not work in first place, since LxxsManager was in some weird state and I could not even kill it any more (even a kill command as admin with force switch did not do it's job!)... So here is my solution to fix that problem:
Remove Docker from autostart
Restart Windows (Yippiee: WSL works again! 🥰)
Install a new version of Docker (in my case v.4.2.0)
Restart Windows again (probably not necessary, but for me it was because Docker engine did not start before a Windows restart)
Start Docker (Yippiee: Docker works again! ☺️)
Note: Since I did not change Docker configuration, I installed an update. If you changed configuration options resulting in that crash, your solution may be different. Literally, instead of updating Docker (step 3) you would probably roll back your Docker configuration changes instead.
The quality of Docker for Windows is very bad. I catch these dangerous very often.
Check list:
(1) Use this tool https://www.nirsoft.net/utils/regscanner.html . Search docker, delete all.
(2) Remove WSL sub system, Hyper-V, then restart
(3). Create file foo.reg has content
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3]
"AppFullPath"="C:\\Windows\\System32\\wsl.exe"
"PermittedLspCategories"=dword:80000000
run.
(4) Uninstall Docker
(5) Run cmd type ... . Delete folder .docker
Delete Docker folder in Program Files
(6) delete
(7) Install latest version of Docker.
(8) Re-install feature WSL for Windows.
Install Ubuntu from Windows store
(9) Re-install Docker (as Administrator)
(10) Run Docker as Administrator .
In my case, I was getting a similar error. This was happening because Docker desktop didn't have permissions to access the path C:\Users\Adithya\AppData\Local\Docker\wsl\distro. This started happening after I switched to WSL2 backend.
The solution was to kill all docker process. Next, Run Docker Desktop as Administrator.
System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:\Users\Adithya\AppData\Local\Docker\wsl\distro:
exit code: -1 stdout: The operation timed out because a response was not received from the virtual machine or container.
run as administrator , and you switch the container to windows by clicking the icon bar in the right corner taskbar and choose switch to windows container
https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-10-linux
If you don't need to run Linux and Windows containers side-by-side, an option is to turn off the WSL and use Hyper-v instead. This should work fine.
I had to exit Private Internet Access (PIA) VPN to get docker to work on my system. Not sure why.
I had the PgAdmin 4 app running, and when I closed it and tried starting Docker Desktop again it booted normally.
Not sure if there is a link, but an easy solution to try.
This worked for me: https://github.com/MicrosoftDocs/WSL/issues/547#issuecomment-873540236
Copy below snippet:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3]
"AppFullPath"="C:\\Windows\\System32\\wsl.exe"
"PermittedLspCategories"=dword:80000000
Save it as a file wsl.reg
Execute the file to update the registry
Launch Ubuntu again
Issue resolved
In my case, the issue was caused by Acrylic DNS server. Anything that holds port 53, would be a problem.
Interesting that it all worked fine for a few days after installation, maybe because I did not reboot the laptop all that time, only used the deep hibernation. So it was hard to guess what could break the docker setup, I was sure that it was because of the recently installed windows or docker updates.
Restarting wsl worked for me.
Run the following
wsl --shutdown, wait for it to shutdown
wsl, wait for it to start
Start Docker Desktop after this.
On Windows 10:
Open Services
Right click on LXSSMANAGER -> Restart
Close wsl using cmd with following command:
wsl --shutdown
Execute following start wsl again:
wsl
I solved by the following steps:
Uninstall Docker and WSL 2 kernel.
Uncheck Containers, Hyper-V, Windows Subsystem for Linux in Windows
features
Restart the system
Install Docker Desktop
Restart System
Start Docker Desktop
The problem is in WSL as it becomes unresponsive and returns a service error if you try the following command in PowerShell:
wsl -l -v
I believe the process can be simplified a bit more with:
Uncheck Windows Subsystem for Linux in Windows Features
Reboot
Turn the feature back on
Re-apply the WSL2 update
Reboot
No need to uninstall/reinstall Docker Desktop.
This got me back up and running with Windows 10 Home (which requires WSL2) and Docker Desktop 2.4.0

Vagrant VM not saving any changes; creates new VM upon every `halt/suspend + up` (Windows Vagrant, VirtualBox, RailsDevBox)

I am trying to use Virtual Box + Vagrant + Rails Dev Box on a Windows machine. I am able to run vagrant up and vagrant ssh to get into the virtual machine but none of the changes that I make are being saved, such as installing rails. Every time I halt Vagrant and start again, it's as if I loaded it for the first time. The process goes through all the steps that make the first vagrant up.
I have noticed, however, is that the one change I made to the Vagrantfile (synced folders location) is persisting. Also, if I use vagrant reload, the changes seem to persist. So it looks like the problem only happens if I use vagrant halt or vagrant suspend followed by vagrant up. But I wasn't under the impression that vagrant halt (and especially not vagrant suspend) is supposed to destroy a VM.
And when I open VirtualBox Manager I can see a bunch of instances of rails-dev-box VM's that have been created.
I found an issue that looks like this in the Vagrant Github issues site but honestly the discussion is totally over my head and I wasn't able to understand the resolution even though that thread is closed.
If anyone knows what is causing and could explain in "newbie" terms or, if my problem is too opaque, could walk me through the next steps to debug, I would really appreciate it!
EDIT
After writing this out and thinking about it more, I realized the problem is not actually that "changes aren't being saved." They're being saved...but I'm just being taken to a brand new VM any time I run vagrant up.
Have you tried vagrant resume instead of vagrant up?
I have been having this same issue, and have a couple possible solutions.
The file Vagrant uses to keep track of the default VM is .vagrant/machines/default/virtualbox/id. (The contents of that file will be the UUID of the VM, which can be found in the VirtualBox.xml file.) If there is anything wrong with the VM referenced there, then Vagrant apparently just deletes the file and tells you to start over.
One GitHub issue reported this same problem, in that case the VM was in an "invalid state" in VirtualBox. The problem was solved by deleting a corrupted save state.
That may be the issue that you are having, though it was not mine. If and when I figure out why I am having this issue, I will update this answer.
Edit: I booted up my vagrant VM manually from VirtualBox Manager (though I was not able to use it for development, because the shared folder wasn't set up by Vagrant). I didn't see any major problems, so I shut it back down. Next I replaced the id file manually, as described above. I did vagrant up again and it worked. Note that in order to keep it from being re-provisioned, you also need to re-create the action_provision file in that same folder. The contents of mine are: 1.5:<uuid>, where <uuid> is the machine's UUID. (I am not sure what the 1.5 means..) I have since done both vagrant suspend and vagrant halt (each followed by vagrant up) multiple times, and haven't had any further problems. I still don't know what caused this issue. If I have any other problems, or find out why this happened, I will again report back here.
Edit 2: I have finally figured out the problem. First, to help track things down, I did VAGRANT_LOG=debug vagrant status. This produced a lot of output, but as I dug through it, I found one line in particular of interest: VBoxManage.exe: error: could not find a registered machine with uuid <uuid>. I then did some manual debugging, and found that VBoxManage.exe list vms returned blank. It turns out that VirtualBox had lost track of my .VirtualBox folder, because I was doing all of this in Cygwin. Some more debugging, and I found that the environment variable that VirtualBox was looking for was HOME. I set that to my Windows home directory (/cygdrive/c/Users/<me>) in my .bashrc, and it fixed the problem, this time more permanently.
TL;DR:
Open the VirtualBox GUI and make sure there are no errors related to your VM.
If you are in Cygwin, ensure that HOME is set to the right value.
Otherwise, prepend VAGRANT_LOG=debug to any Vagrant command to debug further.
First, get the state of the VM to where you want it i.e. all things installed and configured.
While the VM is running, executing vagrant global-status gets the 'id' of the box and then do a vagrant package {id} packages it into a local package.box file.
vagrant box add package.box --name {whatever-name} - should get your box added to the list of available ones.
Then you can either create a new Vagrantfile or modify the existing one to load the vm with this new name.
Hope this helps.

Resources