10.7 C
New York
Friday, October 11, 2024

The Full Information for Home windows 10 & 11 — SitePoint


This WSL2 Home windows 10 & 11 tutorial demonstrates set up, handle, and use a full Linux surroundings in your Home windows 10 or Home windows 11 PC with WSL2. You’ll run a Linux kernel utilizing the Home windows subsystem for Linux and execute native purposes whereas seamlessly sharing information and providers with Home windows code editors and browsers.

Key Takeaways

  • Study Home windows WSL2: Offers an in depth WSL2 tutorial for establishing and utilizing Linux on each Home windows 10 and Home windows 11.
  • Accessing information: Learn to WSL2 entry information from Home windows and Home windows information from WSL2 to simply work with information throughout each methods.
  • A number of Linux Distros: Perceive handle a number of Linux distributions utilizing Home windows WSL2.
  • Operating GUI Functions: Learn to run Linux GUI purposes straight in your Home windows desktop with WSL2.
  • Integration with Docker: Learn to use Docker Desktop with WSL2 for environment friendly container administration.

Why Use Linux?

Your internet host nearly definitely makes use of Linux. It’s quick, open supply, and runs nearly all of internet software program, together with:

A few of these dependencies could also be accessible on Home windows and macOS, however putting in and sustaining similar variations is troublesome. They’re typically slower and it’s possible you’ll encounter refined variations which won’t turn out to be obvious till you deploy.

Nevertheless, we will’t all the time use Linux as the first OS on our laptops. For instance, if you’re utilizing non-Linux software program corresponding to Microsoft or Adobe merchandise, it’s essential to use Home windows or macOS. However there are a number of options we will use:

  • Use two PCs or twin boot on a single machine. Switching between methods could be cumbersome.
  • Run a Linux digital machine (VM) utilizing Hyper-V, VirtualBox, Parallels, WMware, or Vagrant. This requires appreciable OS sources and cheap IT data. Sharing information between methods could be awkward.
  • Run internet purposes in Docker containers. It’s one other subject to study and Docker itself runs natively on Linux. Each the Home windows and macOS editions use Linux beneath the floor and the Home windows version of Docker Desktop requires WSL2.

What’s the Home windows Subsystem for Linux?

The Home windows WSL2 lets builders run a Linux surroundings straight on Home windows. It’s a full Linux OS operating inside Home windows, so you should utilize the identical apps and information seamlessly.

WSL1 was groundbreaking and translated Linux system calls to Home windows equivalents. But it surely was sluggish, and a few options weren’t accessible. WSL2 makes use of Hyper-V digital machine know-how, so Linux compatibility is superb, and file entry is as much as 20x quicker than earlier than.

Home windows 10 and Home windows 11 Variations

Microsoft launched WSL 2 in 2020, so it was totally built-in into the Home windows 11 launch in October 2021.

Home windows 10 requires a bit of extra configuration effort. When you’re contemplating an improve to Home windows 11, do it earlier than putting in WSL 2. Home windows 11 isn’t an enchancment in some respects (I nonetheless miss the taskbar icon ungrouping and dragging information!), however WSL 2 appears extra secure, and I not often encounter points.

PC Necessities

WSL 2 makes use of Hyper-V. This requires {hardware} virtualization help, which it’s essential to allow in your BIOS.

WARNING: Fiddling together with your BIOS settings can trash your PC! Watch out when making modifications. Seek the advice of your motherboard producer’s assist pages or seek for on-line recommendation about your particular make and mannequin.

{Hardware} virtualization is on the market on most fashionable units, however you possibly can verify by rebooting and opening the BIOS panels — usually by hitting the DEL, F2, or F10 key because the system begins. Search for Virtualization Expertise, VTx, Safe Digital Machine (SVM), or related choices. Guarantee they’re enabled, and save and reboot the machine.

Lastly, guarantee your C: drive has 1GB of spare disk area — ideally extra. You could possibly liberate some area in Settings, System, Storage, or utilizing the Disk clean-up instrument in Home windows Administrative Instruments.

Storage clean up suggestions

WSL 2 will set up your Linux distribution inside a hidden folder in your C: drive by default. It’s doable to transfer it elsewhere after set up.

Home windows Necessities

WSL2 is on the market with the House, Professional, or Server editions of Home windows however not Home windows 10/11 S. S mode solely permits apps from the Microsoft Retailer to “enhance” safety. You possibly can change from S mode to Home windows House/Professional utilizing the Swap to Home windows House choice in Settings > Replace & Safety > Activation.

Home windows 10 requires the Might 2020 replace —model 2004 or above. To replace, select Settings from the Begin menu, then choose System, adopted by About. The Home windows specs are proven on the backside of the panel.

Windows specifications

If it’s not put in, use the Test for Updates button in Settings, then Replace & Safety. Nevertheless, some older Home windows machines could by no means be appropriate, and Microsoft will unlikely provide a patch.

Disable Quick Begin-up (Non-obligatory)

Quick start-up saves the Home windows session and machine drivers to a file so the following boot is quicker. This could trigger issues for the Linux kernel, which turns into unresponsive on the following boot. When you encounter issues, disable quick start-up from the traditional Management Panel > Energy Choices > Select what the ability buttons do:

Disabling fast start-up

Alternatively, create a wsl.bat file in your Startup folder (C:Customers<user-name>AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup) with the content material:

wsl --shutdown

It will shut down WSL after Home windows boots however it is going to restart as quickly as you entry a Linux distro.

Home windows Terminal is a superb terminal software accessible from the Microsoft Retailer or its repository at github.com/microsoft/terminal/.

Home windows Terminal robotically provides WSL2 Linux distros after they’re put in and affords a configurable vary of choices together with tabs, cut up views, themes, transparency, and key bindings.

Configuration is on the market from the Settings menu merchandise (Ctrl + ,), the Command Palette (Ctrl + Shift + P), or the settings.json accessed on the backside of the Settings panel.

Windows Terminal configuration settings

Allow WSL2 (Home windows 10)

The steps on this WSL2 tutorial apply to WSL2 Home windows 10. Nevertheless, they need to additionally work fantastic in Home windows 11, though it is best to double-check when you carried out a Home windows 10 to 11 improve.

The Digital Machine Platform and Home windows Subsystem for Linux options should be enabled in Flip Home windows options on or off choice. The panel is accessed by hitting Begin and typing “options” or from the Applications and Options icon within the traditional Management Panel.

Enable WSL2

Alternatively, you possibly can execute the next instructions in a Home windows Powershell terminal run as an Administrator:

dism.exe /on-line /enable-feature /featurename:Microsoft-Home windows-Subsystem-Linux /all /norestart
dism.exe /on-line /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Reboot Home windows, then begin WSL2 because the default by getting into the next command in a Home windows PowerShell or command immediate:

wsl --set-default-version 2

Obtain Linux

Seek for or find PowerShell within the Begin menu, right-click the icon, and select Run as administrator. Show a listing of accessible Linux distros by getting into:

wsl --list --online
List Linux distros

To put in the default Ubuntu 20.04 distro, enter:

wsl --install

To put in a selected distro by title, corresponding to Debian, enter:

wsl --install -d Debian

Alternatively, you possibly can set up Linux distros from the Microsoft Retailer, which could be accessed from the Begin menu. Enter “Linux” within the search field (be cautious that software program apart from WSL distros could also be accessible).

Ubuntu in Microsoft store

Ubuntu is an efficient alternative except you might have particular Linux necessities. The most recent version is put in after you click on the Ubuntu icon and observe the Get button.

The obtain and set up could take a while, relying in your community and PC velocity. It’s possible you’ll be prompted to reboot once more.

Launch Linux

A brand new Linux (Ubuntu) choice/icon will now be accessible in:

  1. The Begin menu
  2. Home windows Terminal (if put in)
  3. Powershell — enter wsl or bash on the immediate

Third-party terminal software program corresponding to Cmder, ConEmu, or Hyper can be utilized by creating profiles which launch %windirpercentsystem32bash.exe ~.

The set up course of might be full the primary time you run the WSL2 Linux OS.

Be aware: You could see a message within the terminal a couple of kernel replace. Copy the hyperlink into your browser, then obtain and set up the replace. You’ll must launch the Linux distro once more to proceed the set up.

You’ll be prompted to enter a username and password. These are the credentials for Linux administration: they’re utterly separate out of your Home windows username and password (though selecting the identical ones could also be sensible).

