Qemu can't load bios-256k.bin when running on Windows - windows

I was trying to test qemu on Windows OS and when I tried to start an ubuntu iso whith the following command:
qemu-system-x86_64.exe -boot d -cdrom .\ubuntu-20.04.1-desktop-amd64.iso -m 2048
Then I getting the following error:
qemu: could not load PC BIOS 'bios-256k.bin'
Qemu folder is set in Enviroment Varibles and the bios-256k.bin file is in the folder
How can I solve this problem?

Add an option for bios file directory entry with -L switch. Your command should look like this:
qemu-system-x86_64.exe -boot d -cdrom .\ubuntu-20.04.1-desktop-amd64.iso -m 2048 -L "C:\Program Files\qemu"
Of course in case your default qemu installation is in C:\Program Files\qemu and bios files are inside that directory. For some reason, qemu has a bug that doesn't search bios files in defined path and look for them in current working directory.
Edit: I found a bug report that mentions this issue. It also seems to be fixed in newest version. Anyway, here is the link: https://bugs.launchpad.net/qemu/+bug/1915794
This is a known and documented problem with a simple workaround: "Known issue: currently requires start from installation directory or -L option to specify the location of the firmware files."
And it is already fixed in the newer installer.

Related

How to change the location of docker installation? [duplicate]

