Есть ли способ создать виртуальную машину в Azure без временного накопителя? - PullRequest
1 голос
/ 17 апреля 2019

Я использовал эту команду для раскрутки виртуальной машины:

az vm create -n $virtualMachine -g $resourceGroup --size Standard_D2_v3 --image win2016datacenter --data-disk-sizes-gb 40
--location $location --admin-username $admin --admin-password $password

Каждый раз, когда он создает диск D с меткой «Временное хранилище», есть ли способ избавиться от этого диска?

П.С. Я знаю, что это доза, и мне это не нужно.

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

К сожалению, на всех виртуальных машинах Azure есть по крайней мере два диска, один - диск операционной системы, а другой - временный диск. И временный диск поставляется с размером виртуальной машины. Вы можете увидеть vm размеров , эхо с временным хранилищем.

Таким образом, вы не можете создать виртуальную машину без временного диска. Вам нужно подумать о том, как изменить приложение, указав номер диска. Например, изменить диск нужно как диск номер E.

0 голосов
/ 18 апреля 2019

Я придумал это решение:

$resourceGroup = "your resource group name"
$virtualMachine = "your virtual machine name"

# remove page file from drive d
az vm run-command invoke -g $resourceGroup -n $virtualMachine --command-id RunPowerShellScript --scripts '$CurrentPageFile = Get-WmiObject -Query "select * from Win32_PageFileSetting"; $CurrentPageFile.delete(); Set-WMIInstance -Class Win32_PageFileSetting -Arguments @{name="c:\pagefile.sys";InitialSize = 0; MaximumSize = 0}; Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\cdrom -Name Start -Value 4 -Type DWord'

# restart server
az vm restart -g $resourceGroup -n $virtualMachine

# set drive d and it's related disk into offline mode
az vm run-command invoke -g $resourceGroup -n $virtualMachine --command-id RunPowerShellScript --scripts 'get-disk -Number (Get-Partition -DriveLetter D).disknumber | Set-Disk -IsOffline $true'

# get azure disks and initialize, format and label it (assign a drive letter as well)
az vm run-command invoke -g $resourceGroup -n $virtualMachine --command-id RunPowerShellScript --scripts 'Get-Disk | Where partitionstyle -eq "raw" | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "disk2" -Confirm:$false'

Как сказал @Charles Xu, вы не можете удалить его, но можете проигнорировать и отключить его. мне понадобилась хитрость, чтобы понять это, но это могло бы сэкономить время от других.

Если вам просто нужен PowerShell, вот оно:

$CurrentPageFile = Get-WmiObject -Query "select * from Win32_PageFileSetting"; 
$CurrentPageFile.delete(); 
Set-WMIInstance -Class Win32_PageFileSetting -Arguments @{name="c:\pagefile.sys";InitialSize = 0; MaximumSize = 0};
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\cdrom -Name Start -Value 4 -Type DWord
# you need to restart at this stage
get-disk -Number (Get-Partition -DriveLetter D).disknumber | Set-Disk -IsOffline $true
Get-Disk | Where partitionstyle -eq "raw" | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "disk2" -Confirm:$false
...