Linux will finally be prepared, and your terminal will present content material just like the next:

Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.10.102.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://assist.ubuntu.com
 * Administration:     https://panorama.canonical.com
 * Assist:        https://ubuntu.com/benefit

  System data as of Tue Aug 16 10:19:36 BST 2022

  System load:  0.0                Processes:             8
  Utilization of /:   1.6% of 250.98GB   Customers logged in:       0
  Reminiscence utilization: 1%                 IPv4 handle for eth0: 172.21.6.83
  Swap utilization:   0%


0 updates could be utilized instantly.


The listing of accessible updates is greater than every week previous.
To verify for brand spanking new updates run: sudo apt replace

Replace Linux

There are more likely to be a number of Linux updates. To replace Ubuntu purposes, enter the next instructions within the Linux terminal:

sudo apt replace
sudo apt improve

Different Linux distros can have an identical course of — so verify the documentation for help.

You too can verify for Linux kernal updates from Powershell utilizing:

wsl --update

Swap Between WSL1 and WSL2

Present WSL1 distros could be transformed to WSL2. For that, enter the next command in a Home windows Powershell terminal to show the put in Linux distros and their WSL model:

PS C:> wsl --list --verbose

  NAME    STATE    VERSION
* Ubuntu  Operating  1

(The * asterisk highlights the default Linux set up.)

To modify Ubuntu to WSL2, enter:

wsl --set-version Ubuntu 2

Equally, to modify again to WSL1, enter:

wsl --set-version Ubuntu 1

Set a Default Linux Distribution

One Linux distribution should be set because the default when you might have a couple of put in. This might be used when wsl is entered in a Home windows Powershell terminal.

To set the default distro, listing your Linux installations:

wsl --list

and set a default with:

wsl --setdefault <DistributionName>

Ubuntu instance: wsl –setdefault Ubuntu.

Run Linux as a Particular Person

To run your default distribution as a selected consumer, enter the next command in a Home windows Powershell terminal:

wsl --user <username>

A default consumer is outlined throughout set up however you possibly can create others. A root consumer can also be created, however it is best to keep away from utilizing it beneath regular circumstances. It’s too straightforward to enter a harmful command!

Transfer or Clone Your Linux Disk Picture

Linux disk photos are put in in your C: drive. Optionally, you possibly can both:

  • Transfer it to a different drive to liberate area on C:, or
  • Use the identical picture to create a number of Linux installations (which could be helpful when you want totally different purposes and setups for various initiatives — though Docker could also be extra sensible)

The next directions presume you’re shifting the Ubuntu Linux distro to D:wsl.

In a Home windows Powershell terminal (not the Ubuntu terminal), enter wsl –listing to view your Linux distributions, then export one by title to a backup .tar file — corresponding to D:backupubuntu.tar:

mkdir D:backup
wsl --export Ubuntu D:backupubuntu.tar

Unregister that distro to take away it from the C: drive:

wsl --unregister Ubuntu

Enter wsl –listing to confirm the distro has been eliminated.

Import the backup into a brand new WSL2 distro at one other location, corresponding to D:wsl:

mkdir D:wsl
wsl --import Ubuntu D:wsl D:backupubuntu.tar

You may make any variety of named clones from the identical back-up. For instance:

wsl --import Clone01 D:wsl D:backupubuntu.tar
wsl --import One other D:wsl D:backupubuntu.tar

Confirm the WSL distro has been efficiently created by getting into wsl –listing and launching Ubuntu from the Begin menu or Home windows Terminal.

At this level, Ubuntu will use root because the default consumer. To revert to your personal account, enter the next command:

ubuntu config --default-user <yourname>

Right here, <yourname> is the username you outlined throughout set up.

For different distros that aren’t the WSL Home windows default, outline a consumer by logging on to the distro and creating/modifying /and so on/wsl.conf:

contact /and so on/wsl.conf
nano /and so on/wsl.conf

Add the next strains to the file:

[user]
default=<yourname>

Save (Ctrl + O) and exit (Ctrl + X), then restart the distro in a Powershell terminal with:

wsl --terminate <distroname>

Presuming all has gone properly, you possibly can delete the backup file (D:backupubuntu.tar).