I've just upgraded to Windows 10 Home May 2020, activated WSL2, and installed Docker Desktop.
WSL2 must be installed in my system disk, which is a small SSD. I don't want to fill it with docker images. How do I change the docker images path? I'd like to use a path in my big Windows filesystem.
The image location is somewhat confusing. I believe it is in /mnt/wsl/docker-desktop-data/.
How do I change the directory of docker images inside WSL2? May I change docker configuration to select a path inside /mnt/d, or mount a path from /mnt/d over docker data dirs?
The WSL 2 docker-desktop-data vm disk image would normally reside in:
%USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx
Follow the following to relocate it to other drive/directory, with all existing docker data preserved (tested against Docker Desktop 2.3.0.4 (46911), and continued to work after updating the 3.1.0 (51484)):
First, shut down your docker desktop by right click on the Docker Desktop icon and select Quit Docker Desktop
Then, open your command prompt:
wsl --list -v
You should be able to see, make sure the STATE for both is Stopped.(wsl --shutdown)
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2
Export docker-desktop-data into a file
wsl --export docker-desktop-data "D:\Docker\wsl\data\docker-desktop-data.tar"
Unregister docker-desktop-data from wsl, note that after this, your ext4.vhdx file would automatically be removed (so back it up first if you have important existing image/container):
wsl --unregister docker-desktop-data
Import the docker-desktop-data back to wsl, but now the ext4.vhdx would reside in different drive/directory:
wsl --import docker-desktop-data "D:\Docker\wsl\data" "D:\Docker\wsl\data\docker-desktop-data.tar" --version 2
Start the Docker Desktop again and it should work
You may delete the D:\Docker\wsl\data\docker-desktop-data.tar file (NOT the ext4.vhdx file) if everything looks good for you after verifying
Stop Docker Desktop
Relocate Docker folder from C:\Users\xxx\AppData\Local\Docker to new path
Make sure C:\Users\xxx\AppData\Local\Docker is no longer there
Open a cmd in administrator mode
Run the following command that will create a symbolic link in the cmd window with the appropriate from and to path
mklink /j "C:\Users\xxx\AppData\Local\Docker" "path to where you relocated your docker folder"
Restart Docker Desktop
Edit: re-register docker-desktop would set the default docker-data to C drive now, so we should only unregister docker-data as the accepted answer.
You can do
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:\wsl\docker-desktop-data "C:\Program Files\Docker\Docker\resources\wsl\wsl-data.tar" --version=2
The tar file is the file used to install, and before it is your new destination.
This always work while the move-wsl or lxrunoffline didn't work for me on fast rings. And sometimes you have to unistall/install docker first
Extending #Attila Badi 's answer would be to also give the same treatment to the C:\ProgramData\Docker folder, which seems to be used for WSL / Windows Containers. Even moving the Docker data folders, would still leave you with a boot drive ProgramData\Docker folder of massive proportions - especially if you are unable or unwilling to clean the images. You cannot migrate it, or move it once installed. Using the Docker engine advanced settings works in Linux container mode, but not in windows and vice versa and has trouble starting.
Steps I followed:
Uninstall Docker. I know... Make sure you have saved what you need.
Create the primary space-eating docker folders, in a location you have a lot of space, e.g. :
D:\Data\Docker\ProgramData_Docker &
D:\Data\Docker\AppData_Local_Docker
Create linked folders, by running the below in a command window in administrator mode:
mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Data\Docker\ProgramData_Docker"
mklink /j "C:\ProgramData\Docker" "D:\Data\Docker\AppData_Local_Docker"
Install Docker.
You should be able to merrily pull windows server images, but not clog up your boot drive.
UPDATE:
Trying to symlink the C:\ProgramData\Docker folder, may result in a security error, depending on the version running depending on the originally installed version.
Release notes for 4.13.0 refers to this feature, which my be a possible work-around (Thanks to #bhagerty and #Oly for the trail):
start /w “” “Docker Desktop Installer.exe” install --installation-dir=G:\Docker
(Source: ungureanuovidiu # https://forums.docker.com/t/docker-installation-directory/32773/17 )
For me docker won't start with junction.
Then I've used just directory symbolic link:
Docker stopped
Folder "wsl" moved to other location on disk "B"
RUben#AD-RUBEN C:\Users\RUben\AppData\Local\Docker
$ mklink /D wsl "B:\dev\wsl"
**symbolic link** created for wsl <<===>> B:\dev\wsl
Containers and Images are ready to use:
A nice tool:
DDoSolitary/LxRunOffline: A full-featured utility for managing Windows Subsystem for Linux (WSL)
https://github.com/DDoSolitary/LxRunOffline
LxRunOffline.exe move Move a distribution to a new directory.
Options:
-n arg Name of the distribution
-d arg The directory to move the distribution to.
for example:
quit docker desktop, then:
wsl --shutdown
LxRunOffline.exe move -n docker-desktop-data -d D:\vm\dockerdesktop\wsl\data
I found this tool from pxlrbt on github. It's using standard wsl import/export and pretty safe. Just moved both my docker-desktop-data distro to a different drive and it works well.
The best option is to update the registry. Follow the below steps
Shutdown the wsl. Use the command wsl --shutdown.
Move the entire C:\Users\%USERPROFILE%\AppData\Local\Docker directory to different drive for example D:\Docker.
Goto Registry editor location Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss.
Find the registry entry with the BasePath set to C:\Users\%USERPROFILE%\AppData\Local\Docker\wsl\data. Update this D:\Docker\wsl\data.
Find another registry entry with the BasePath set to C:\Users\%USERPROFILE%\AppData\Local\Docker\wsl\distro. Update this D:\Docker\wsl\distro.
Restart wsl using: wsl -d Ubuntu.
In Windows 10 home, docker desktop creates the VM under ""C:\Users\xxx\AppData\Local\Docker" directory and it is this VM that contains the downloaded docker images. If you want to change the VM location from C: to a different directory you can do this by creating a junction on windows (prior to docker desktop installation) using a command like below:
mklink /j "C:\Users\xxx\AppData\Local\Docker" "D:\Users\xxx\AppData\Local\Docker"
Note that prior to executing the command the target directory structure should exist while you should delete the C:\Users\xxx\AppData\Local\Docker directory if it exists already else the command could fail. Now install docker desktop on windows 10 home and voila you can see stuff inside "D:\Users\xxx\AppData\Local\Docker" directory namely the docker VM hard disk image file that is going to contain all the downloaded docker images.
Using small SSD also you may want to relocate WSL swap file location.
https://learn.microsoft.com/en-us/windows/wsl/wsl-config

linux subsystem on windows, how to set working directory to a folder on windows?

I am trying to import a file on windows 11 to a linux subsystem (Ubuntu 22.04.1) while it is connected to docker. I am new to this so I am sorry if I am making obvious mistakes. To my understanding (I am following this tutorial: https://degauss.org/using_degauss.html), I need docker running first and then open my linux subsystem. However once I get to cd then it gives me the following error: -bash: cd: too many arguments. What I need to do is set the working directory to a specific folder so I can proceed with the next step.
typing pwd simply showed me that I am in home\(username I created when installing the linux subsystem)
I am new to linux and docker so an easy to understand answer is greatly appreciated.
Thanks.
I have tried cd and then name of path for example E:\Users\Name\Desktop\folder one\folder two\folder where file is and I got -bash: cd: too many arguments. I also changed \ to / and got the same error. I thought it would set the working directory (folder where file is).
Docker is connected to linux subsystem as I did the hello-world test successfully
Linux does not know about drives, there are only directories. Generally, a WSL mounts windows drives, which means you can find them under /mnt: generally you should have /mnt/c for your C:\-drive, please check if you can access /mnt/e for accessing your E:\-drive.
Your directory should be accessible from:
cd /mnt/c/Users/Name/Desktop/"folder one"/"folder two"
Good luck

Docker "Can't add file <path> to tar: readlink <path> The system cannot find the file specified"

I'm a beginner at docker trying to get it working on my Windows 10 machine using creator's update bash subsystem. My dockerfile builds fine on my mac, but when I try docker build from the same file on windows, I get errors like the following:
time="2017-08-28T14:44:36-07:00" level=error
msg="Can't add file \\\\?\\C:\\Users\\username\\Workspace\\...\\node_modules\\.bin\\nodemon
to tar: readlink \\\\?\\C:\\Users\\username\\Workspace\\...\\node_modules\\.bin\\nodemon:
The system cannot find the file specified."
This is printed out for all of my node_modules dependencies. My first question is: What is triggering this "add" operation for all of my node_modules? These error messages are printed out before the first line of my dockerfile is executed
Step 1/25 : FROM ubuntu:14.04
Second, does this issue have something to do with different paths in windows? To me, the weirdest part about the errors is the strange path \\\\?\\C:\\Users\\username. What is going on here with the excessive slashes and a question mark in the path?
Third, is it just me? Or does everyone encounter problems when using docker on windows bash subsystem?
NOTE: I've tried setting up the Docker Toolbox and running the quickstart terminal. I get the following error from running the quickstart terminal
Error with pre-create check:
"This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)"
Looks like something went wrong in step ´Checking if machine default exists
´... Press any key to continue...
So I've tried making sure hyper-v is enabled from this article here
NOTE 2: I've also made sure that my C drive is shared with my containers

FreeSurfer installed on Ubuntu

I am trying to install FreeSurfer on Ubutun. I follow an installation instruction online. When I walk through this step, I have a question:
Here is your FreeSurfer license. Place the four lines between theCUT HERE markers in a file named "license.txt" in the directory pointed toby the $FREESURFER_HOME environment variable (see the FreeSurfer documentation).
#---------------CUT HERE---------------
xxxxxx
xxxxx
xxxxx
xxxxx
#---------------CUT HERE---------------
Does that mean I have to paste the four lines into a file called "license.txt"? I actually did in this way. I paste the four lines at the end of a file called "license.txt". But when I finish all the steps and check the installation. There is an error popping up:
ERROR: FreeSurfer license file /home/urser/Downloads/freesurfer/license.txt not found.
But the license.txt is really in that fold called "freesurfer". Do I misunderstand the instruction?
Please follow the instructions:
Requirements
sudo apt-get install tcsh
Download and installation
cd ~
# this is the 64 bit version
wget ftp://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/5.3.0/freesurfer-Linux-centos6_x86_64-stable-pub-v5.3.0.tar.gz
cd /usr/local/
sudo tar -xzvf ~/freesurfer-*.tar.gz
Setting the environment
echo "FREESURFER_HOME=/usr/local/freesurfer" >> ~/.bashrc
echo 'source $FREESURFER_HOME/SetUpFreeSurfer.sh' >> ~/.bashrc
Cleaning up -> this is optional
rm ~/freesurfer-*.tar.gz
Registering your software
Now register at https://surfer.nmr.mgh.harvard.edu/registration.html and paste the license code emailed to you here, PLEASE BE EXTRA CAREFUL WITH THIS STEP:
sudo gedit /usr/local/freesurfer/license.txt
I am not sure whether this next step is essential, but I usually run it.
sudo ln -s /usr/lib/libtiff.so.{4,3}
Conclusions
All in all, installing Freesurfer is not that hard, but installing it in a new linux system is surely a better option than messing with VirtualMachines in Windows. The VM that they offer in their website does not allow to run the commands in files residing in the host machine, which is the point of running a VM in the end.
Source
The current freesurfer 7.2 version has some semblance of a binary installer (.deb package) that worked for me on Ubuntu 18
(https://surfer.nmr.mgh.harvard.edu/fswiki/rel7downloads). On Windows, in lieu of running Ubuntu in a VirtualBox VM (which includes an X-server), you can use the windows subsystem for linux (WSL) to download and run the default Ubuntu image. Then try to download and run the freesurfer .deb binary installer in Ubuntu. With WSL 1 or 2 you can access the path to your windows home directory mounted in linux (https://surfer.nmr.mgh.harvard.edu/fswiki//FS7_wsl). You still need to setup an X server on Windows 10 to work with freeview running in Ubuntu under WSL, but I read that should no longer be necessary with WSL in Windows 11. Once you obtain a freesurfer license (https://surfer.nmr.mgh.harvard.edu/registration.html) then just set the environment variable FS_LICENSE to the absolute path for the license file, e.g., in your shell init file in Ubuntu (in order for freeview to run).

Removing GRUB from sda from Mac Internet Recovery

I tried to make a bootable Ubuntu DVD on my MAC. This lead to messing up my bootloader which I have been unable to fix.
https://discussions.apple.com/thread/3109456?tstart=0
One person states
Boot OSX and in the terminal write:
mkdir mnt ; sudo mount -t msdos /dev/disk0s1 mnt
Will show a new drive EFI
Open this drive and open the folder EFI
Inside you will have the folders APPLE and UBUNTU
Just delete the UBUNTU folder
So I keep reading and see
When in -Recovery From Internet- it is impossible to use mkdir, but
you can "cd /tmp" and mount it there.
So I haven't been able to figure out how to mount disk0s1 in the /tmp. If someone could please show me the commands to get into the EFI Folder so I can delete the Ubuntu folder.
I assume the link means you can do something like:
mount -t msdos /dev/disk0s1 /tmp/
then
cd /tmp
and you should see the APPLE and UBUNTU directories. I am not in Recovery Mode now so I can't try that, but deleting UBUNTU from there may help you.
This page:
http://www.rodsbooks.com/refind/getting.html
is what I use when I want to install Linux on a Mac, and has a lot of useful explanation about EFI booting on Mac machines. I have had good luck with SuperGrub2 when I've gotten in trouble:
http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/

Resources