-
-
Notifications
You must be signed in to change notification settings - Fork 65
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
47 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,66 @@ | ||
--- | ||
id: windows | ||
title: "Windows" | ||
description: "Installing Windows 10 with netboot.xyz" | ||
description: "Installing Windows using netboot.xyz and the Docker container." | ||
hide_table_of_contents: true | ||
--- | ||
|
||
This is one of the most frequently asked questions, so this deserves its own page. | ||
This guide will assume that you're using the linuxserver.io Docker container. | ||
# Installing Windows with netboot.xyz | ||
|
||
#### Requirements | ||
This guide will walk you through installing Windows 11 using netboot.xyz using the netboot.xyz Docker container. | ||
|
||
- Samba (SMB,CIFS) share with Windows 10 ISO extracted | ||
- Windows PE image as an ISO, instructions on how to build it can be found [here](https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive#create-a-winpe-iso-dvd-or-cd) | ||
## Requirements | ||
|
||
Step 1. Download WindowsPE/generate the image and download Windows 10 ISO. | ||
Step 2. Setup an SMB share with Windows 10 ISO extracted to a directory there. | ||
Step 3. Upload Windows PE to Linuxserver.io's netboot.xyz container's /assets/WinPE/x64/ folder. | ||
Step 4. Boot the menu, go to Windows. | ||
Step 5. Set the base URL to point to the container's IP address, the correct Nginx port for hosting assets and right directory (eg. http://192.168.2.46:8000/WinPE). | ||
Step 6. Load the installer. | ||
Step 7. You should be prompted with a terminal. | ||
Step 8. Type `wpeinit` to load networking support. | ||
Step 9. Mount the Windows ISO share, with `net use F: \\<server-ip-address>\<share-name> /user:<server-ip-address>\<username-if-needed> <password-if-needed>` | ||
Before you begin, ensure you have the following: | ||
|
||
- A Samba (SMB, CIFS) share with the Windows 11 ISO extracted. | ||
- A Windows PE image as an ISO. Instructions on how to build it can be found [here](https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive#create-a-winpe-iso-dvd-or-cd). | ||
- The netboot.xyz Docker container set up and running. Follow the instructions [here](../../docker/usage.md) to set up the container. | ||
|
||
:::note | ||
WinPE is used so you can preload any drivers you may need for the equipment being installed. You may need to slipstream drivers like VirtIO if using Proxmox or other types of virtualization. | ||
::: | ||
|
||
## Installation Process | ||
|
||
The terminal uses US keyboard layout by default. | ||
To start, download the Windows PE image and the Windows 11 ISO. Once you have these files, set up an SMB share and extract the Windows 11 ISO to a directory on this share. | ||
|
||
Next, upload the Windows PE image to the netboot.xyz container's `/assets/WinPE/x64/` folder. With the files in place, boot the netboot.xyz menu and navigate to the Windows section. | ||
|
||
You'll need to set the base URL to point to the container's IP address, the correct Nginx port for hosting assets, and the right directory. For example: | ||
```bash | ||
http://192.168.2.46:8000/WinPE | ||
``` | ||
|
||
Load the installer, and you should be prompted with a terminal. In the terminal, type `wpeinit` to load networking support. Then, mount the Windows ISO share using the following command: | ||
```bash | ||
net use F: \\<server-ip-address>\<share-name> /user:<server-ip-address>\<username-if-needed> <password-if-needed> | ||
``` | ||
|
||
:::note | ||
The terminal uses the US keyboard layout by default. | ||
::: | ||
Step 10. Change into the mounted share (`F:`), and execute setup.exe or start it with `F:\setup.exe` | ||
Step 11. You should be greeted with the normal setup and be able to install it. | ||
|
||
### Persistent url for Windows with the docker container | ||
Change into the mounted share (`F:`) and execute `setup.exe`: | ||
```bash | ||
F:\setup.exe | ||
``` | ||
|
||
You should now see the normal Windows setup interface and be able to proceed with the installation. | ||
|
||
Step 1. Go to the container's configurator (Netboot.xyz Configuration), the place where you can manage local assets and menus. | ||
Step 2. Go to Menus -> boot.cfg. | ||
Step 3. Set win_base_url to to point to the container's IP address, the correct Nginx port for hosting assets and right directory, for example: | ||
## Persistent URL for Windows with Docker Container | ||
|
||
To avoid entering the URL each time you boot Windows, you can use the `local-vars.ipxe` file to set the `win_base_url`. This file is checked early during the boot process and allows you to set overrides for variables. | ||
|
||
Edit the `local-vars.ipxe` file within the web configuration interface and add the following line: | ||
```bash | ||
set win_base_url http://192.168.2.46:8000/WinPE | ||
set win_base_url http://192.168.2.46:8080/WinPE | ||
``` | ||
Step 4. You shouldn't need to input the URL anymore when booting Windows so enjoy. | ||
|
||
With this configuration, you won't need to input the URL anymore when booting Windows. | ||
|
||
:::note | ||
|
||
If you don't currently have a [local-vars.ipxe](https://github.com/netbootxyz/netboot.xyz/blob/development/roles/netbootxyz/templates/local-vars.ipxe.j2) file, you can create on in the root of the tftp directory. | ||
|
||
::: |