Entry Linux Information from Home windows

You possibly can entry WSL2 information from Home windows by navigating to wsl$. Enter it within the File Explorer handle bar or any file open dialog.

Your put in Linux distros are listed, so you possibly can entry the Ubuntu root listing at wsl$Ubuntu. Your private Linux information are usually be saved at:

wsl$Ubuntuhome<yourname>

Right here, <yourname> is the username you outlined throughout set up.

It’s greatest to set this because the beginning folder for the distro in Home windows Terminal. Open the Settings, click on a profile, then change the Beginning listing choice.

Map a Community Drive

You possibly can mount a community drive to wsl$Ubuntu by opening wsl$ in File Explorer, right-clicking the Ubuntu folder, and selecting Map community drive….

Map Linux drive

Sadly, it’s not at the moment doable to map deeper subdirectories. You might also encounter mapped-drive points with some purposes.

Accessing Home windows Information from Linux

The WSL2 entry Home windows information functionality permits seamless interplay with information saved in your Home windows drives by means of the /mnt/ listing. For instance, your private Customers folder at C:Customers<yourname> is on the market at:

/mnt/c/Customers/<yourname>

Right here, <yourname> is your Home windows username.

For ease of entry, you possibly can create a Linux symbolic hyperlink to any Home windows folder from the terminal. For instance, for C:projectscode:

cd ~
ln -s /mnt/c/initiatives/code/

A code folder will seem in your Linux house listing. Navigate to it utilizing cd ~/code and also you’ll truly be in /mnt/c/initiatives/code/, which maps on to C:projectscode.

Accessing Home windows information from Linux is significantly slower than utilizing the native Linux file system. The place doable, create initiatives within the Linux file area, usually in your house folder (/house/<yourname>/ or ~).

Run Linux Instructions from Home windows

Any Linux (bash) shell command could be run from a Home windows Powershell or command-line terminal utilizing wsl:

wsl <linux-command>

For instance, wsl ls -la lists all information in a Home windows folder.

Run Home windows Functions from Linux

By Home windows WSL2, you possibly can launch Home windows purposes like Notepad or VS Code straight out of your Linux surroundings.

explorer.exe .

Or edit .bashrc in Notepad:

notepad.exe ~/.bashrc

Or open the a selected mission listing in VS Code:

code ~/initiatives/mywebsite

Set up Functions

All the time bear in mind you’re operating two working methods. They could be tightly built-in, however there are conditions while you need an software put in in every single place.

For instance, Git is beneficial in each Home windows and Linux. The Home windows version is put in by downloading an executable. It’s greatest to make sure it doesn’t convert line endings:

git config --global core.autocrlf enter

Git on Ubuntu is put in utilizing:

sudo apt replace
sudo apt set up git-all

Equally, it’s possible you’ll wish to take a look at Node.js purposes on each Home windows and Linux. Once more, Home windows has a runtime installer whereas Node.js runtime is put in on Ubuntu utilizing instructions corresponding to:

sudo apt-get set up build-essential
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get set up -y nodejs

git, node and npm instructions will now work in both OS. Be cautious that they could be totally different variations.

Putting in Graphical Linux Functions

WSL Home windows permits you to run graphical X11 and Wayland Linux purposes straight on Home windows. You possibly can launch Linux apps from the Begin menu, pin them to the duty bar, and use options corresponding to lower and paste throughout purposes. There are some downsides:

  • Not all graphical apps will work as anticipated.
  • Some provide Linux options — corresponding to file dialogs — that would confuse Home windows customers.
  • There’s little profit in putting in purposes with native Home windows editions corresponding to Firefox, VLC, or GIMP.

To proceed, set up the right GPU driver in your Home windows machine:

Then, set up any graphical software from the Linux terminal. For instance, the GNOME Gedit textual content editor:

sudo apt set up gedit

Launch it with:

gedit

Pin the app to your Begin menu or process bar like some other Home windows program.

Gedit is a small software with a obtain dimension of lower than 2MB. Nevertheless, it requires GNOME and different Linux libraries, which incur a number of hundred megabytes of extra code on prime of the chunky GPU drivers (1.1GB for Intel). Utilizing graphical Linux apps in WSL2 solely is sensible if you could set up a number of purposes or there’s no native Home windows various.

Putting in Docker

One exception to the “set up on each OSes” rule is Docker!

Docker runs purposes in remoted Linux containers which might be conceptually just like light-weight digital machines with an OS, single software, and its dependencies. Utilizing Docker for internet growth supplies a constant surroundings that’s straightforward to put in and works on any machine.

Docker Desktop for Home windows is totally WSL2-enabled:

  • there’s no want to make use of Hyper-V, so Docker could be put in on Home windows House
  • Docker begins and runs significantly quicker when configured to make use of WSL2
  • putting in Docker Desktop on Home windows allows docker and docker-compose in each Home windows and Linux

Docker Desktop suggests you employ WSL2 when it’s first launched. Alternatively, you possibly can choose Settings from the Docker system tray icon menu, then select the Normal tab, verify Use the WSL 2 based mostly engine, and hit Apply & Restart.

Docker WSL2 engine

Docker makes use of the default Linux distro, however you too can allow it in different put in distros from the WSL Integration panel in Settings, then Assets.

Launching Apache and PHP Functions Utilizing Docker

Putting in internet dependencies corresponding to Apache and PHP straight in your WSL2 Linux surroundings is feasible. Nevertheless, Docker is safer, faster, and extra configurable: it permits you to run totally different variations of PHP on the identical machine concurrently.

On this instance, you’ll create a small PHP file and run it utilizing the newest launch of PHP 7.4 in a Docker container. Make sure you’ve put in Docker Desktop for Home windows and enabled WSL2 mode, then create a folder in your Linux surroundings with an index.php file. For instance:

mkdir ~/php
cd ~/php
contact index.php

Edit index.php, maybe utilizing Notepad or VS Code as proven above. Add the next content material, which outputs PHP standing data:

<?php
phpinfo();

Run the next docker command to start out a PHP 8.1-enabled Apache internet server in a container which mounts information within the present host listing to /var/www/html within the container:

docker run 
  -it --rm -p 8080:80 --name php 
  -v "$PWD":/var/www/html 
  php:8.1-apache

Be aware: this command additionally works in Home windows, however the reference to $PWD should be changed by the complete file path in Linux notation — corresponding to /c/php/.

Open https://localhost:8080/ in any Home windows internet browser to view the output of the phpinfo() command.

To complete, press Ctrl + C in your Docker terminal to cease and delete the container.

WSL2 and localhost

Home windows, WSL2 Linux, and Docker container purposes are all the time accessed from localhost or 127.0.0.1.

The PHP instance above uncovered port 8080, which was mapped to port 80 within the container. Equally, if in case you have Node.js put in in Linux, you possibly can cd to any listing and begin a static file server:

npx small-static-server

Open http://localhost:8888/ in a browser to view information in that listing (index.html is returned by default).

Remember that ports accessible in a single OS could also be unavailable within the different. Port numbers lower than 1,000 are solely accessible to Linux tremendous customers. The Home windows Retailer Skype App typically reserves port 80 and might’t be modified (though the traditional Desktop version permits it).

SSL certificates which might be both self-signed or domestically trusted utilizing instruments corresponding to mkcert can be utilized interchangeably in each Home windows and Linux environments.

VS Code WSL2 Integration

In VS Code, you can begin WSL2 periods straight from the built-in terminal. Open the terminal with View > Terminal or Ctrl + ‘ then hit the down arrow subsequent to the + icon to launch a selected kind. The identical menu has a Choose Default Profile choice the place you possibly can choose the terminal to make use of by default.

VS Code default terminal shell

With VS Code, you possibly can straight entry WSL2 information from Home windows at wsl$ and debuggers operating on localhost. There’s no want for additional extensions, however the next choices allow simpler Linux and Docker file administration:

After putting in Distant – WSL, you possibly can navigate to any Linux listing and launch a WSL-connected occasion of VS Code:

cd ~/myproject
code .

Alternatively, click on the distant window icon within the backside left of the applying, then select a connection choice.

VS Code remote window icon

Or, you should utilize the brand new Distant Explorer icon within the Exercise Bar. This allows you to select a goal kind from the drop-down menu and join accordingly.

VS Code Remote Explorer

