Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

<<<<<<< HEAD

Please note : This powershell script was created from https://github.com/Azure/azure-support-scripts/tree/master/VMRecovery/ResourceManager which was written by Windows PG for rescue VM creation for non encrypted VMs.Script was modified to create rescue VM for troubleshooting encrypted VM boot issues.This script works only on powershell which is available on Azure portal.

Overview

If an Azure VM is inaccessible it may be necessary to attach the OS disk to another Azure VM in order to perform recovery steps. The VM recovery scripts automate the recovery steps below.

  1. Stops the problematic Encrypted VM.
  2. Takes a snapshot of the problematic VM's OS disk and creates a copy of disk from snapshot.
  3. Creates a new temporary VM ("rescue VM").
  4. Attaches the copy of problematic VM's OS disk as data disk on the rescue VM.
  5. You can then connect to the rescue VM to investigate and mitigate issues with the problematic VM's OS disk.

Supported VM Types

This version of the VM recovery script is for use with Azure VMs created using the Azure Resource Manager (ARM) deployment model. It supports only Linux VMs whose OS disk is encrypted and it should be Managed disk.

Usage

Cloud Shell PowerShell

  1. Launch PowerShell in Azure Cloud Shell

    Launch Cloud Shell

  2. If it is your first time connecting to Azure Cloud Shell, select PowerShell when you see Welcome to Azure Cloud Shell.

  3. If you then see You have no storage mounted, select the subscription where the VM you are troubleshooting resides, then select Create storage.

  4. From the PS Azure:/> prompt type cd / then <ENTER>.

  5. Run the following command to download the scripts. Git is preinstalled in Cloud Shell. You need not to install it seperately.

    git clone https://github.com/dibaskar/encryptedvm-support-scripts $home/encryptedvm-support-scripts
  6. Switch into the folder by running:

    cd $home/encryptedvm-support-scripts
  7. Please execute the below commands to set the impacted VM's subscription details.Please note : Both these commands need to be executed in powershell to set the subcriptions as the script consists of both bash and powershell commands.

    Set-AzureRmContext-SubscriptionId 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
    az account set --subscription 4xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx8a2
  8. Execute the script as mentioned below create a new "rescue VM" and attach the OS disk of the problem VM to the rescue VM as data disk:

    ./new-rescue.ps1
    vmName: ( Problematic VM's Name )
    ResourceGroupName: ( Problematic VM's Resource Group Name )
    Encryption_type: ( This information can be gathered from ASC.Encryption using AAD Credentials is Dual and without AAD Credentials is single )
    rescueVMName: ( Rescue VM's name )
    rescuevm_require_public_ip : ( Does rescue VM requires public IP. Valid options are "yes or no" ).
    rescuevmusername: ( Rescue VM's username )
    rescuevmpassword: ( Rescue VM's Password. Password length should be minimum 12 characters with special characters in it else rescue VM creation will fail )
    

    Please note : If VM is created from specialised disk then you will be prompted to enter image name manually as below.

    ./new-rescue.ps1################ ######### VM seems to be created from specialised Disk.
    Enter image name. ( Valid Image names are RHEL,SLES,UBUNTU,CENTOS ):

    a) If Encryption is single then ADE extension will be installed on rescue VM for making BEK volume available.

     Enable AzureDiskEncryption on the VM
    This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue?
    [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): ( Please enter Y here )
  9. Commands for mounting the disk on rescue VM will be printed once script execution is done. SSH to the rescue VM for mounting the attached encrypted OS disk and proceed with further troubleshooting Please note : There will be slight change in these mount commands based on the OS distro.

    a) If encryption type is dual, Commands for mounting the disk on rescue VM will be printed once script execution is done and the commands for creation on new VM will also be printed as swap disk option is not available for dual pass VMs.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages