Skip to content

Instantly share code, notes, and snippets.

View omarmciver's full-sized avatar
🏠
Working from home

Omar McIver omarmciver

🏠
Working from home
View GitHub Profile
@omarmciver
omarmciver / new-data-vhdx-wsl2.md
Last active April 19, 2025 08:03
New VHDX attach to WSL2

Creating and Maintaining a VHDX Drive in WSL

This guide explains how to create, mount, and maintain a VHDX drive for use with WSL (Windows Subsystem for Linux).

Prerequisites

  • Windows 10/11 with WSL2 installed
  • Administrative access
  • PowerShell
  • Sufficient disk space
@omarmciver
omarmciver / Windows DPC Latency Fixes.md
Created January 21, 2025 04:26
[Windows DPC Latency Fixes]

Windows & NVIDIA DPC Latency Issues: Troubleshooting Steps

General Steps:

1. Disable Power Saving Features

  • Disable all power-saving features in BIOS/UEFI settings.
  • Set a high-performance power plan in Windows:
    Right-click on 'Power' icon in taskbar > 'Choose what the power button does' > 'Change settings that are currently unavailable'
    
@omarmciver
omarmciver / create_self_signed_cert.sh
Created August 6, 2024 16:03
[create_self_signed_cert] #Shell
#!/bin/bash
# Check if the correct number of arguments is provided
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <hostname> <IP address>"
exit 1
fi
HOSTNAME=$1
IP=$2
@omarmciver
omarmciver / dotnet-trace
Last active June 2, 2023 16:54
dotnet-trace
Ensure SDK installed:
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
sudo chmod +x ./dotnet-install.sh
./dotnet-install.sh --version latest
https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace
dotnet tool install --global dotnet-trace
Manual download linux: wget https://aka.ms/dotnet-trace/linux-x64
@omarmciver
omarmciver / installazcliwithpip
Created April 24, 2023 19:11
Install AzureCLI with pip
apt update
apt install python3-pip
python -m pip install --upgrade pip
pip install azure-cli
@omarmciver
omarmciver / GetSQLServers.ps1
Created November 28, 2022 17:25
Get All SQL Servers (or any resource type) #PowerShell #Azure
#az login
$subs = az account list | ConvertFrom-Json
$allServers = @()
foreach($sub in $subs){
Write-Output $sub.Name
az account set -s $sub.Id
$subServers = az resource list --resource-type 'Microsoft.Sql/servers' | ConvertFrom-Json
foreach($server in $subServers){
$allServers += $server
}
@omarmciver
omarmciver / az api calls
Created November 9, 2022 18:59
AZ API Calls
$ SUBSCRIPTION_ID=$(az account show --query id -o tsv)
$ az rest \
--url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourcegroups?api-version=2020-06-01 |
jq ".value | .[] | .name" -r
OR
$ curl -sL \
@omarmciver
omarmciver / Recreate VM in Availability Set
Created July 28, 2022 20:06
Recreate VM in Availability Set #azure #powershell
# Set variables
$subscriptionId="" #Set to your subscription id where the VM is created
$resourceGroup = "" #Resouce group of the VM
$vmName = "" #VM Name
$location = "westeurope" #VM Location
$zone = "2" #1 2 or 3
#Login to the Azure
@omarmciver
omarmciver / Simulate System Load
Created July 25, 2022 13:00
Simulate System Load #bash #linux
Simulate System Loads
https://bash-prompt.net/guides/create-system-load/
Sysadmins often need to discover how the performance of an application is affected when the system is under certain types of load. This means that an artificial load must be re-created. It is, of course, possible to install dedicated tools to do this but this option isn’t always desirable or possible.
Every Linux distribution comes with all the tools needed to create load. They are not as configurable as dedicated tools but they will always be present and you already know how to use them.
CPU
The following command will generate a CPU load by compressing a stream of random data and then sending it to /dev/null:
@omarmciver
omarmciver / Replicate Linux disk to new disk - single partition
Created July 18, 2022 19:26
Replicate Linux disk to new disk - single partition #bash
# Usage copydisk.sh <newdiskdev> <olddiskmountpoint> <temporary mountpoint>
# e.g. copydisk.sh /dev/sdc /datadisk /tmpdatadisk
echo New disk attached is at $1
echo Existing disk mount point is at $2
echo Temporary mount point for data copy is at $3
## Add partition table
parted $1 mklabel gpt
## Create partition ext4 100% of the available space
parted $1 mkpart primary ext4 0% 100%