The distant occasion of VS Code has separate extensions and settings for Linux use, however some could be globally enabled. The Extensions panel permits you to allow and configure extensions within the distant occasion.

VS Code extensions

Settings are saved in your Linux ~/.vscode-server listing.

Abstract

This WSL2 tutorial has proven make the most of WSL2 Home windows 11 for operating Linux purposes in your Home windows machine. Operating Linux purposes on Home windows used to require digital machines, complicated Samba folder shares, and many persistence. WSL2 has revolutionized internet growth. It makes it straightforward to write code utilizing Home windows instruments after which run it in a production-like Linux surroundings. The tight integration affords the advantages of each OSes.

Additional WSL2 sources:

When you loved this text, you may additionally discover these sources helpful too:

FAQs About Home windows Subsystem for Linux 2

What Is the Distinction Between WSL1 and WSL2?

WSL1 and WSL2 are each Microsoft’s Home windows Subsystem for Linux, however they function in another way. WSL1 interprets Linux system calls into Home windows system calls, which may result in compatibility points with sure Linux purposes. Then again, WSL2 makes use of a light-weight digital machine to run a full Linux kernel, offering higher compatibility and efficiency, particularly for file system heavy operations. Nevertheless, WSL2 could devour extra system sources than WSL1.

How Can I Improve from WSL1 to WSL2?

Upgrading from WSL1 to WSL2 is an easy course of. First, you could make sure that your Home windows 10 model helps WSL2. Then, open PowerShell as an administrator and run the command wsl –set-version <distribution title> 2. Exchange <distribution title> with the title of your Linux distribution. The improve course of could take a couple of minutes.

Can I Use GUI Functions with WSL2?

Sure, you should utilize GUI purposes with WSL2. Microsoft has launched help for GUI purposes in WSL2 with the Home windows 10 Might 2021 replace. This implies you possibly can run Linux GUI purposes straight in your Home windows desktop without having a separate X server.

How Can I Set up a New Linux Distribution with WSL2?

You possibly can set up new Linux distributions with WSL2 Home windows 11 from the Microsoft Retailer. Open the Microsoft Retailer, seek for the Linux distribution you wish to set up, and click on the “Get” button. As soon as the set up is full, begin WSL2 by launching the distribution from the Begin menu.

How Can I Entry My Home windows Information from WSL2?

You possibly can entry your Home windows information from WSL2 by means of the /mnt/ listing. For instance, your C: drive is on the market at /mnt/c/. You possibly can navigate to this listing utilizing the cd command.

Is It Potential to Run Docker with WSL2?

Sure, it’s doable to run Docker with WSL2. Docker has launched help for WSL2 with the Docker Desktop for Home windows. This lets you run Docker containers straight out of your WSL2 Linux distribution.

How Can I Replace My WSL2 Linux Kernel?

You possibly can replace your WSL2 Linux kernel by downloading and putting in the newest WSL2 Linux kernel replace bundle from the Microsoft web site. After the set up is full, you could restart your laptop for the modifications to take impact.

Can I Use A number of Linux Distributions with WSL2?

Sure, you possibly can handle a number of Linux distributions with Home windows WSL2. Every linux distribution runs in its personal surroundings, and you may change between them as wanted. You possibly can set up extra linux distributions from the Microsoft Retailer.

How Can I Uninstall a Linux Distribution from WSL2?

You possibly can uninstall a Linux distribution from WSL2 by right-clicking on the distribution within the Begin menu and deciding on “Uninstall”. Alternatively, you should utilize the wsl –unregister <distribution title> command in PowerShell.

Can I Use WSL2 with Home windows 11?

Sure, you should utilize WSL2 with Home windows 11. Actually, Home windows 11 has launched a number of enhancements to WSL2, together with quicker startup instances and higher system efficiency.

How Can I Swap Between Linux Distros in WSL2?

By default, the wsl command will open the default linux distro, however you possibly can specify a special one by utilizing the “-d” flag adopted by the distro’s title. For instance, to modify to a distro named “Debian,” you’d use the command wsl -d Debian.

How Do I Replace a Linux Distro in WSL2?

Open the terminal for the precise Linux distro and use the bundle supervisor to replace it. For instance, on an Ubuntu-based distro, you possibly can run “sudo apt replace && sudo apt improve”.



Supply hyperlink

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles