使用Powershell自动初始化实例本地硬盘

一、背景

当选择带有本地实例存储的规格时候,例如c5d,m5d,g4dn等,EC2上除系统盘外,会自动增加一个本地存储。本地存储在关闭EC2后会清空。再次打开EC2电源时候,EC2会将本地存储识别为一个没有经过初始化的新驱动器,上次分配的盘符也不再处于绑定状态。

如果希望每次开机后对实例存储自动初始化、格式化、并绑定盘符,则可以使用本文的脚本。

二、创建Powershell脚本

使用记事本编辑文件,输入以下内容,并保存为 initawsnvme.ps1 文件,并放入 C:\Windows 目录中。

Get-Disk | where FriendlyName -eq 'NVMe Amazon EC2 NVMe' | Initialize-Disk -PartitionStyle mbr -PassThru | New-Partition -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "instence nvme" -Confirm:$false | Get-Partition | Set-Partition -NewDriveLetter D 

保存时候,请注意文件扩展名不要.txt,务必保存为.ps1文件。本脚本模式是挂载盘符为D,如果需要修改盘符,请自行修改最后一个字母。

三、设置自动运行

打开Powershell命令行,并确认标题栏是 Administrator 表示权限是管理权限。运行如下命令。

$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:05
Register-ScheduledJob -Trigger $trigger -FilePath C:\Windows\initawsnvme.ps1 -Name InitAWSNVME

输入正确的话,返回结果如下。

Id         Name            JobTriggers     Command                                  Enabled
--         ----            -----------     -------                                  -------
1          InitAWSNVME     1               C:\Windows\initawsnvme.ps1               True

至此配置完成。

四、测试

对EC2实例执行关机操作。等待1~2分钟后,再启动EC2实例,并打开文件浏览器,即可看到实例存储被分配了D盘的盘符。